solaredge setapp协议缓冲区分析器库
solaredge-setapp的Python项目详细描述
solaredge_setapp
solaredge_setapp是一个python库,它解析来自兼容solaredge光伏逆变器的逆变器和功率优化程序数据。只支持那些支持setapp调试的模型。
这个项目建立在其他人的努力之上:对于家庭助理用户,请参阅drobtravels'solaredge_local,对于所有非setapp电源逆变器,请参阅jbuehl的solaredge。
安装
要安装,请克隆此项目并使用distutils
:
python3 setup.py install
或者从pypi安装包:
pip3 install solaredge_setapp
处理protobuf消息
如果要修改协议缓冲区消息,请克隆项目。
为了使用compile.sh
编译协议缓冲区.proto
消息定义,您需要protoc
,例如由ubuntu的包protobuf-compiler
提供。只有在对消息进行了更改后,才需要重新编译这些消息。
用法
请参阅example.py
如何获取、分析和显示setapp api公开的setapp protobuf文件。
python3 example.py your-inverter-ip
status的基本用法api端点:
import solaredge_setapp
import requests
inverter_ip = "10.0.0.1"
status_bytes = requests.get("http://{0}/web/v1/status".format(inverter_ip)).content
status = solaredge_setapp.status.Status()
status_data = status.parse_protobuf(status_bytes)
print("Inverter {serial} is {status} at {power_ac:.2f}W".format(
serial=status_data["serial"],
status=status_data["status"],
power_ac=status_data["power_ac"]
))
有关所有可能的字段,请参阅status.proto
文件;对于为此终结点分析的所有字段,请参阅solaredge_setapp/status.py
。
以下API终结点可用:
- app配置-语言和功能
- 通信-以太网、WiFi和RS485设置,尚未实现
- 信息-CPU和DSP版本,错误日志记录
- 维护-功率优化器遥测
- 电源控制-电网电源设置,尚未实现
- 地区-语言和国家设置
- 状态-逆变器和能量统计
限制
setapp api还没有提供实时的功率优化器数据。初步结果显示,数据是5-15分钟前的。然而,逆变器的生产和电压信息几乎是实时的。基本上,除了每个优化器的电压和温度之外,变频器的setapp web界面上可见的整个信息集都可以通过这个库获得。
如果在使用此库进行轮询的同时打开setapp web界面,则将启动速率限制。
setapp api是新的,因此可能会改变。变量命名和分布可能会改变。
贡献
贡献是非常受欢迎的,特别是对协议缓冲区消息定义的贡献。