sma2mqtt 工具旨在发现本地网络上的 SMA 设备,例如逆变器和 Sunny HomeManager。 它识别这些设备可以发布的数据,并随后将此信息传递到 MQTT 服务器。
在本地网络中,sma2mqtt 加入 SMA 多播,以侦听来自 Sunny HomeManager 的广播。 请注意,由于多播的固有限制,此功能严格限于本地网络。
该存储库包含一个 build.sh shell 脚本,该脚本构建一个封装 sma2mqtt 工具的 Docker 容器。 可能需要调整此脚本以适应各个 Docker 设置的具体情况。
执行后,sma2mqtt 会在 MQTT 上生成类似于左侧显示的输出,进而可用于驱动右侧显示的 node-red 仪表板。
提供了一个多架构 Docker 镜像,专门为 64 位 ARM 和 x86 架构设计。 此镜像与各种设备兼容,包括 Raspberry Pi、Apple Silicon Macs、基于 x86 的机器和其他 64 位 ARM 计算机。 可以使用以下命令直接使用它
docker run --name "sma2mqtt" --net service16 jollyjinx/sma2mqtt:latest sma2mqtt --inverter-password MySimplePassword
此命令中包含 --net 选项,用于为 SMA 设备指定一个单独的网络。 如果没有使用专用网络,则应为容器打开端口 9522。
latest
:包括对 ARM64 和 x86 平台的支持。3.1.2
:具有多架构支持的特定版本。USAGE: sma2mqtt <options>
OPTIONS:
--log-level <log-level> Set the log level. (default: debug)
--json-output send json output to stdout
--mqtt-servername <mqtt-servername>
MQTT Server hostname (default: mqtt)
--mqtt-port <mqtt-port> MQTT Server port (default: 1883)
--mqtt-username <mqtt-username>
MQTT Server username (default: mqtt)
--mqtt-password <mqtt-password>
MQTT Server password
-e, --emit-interval <emit-interval>
Minimum Emit Interval to send updates to mqtt Server. (default: 1.0)
-b, --basetopic <basetopic>
MQTT Server topic. (default: example/sma/)
--bind-address <bind-address>
Multicast Binding Listening Interface Address. (default: 0.0.0.0)
--bind-port <bind-port> Multicast Binding Listening Port number. (default: 9522)
--mcast-address <mcast-address>
Multicast Group Address. (default: 239.12.255.254)
--mcast-port <mcast-port>
Multicast Group Port number. (default: 9522)
--inverter-password <inverter-password>
Inverter Password. (default: 0000)
--interesting-paths-and-values <interesting-paths-and-values>
Array of path:interval values we are interested in (default: dc-side/dc-measurements/power:2, ac-side/grid-measurements/power:2, ac-side/measured-values/daily-yield:30, battery/state-of-charge:20, battery/battery/temperature:30,
battery/battery-charge/battery-charge:20)
-h, --help Show help information.
选项 --interesting-paths-and-values 当前默认为我喜欢看到的内容,但您可能需要不同的内容。 要了解您的逆变器支持什么,您可以使用全包参数 *:600,它将显示您的逆变器支持的所有路径。
sma2mqtt 支持信号发送。 当您发送
因此,您可以在 shell 中使用 killall -USR2 sma2mqtt
让 sma2mqtt 打印出 SMALighthouse 状态。