Hallo miteinander!
Während das Aufbau's meines Monitoring für unsere Heizungsanlage ist eine kompakte Python-API zum Auslesen der ETA modbus/tcp Schnittstelle als Beiwerk entstanden. Vielleicht ist sie ja für Euch auch von Nutzen.
Python: read_all.py
#!/usr/bin/env python
import os
import time
from etamodbus import ETAModbusClient, Configuration
def main():
cfg = Configuration.from_file('../modbusTcpService.xml')
conn = ETAModbusClient(os.getenv('ETA_ADDRESS'), cfg)
while True:
for desc, val in conn.read_all():
print('[{}] {}: {} (uri: {}) {}'.format(desc.fub_name, desc.param_name, val, desc.uri, desc.addr))
time.sleep(15)
if __name__ == '__main__':
main()
Display More
Code: output.txt
[Puffer] Puffer oben Min: 55.00 °C (uri: 120/10251/0/0/12211) 1000
[Puffer] Puffer unten Aus: 45.00 °C (uri: 120/10251/0/0/12212) 1002
[Puffer] Puffer unten: 40.10 °C (uri: 120/10251/0/0/12244) 1004
[Puffer] Puffer oben/mitte: 214748364.70 °C (uri: 120/10251/0/0/12521) 1006
[Puffer] Puffer oben: 64.40 °C (uri: 120/10251/0/0/12242) 1008
[HK WH] Vorlauf: 34.30 °C (uri: 120/10102/0/0/12241) 1010
[HK WH] Heizkreismischer: Öffnen (1246) (uri: 120/10102/0/11125/2002) 1012
[Kessel] Volllaststunden: 100.49 h (uri: 40/10021/0/0/12153) 1014
[Kessel] Gesamtverbrauch: 100kg (uri: 40/10021/0/0/12016) 1016
[Kessel] Stokerschnecke: 0.00 % (uri: 40/10021/0/11030/2090) 1018
[Kessel] Stokerschnecke: Aus (1220) (uri: 40/10021/0/11030/2002) 1020
[HK GH] Vorlauf: 21.30 °C (uri: 120/10101/0/0/12241) 1022
[HK GH] Heizkreispumpe: Aus (1020) (uri: 120/10101/0/11124/2001) 1024
[HK WH] Heizkreispumpe: Ein (1021) (uri: 120/10102/0/11124/2001) 1026
[HK GH] Heizkreismischer: Geschlossen (1244) (uri: 120/10101/0/11125/2002) 1028
[Lager] Vorrat: 100.40 kg (uri: 40/10201/0/0/12015) 1030
[Kessel] Inhalt Pelletsbehälter: 44.00 kg (uri: 40/10021/0/0/12011) 1032
[Kessel] Vorlauf: 64.00 °C (uri: 40/10021/0/0/12241) 1034
[Kessel] Rücklaufmischer: 67.30 °C (uri: 40/10021/0/0/12999) 1036
[Kessel] Abgasgebläse: 0.00 U/min (uri: 40/10021/0/0/12165) 1038
[Puffer] Puffer mitte: 60.40 °C (uri: 120/10251/0/0/12522) 1040
[Puffer] Warmwasserspeicher: 79.00 °C (uri: 120/10251/0/0/12271) 1042
[Kessel] Verbrauch seit Wartung: 746.30 kg (uri: 40/10021/0/0/12014) 1044
[Kessel] Verbrauch seit Entaschung: 26.00 kg (uri: 40/10021/0/0/12012) 1046
[Kessel] Verbrauch seit Aschebox leeren: 747.20 kg (uri: 40/10021/0/0/12013) 1048
[Kessel] Kessel: Bereit (2012) (uri: 40/10021/0/0/12000) 1050
[Kessel] Kessel Soll: 57.00 °C (uri: 40/10021/0/0/12001) 1052
[Puffer] Warmwasserspeicher Soll: 55.00 °C (uri: 120/10251/0/0/12132) 1054
[Sys] Außentemperatur: 10.90 °C (uri: 40/10241/0/0/12197) 1056
[Sys] Thermostat Temperatur: 20.50 °C (uri: 40/10241/0/0/12328) 1058
Display More
Der Quellcode ist auf Github zu finden: https://github.com/christianschmizz/py-eta-modbus
Viele Grüße
Christian Schmizz