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是新的,因此可能会改变。变量命名和分布可能会改变。

贡献

贡献是非常受欢迎的,特别是对协议缓冲区消息定义的贡献。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java未从Facebook OAuth接收名字、姓氏和姓氏   我自己代码中的java ConcurrentModificationException   java在Android上获得单像素TIFF图像   java图形输出中的swing集成弹出窗口“通知”   将数据库表中的所有数据集插入jTable Java   java如何使用Hibernate获取不完整的集合?   打印无法从java连接到打印机   java使用分隔符拆分带引号的字符串   java Axis2禁用严格验证(wsdl2java中的Eosv)允许什么,如何使其更加严格?   java有人能帮我处理循环代码吗   java将JsonObject数组转换为整数   JavaXWiki扩展:检测事件空间创建   java如何设置图表的文本方向以使用poi旋转所有文本?   eche RecyclerView项的java Set自定义字体   java单元测试带有私有构造函数的spring组件,无需注入   用户界面如何在java中动态显示一组多个元素?   如何从java应用程序调用IDL(交互式数据语言)?   Java的内置库实现