我们开始开发这个模拟器的想法源于这篇帖子:https://imeter.club/topic/320
我们的一位客户尝试通过 Home Assistant 优化太阳能余电的利用。使用 IAMMETER 的电能表监测太阳能余电输出,并通过 Home Assistant 控制特斯拉充电(尽可能多地使用太阳能余电)。
我们也希望参与这个项目,共同优化控制逻辑。但目前办公室没有特斯拉和逆变器。所以我们想出了一个办法:开发一个模拟器来完成这样的工作。
通过这个模拟器,您可以获得一个模拟的 WEM3080T。
A 相是太阳能逆变器输出的测量结果(该结果可以完全由模拟器模拟,也可以从真实的电能表获取)。
负载曲线在模拟器中配置,支持不同的负载模型(固定、定时、可配置)。
然后模拟器根据太阳能测量结果(模拟或真实)和负载(模拟)曲线自动计算电网消耗,并将结果输出到 B 相。

通过这个模拟器,您可以完成以下有趣的工作:
模拟的三相电能表也可以像真实硬件一样添加到 Home Assistant 或 IAMMETER 中。

该模拟器使用 "ASP.NET Core" 开发,是开源的。
运行此代码后,它假设您已按以下方式安装了三相电能表(WEM3080T)。

模拟器也支持与真实三相电能表相同的 "monitorjson" API。
模拟器中 A 相的数据可以来自完全模拟的数据(您可以设置模拟逆变器的最大功率)、真实的电能表(WEM3080T),或来自某些平台(如 PVoutput)的 API 返回值。


负载模型用于模拟真实的电力消耗,目前支持三种不同的负载模型:
您可以在模拟器中引入自己的控制逻辑来控制这些负载模型。 例如,让一些大功率负载在电价低谷时段运行,尽可能多地使用太阳能余电。
当然,提供一个能够模拟真实情况的负载模型并非易事。 在我们开源此代码后,希望对此项目感兴趣的每个人都能共同改进负载模型,使其更接近真实情况。
在此用法中,所有数据均由模拟器模拟。太阳能光伏输出和负载曲线均根据您的设置进行模拟。
模拟器将模拟光伏输出并将其数据输出到 A 相。 它将输出一个模拟的负载曲线。 它将根据 A 相的模拟光伏数据和模拟的负载曲线计算电网输出,并将其输出到 B 相。


您可以使用与真实电能表相同的 API("monitorjson")从模拟器获取数据


将模拟的电能表集成到 Home Assistant 中似乎没有意义,但这将帮助您更好地理解这个模拟器,从而在用法2和用法3中更好地使用它。
目前只支持两种接口:从真实的 WEM3080T 读取,或从 IAMMETER 的 API 读取

事实上,任何包含太阳能输出数据的接口(无论是从真实电能表读取还是从在线 API 获取)都可以作为数据源添加到这里。
如果您熟悉其他接口,欢迎向我们提交 PR 到我们的仓库。
尝试在模拟器中配置一个尽可能接近您实际情况的负载曲线。
然后模拟器将根据以下公式计算电网消耗: 电网功率 = 太阳能输出功率 - 负载功率 它也会相应地计算电网 kWh 数据(包括输入电能和输出电能)。
模拟器将在 B 相输出电网数据结果(根据真实太阳能和模拟负载计算)。
您可以通过本地 API "monitorjson" 读取这个模拟的电网结果,并将其集成到您熟悉的任何平台中。
如果负载模型足够接近您的实际情况,它可能帮助您找到最佳的控制逻辑(算法)。 这种控制逻辑可以帮助您:
尽可能让负载使用太阳能余电。
如果负载无法在夜间使用太阳能供电,则尽可能在电价低谷时段为其供电。
请参考