[FEATURE,TEST] add classes enum for modbus TCP
This commit is contained in:
42
src/pe1modbus/modbusclient.py
Normal file
42
src/pe1modbus/modbusclient.py
Normal file
@@ -0,0 +1,42 @@
|
||||
from pyModbusTCP.client import ModbusClient
|
||||
from typing import Union
|
||||
|
||||
from register import InputRegisters
|
||||
|
||||
class RegisterOperation:
|
||||
|
||||
def __init__(self, address: int, offset: int, scaling_factor: int, decimals: int, unit: str, name: str, description: str) -> None:
|
||||
self.name = name
|
||||
self.description = description
|
||||
self.address = address
|
||||
self.offset = offset
|
||||
self.scaling_factor = scaling_factor
|
||||
self.decimals = decimals
|
||||
self.unit = unit
|
||||
self.relative_address = self.address - self.offset
|
||||
|
||||
|
||||
class RegisterResponse:
|
||||
|
||||
def __init__(self, name: str, value: Union[int, float], unit: str) -> None:
|
||||
self.name = name
|
||||
self.value = value
|
||||
self.unit = unit
|
||||
|
||||
|
||||
|
||||
class LTModbusClient(ModbusClient):
|
||||
|
||||
def __init__(self, host='localhost', port=502, unit_id=1, timeout=30, debug=False, auto_open=True, auto_close=False):
|
||||
super().__init__(host, port, unit_id, timeout, debug, auto_open, auto_close)
|
||||
|
||||
|
||||
def get_register_value(self, input_register: InputRegisters) -> RegisterResponse:
|
||||
|
||||
register_operation = RegisterOperation(*input_register.value)
|
||||
response_value = self.read_input_registers(register_operation.relative_address)[0]
|
||||
response_value_scaled = round(response_value / register_operation.scaling_factor, register_operation.decimals)
|
||||
register_response = RegisterResponse(register_operation.name, response_value_scaled, register_operation.unit)
|
||||
|
||||
return register_response
|
||||
|
||||
370
src/pe1modbus/register.py
Normal file
370
src/pe1modbus/register.py
Normal file
@@ -0,0 +1,370 @@
|
||||
from enum import Enum
|
||||
|
||||
class InputRegisters(Enum):
|
||||
# adr offset scale dec unit name desc
|
||||
PE1_TEMPERATURE = (30001, 30001, 2, 0, "°C", "PE1_TEMPERATURE", "Kesseltemperatur")
|
||||
SENSOR_1 = (30008, 30001, 2, 0, "°C", "SENSOR_1", "Fühler 1")
|
||||
RETURN_FLOW_SENSOR = (30010, 30001, 2, 0, "°C", "RETURN_FLOW_SENSOR", "Fühler 1")
|
||||
OPERATING_HOURS = (30021, 30001, 1, 0, "h", "OPERATING_HOURS", "Betriebsstunden")
|
||||
FILL_LEVEL_PELLETS_CONTAINER = (30022, 30001, 201, 1, "%", "FILL_LEVEL_PELLETS_CONTAINER", "Füllstand im Pelletsbehälter")
|
||||
BOILER_STARTS_COUNT = (30023, 30001, 1, 0, "#", "BOILER_STARTS_COUNT", "Anzahl der Brennerstarts")
|
||||
CALCULATED_BOILER_TARGET_TEMPERATURE = (30028, 30001, 1, 0, "h", "CALCULATED_BOILER_TARGET_TEMPERATURE", "Errechnete Kesselsolltemperatur")
|
||||
RETURN_FLOW_CONTROL = (30037, 30001, 1, 0, "%", "RETURN_FLOW_CONTROL", "Rücklaufpumpen Ansteuerung")
|
||||
HOURS_SINCE_LAST_MAINTENANCE = (30056, 30001, 1, 0, "h", "HOURS_SINCE_LAST_MAINTENANCE", "Stunden seit letzter Wartung")
|
||||
HOURS_OF_PELLETS_OPERATION = (30063, 30001, 1, 0, "h", "HOURS_OF_PELLETS_OPERATION", "Stunden im Pelletsbetrieb")
|
||||
HOURS_OF_HEATING = (30064, 30001, 1, 0, "h", "HOURS_OF_HEATING", "Stunden im Heizen")
|
||||
CALCULATED_TARGET_RETURN_FLOW = (30067, 30001, 2, 0, "°C", "CALCULATED_TARGET_RETURN_FLOW", "Rücklauf Soll errechnet")
|
||||
KG_COUNT = (30082, 30001, 1, 0, "kg", "KG_COUNT", "Resetierbarer kg-Zähler")
|
||||
TONS_COUNT = (30083, 30001, 1, 0, "t", "TONS_COUNT", "Resetierbarer t-Zähler")
|
||||
TOTAL_PELLETS_CONSUMPTION = (30084, 30001, 10, 1, "t", "TOTAL_PELLETS_CONSUMPTION", "Pelletverbrauch Gesamt")
|
||||
REMAINING_HOURS_UNTIL_ASH_REMOVAL = (30087, 30001, 1, 0, "h", "REMAINING_HOURS_UNTIL_ASH_REMOVAL", "Verbleibende Heizstunden bis zur Asche entleeren Warnung")
|
||||
COUNT_CLEANING_CYCLES = (30102, 30001, 1, 0, "#", "COUNT_CLEANING_CYCLES", "Anzahl der Reinigungen")
|
||||
MINUTES_UNTIL_NEXT_CLENAING_CYLCLE = (30103, 30001, 1, 0, "min", "MINUTES_UNTIL_NEXT_CLENAING_CYLCLE", "Zeit bis zur nächsten Reinigung")
|
||||
RETURN_FLOW_TEMPERATURE_AT_CIRCULATION_LINE = (30712, 30001, 2, 0, "°C", "RETURN_FLOW_TEMPERATURE_AT_CIRCULATION_LINE", "Rücklauftemperatur an der Zirkulations Leitung")
|
||||
OUTSIDE_TEMPERATURE = (31001, 30001, 2, 0, "°C", "OUTSIDE_TEMPERATURE", "Außentemperatur")
|
||||
HEATING_FLOW_TEMPERATURE_ACTUAL = (31031, 30001, 2, 0, "°C", "HEATING_FLOW_TEMPERATURE_ACTUAL", "HK1 - Vorlauf-Isttemperatur")
|
||||
HEATING_FLOW_TEMPERATURE_TARGET = (31032, 30001, 2, 0, "°C", "HEATING_FLOW_TEMPERATURE_TARGET", "HK1 - Vorlauf-Solltemperatur")
|
||||
ROOM_TEMPERATURE = (31033, 30001, 2, 0, "°C", "ROOM_TEMPERATURE", "HK1 - Raumtemperatur")
|
||||
BOILER_TEMPERATURE_TOP = (31631, 30001, 2, 0, "°C", "BOILER_TEMPERATURE_TOP", "Boiler 1 - Boilertemperatur oben")
|
||||
BUFFER_TEMPERATURE_TOP = (32001, 30001, 2, 0, "°C", "BUFFER_TEMPERATURE_TOP", "Puffertemperatur oben")
|
||||
#BUFFER_TEMPERATURE_CENTER = (32002, 30001, 2, 0, "°C", "BUFFER_TEMPERATURE_CENTER", "Puffertemperatur Mitte")
|
||||
BUFFER_TEMPERATURE_BOTTOM = (32003, 30001, 2, 0, "°C", "BUFFER_TEMPERATURE_BOTTOM", "Puffertemperatur unten")
|
||||
BUFFER_CHARGING_STATE = (32007, 30001, 1, 0, "%", "BUFFER_CHARGING_STATE", "Pufferladezustand")
|
||||
|
||||
|
||||
"""
|
||||
PE1_TEMPERATURE = 30001# Kesseltemperatur °C 2 0
|
||||
#30002,# Abgastemperatur °C 1 0
|
||||
#30003,# Boardtemperatur °C 2 0
|
||||
#30004,# Restsauerstoffgehalt % 10 1
|
||||
#30005,# Position der Primärluftklappe % 1 0
|
||||
#30006,# T4 Bgr2 - Position der Sekundärluftklappe % 1 0
|
||||
#30007,# Saugzugdrehzahl Upm 1 0
|
||||
SENSOR_1 = 30008# Fühler 1 °C 2 0
|
||||
#30009,# Abgastemperatur nach dem Brennwertwärmetauscher °C 2 0
|
||||
RETURN_FLOW_SENSOR = 30010# Rücklauffühler °C 2 0
|
||||
#30011,# Luftgeschwindigkeit in der Ansaugöffnung m/s 100 2
|
||||
#30012,# Primärluft % 1 0
|
||||
#30013,# Saugzug - Ansteuerung % 1 0
|
||||
#30014,# Sekundärluft % 1 0
|
||||
#30015,# Kesselstellgröße % 1 0
|
||||
#30016,# Abgas-Solltemperatur °C 1 0
|
||||
#30017,# Sauerstoffregler % 1 0
|
||||
#30018,# Boardtemperatur Pelletsmodul °C 2 0
|
||||
#30019,# Ansauglufttemperatur °C 2 0
|
||||
#30020,# Stromaufnahme der Austragschnecke A 1000 2
|
||||
OPERATING_HOURS = 30021# Betriebsstunden h 1 0
|
||||
FILL_LEVEL_PELLETS_CONTAINER = 30022# Füllstand im Pelletsbehälter % 207 1
|
||||
BOILER_STARTS_COUNT = 30023# Anzahl der Brennerstarts 1 0
|
||||
#30024,# S4 - Zündungsstarts 1 0
|
||||
#30025,# Betriebsstunden in der Feuererhaltung h 1 0
|
||||
#30026,# Einschub % 1 0
|
||||
#30027,# Einschubregler % 1 0
|
||||
CALCULATED_BOILER_TARGET_TEMPERATURE = 30028# Errechnete Kesselsolltemperatur °C 2 0
|
||||
#30029,# Solarfühler Pufferunten °C 2 0
|
||||
|
||||
#30030,# Stromaufnahme der Förderschnecke A 1000 2
|
||||
#30031,# Stromaufnahme der Zellradschleuse A 1000 2
|
||||
#30032,# Stromaufnahme der Stokerschnecke A 1000 2
|
||||
#30033,# Feuerraum-Unterdruck Pa 1 0
|
||||
#30034,# Position Absperrschieber % 10 0
|
||||
#30035,# Position Rostmotor % 10 0
|
||||
#30036,# Einschubkorrektur-Regler % 1 0
|
||||
RETURN_FLOW_CONTROL = 30037# Rücklaufpumpen Ansteuerung % 1 0
|
||||
#30038,# Verbrennungs Zuluftgebläse % 1 0
|
||||
#30039,# Verbrennungs Zuluftgebläse % 1 0
|
||||
#30040,# Betriebsstunden Stokerschnecke h 1 0
|
||||
#30041,# Betriebsstunden Förderschnecke h 1 0
|
||||
#30042,# Betriebsstunden ZRS h 1 0
|
||||
#30043,# Betriebsstunden Rüttler min 1 0
|
||||
#30044,# Lastspiele Kippantrieb 1 0
|
||||
#30045,# Betriebsstunden WOS h 1 0
|
||||
#30046,# Betriebsstunden Ascheschnecke h 1 0
|
||||
#30047,# Betriebsstunden Zündung h 1 0
|
||||
#30048,# Betriebsstunden Lambdasonde h 1 0
|
||||
#30049,# Betriebsstunden Saugturbine(n) h 1 0
|
||||
#30050,# Betriebsstunden Austragsschnecke h 1 0
|
||||
#30051,# Lastspiele Sicherheitsbelüftung 1 0
|
||||
#30052,# Betriebsstunden Saugzug h 1 0
|
||||
#30053,# Lastspiele RBK 1 0
|
||||
#30054,# Gemessener Fahrweg des Absperrschiebers % 10 0
|
||||
#30055,# Lambdasondenspannung gemessen mV 100 2
|
||||
HOURS_SINCE_LAST_MAINTENANCE = 30056# Stunden seit letzter Wartung h 1 0
|
||||
#30057,# Kesselanforderung über Heizkreis oder Boiler steht an 1 0
|
||||
#30058,# FR-Kühlung durch Sekundärluft % 1 0
|
||||
#30059,# Einschub wird begrenzt auf maximal % 1 0
|
||||
#30060,# Leistungsanhebung durch FR-Regelung % 1 0
|
||||
#30061,# Abschöpf Ausgang % 1 0
|
||||
#30062,# Lambdasondenspannung korrigiert mV 100 2
|
||||
HOURS_OF_PELLETS_OPERATION = 30063# Stunden im Pelletsbetrieb h 1 0
|
||||
HOURS_OF_HEATING = 30064# Stunden im Heizen h 1 0
|
||||
#30065,# Fühler Weiche Oben °C 2 0
|
||||
#30066,# Fühler Weiche Unten °C 2 0
|
||||
CALCULATED_TARGET_RETURN_FLOW = 30067# Rücklauf Soll errechnet °C 2 0
|
||||
#30068,# Drehzahl Kesselladepumpe % 1 0
|
||||
#30069,# Breitbandsonde Heizstrom A 1000 2
|
||||
#30070,# Breitbandsonde Heizungs Spannung V 1000 2
|
||||
#30071,# Breitbandsonde Nernst Spannung V 1000 3
|
||||
#30072,# Breitbandsonde Pump Strom mA 1000 3
|
||||
|
||||
#30073,# Breitbandsonde Innenwiderstand Ohm 1 0
|
||||
#30074,# Unterdruck-Soll Pa 1 0
|
||||
#30075,# Stunden in Teillastbetrieb (Kesselstellgröße < 40 %) h 1 0
|
||||
#30076,# Saugzug - Ansteuerung % 1 0
|
||||
#30077,# Stunden im Scheitholzbetrieb h 1 0
|
||||
#30078,# Eingang WOS Funktionsrückmeldung (Fühler 2) 1 0
|
||||
#30079,# Unterdruck-Ist Pa 1 0
|
||||
#30080,# Stromaufnahme der Schnecke 0.1 A 1000 2
|
||||
#30081,# Stromaufnahme der Schnecke 0.2 A 1000 2
|
||||
KG_COUNT = 30082# Resetierbarer kg-Zähler: kg 1 0
|
||||
TONS_COUNT = 30083# Resetierbarer t-Zähler: t 1 0
|
||||
TOTAL_PELLETS_CONSUMPTION = 30084# Pelletverbrauch Gesamt t 10 1
|
||||
#30085,# Tagesertrag [kWh] kWh 1 0
|
||||
#30086,# Gesamtertrag [kWh] kWh 1 0
|
||||
REMAINING_HOURS_UNTIL_ASH_REMOVAL = 30087# Verbleibende Heizstunden bis zur Asche entleeren Warnung h 1 0
|
||||
#30089,# Feuerraumtemperatur °C 1 0
|
||||
#30090,# Boardtemperatur Hackgutmodul °C 2 0
|
||||
#30091,# Aktuelles FRT-Signal % 1 0
|
||||
#30093,# Position der AGR Primärluftklappe % 1 0
|
||||
#30094,# Stromaufnahme vom Rührwerk A 1000 2
|
||||
#30095,# Stromaufnahme der Schnecke 1 A 1000 2
|
||||
#30096,# Stromaufnahme der Schnecke 2 A 1000 2
|
||||
#30097,# Betriebsstunden vom Rührwerk h 1 0
|
||||
#30098,# Betriebsstunden Saugturbine h 1 0
|
||||
#30099,# Betriebsstunden der Schnecke auf LS h 1 0
|
||||
#30100,# Betriebsstunden der Schnecke auf LS h 1 0
|
||||
#30101,# Leistungsbedarf 1 0
|
||||
COUNT_CLEANING_CYCLES = 30102# Anzahl der Reinigungen 1 0
|
||||
MINUTES_UNTIL_NEXT_CLENAING_CYLCLE = 30103# Zeit bis zur nächsten Reinigung min 1 0
|
||||
#30104,# Betriebsstunden E-Filter h 1 0
|
||||
#30105,# Saugzug - Ansteuerung % 1 0
|
||||
#30106,# E-Filter - Leistungsstufe HV-Modul 1 1 0
|
||||
#30107,# E-Filter - Leistungsstufe HV-Modul 2 1 0
|
||||
#30108,# E-Filter - Leistungsstufe HV-Modul 3 1 0
|
||||
#30109,# E-Filter - Leistungsstufe HV-Modul 4 1 0
|
||||
#30110,# E-Filter - Filterrückmeldung 1 0
|
||||
#30111,# E-Filter - Wasser detektiert 1 0
|
||||
#30112,# E-Filter - Zustand Filter 1 0
|
||||
#30113,# Auf / Zu Bewegung des Rostes 1 0
|
||||
#30114,# Eingang externe Leistungsanforderung % 1 0
|
||||
#30115,# Aktuelle externe Leistungsanforderung % 1 0
|
||||
#30116,# ASKK Pumpenansteuerung % 1 0
|
||||
#30117,# Gefilterter Rostdifferenzdruck Pa 1 0
|
||||
|
||||
#30118,# Druckdifferenz Rost Pa 1 0
|
||||
#30119,# Solldifferenzdruck Rost Pa 1 0
|
||||
#30120,# Unterdruck über dem Rost Pa 1 0
|
||||
#30121,# Unterdruck unter dem Rost Pa 1 0
|
||||
#30122,# Lastspiele Kippantrieb 1 1 0
|
||||
#30123,# Position der AGR Sekundärluftklappe % 1 0
|
||||
#30124,# Einschub absolut % 10 1
|
||||
#30125,# Ist-Druck im AGR-Kanal Pa 1 0
|
||||
#30126,# Solldruck im AGR-Kanal Pa 1 0
|
||||
#30127,# Position der AGR-Klappe % 1 0
|
||||
#30128,# Automatischer Maximaleinschub % 10 1
|
||||
#30129,# Temperatur unter dem Rost °C 1 0
|
||||
#30130,# Stromaufnahme der Schnecke 1 A 1000 2
|
||||
#30131,# WOS-Zustand 1 0
|
||||
#30132,# Temperatur Aufschubkanal °C 2 0
|
||||
#30133,# T4 - Lastspiele Kippantrieb 2 1 0
|
||||
#30134,# Anzahl der Überschläge 1 0
|
||||
#30135,# Leistung HV-Modul 1 W 100 2
|
||||
#30136,# Leistung HV-Modul 2 W 100 2
|
||||
#30139,# Aufgenommene Energie kWh 100 2
|
||||
#30140,# Lambdasondenzustand 1 0
|
||||
#30141,# Spannungsrückmeldung HV-Modul 1 kV 100 2
|
||||
#30142,# Stromrückmeldung HV-Modul 1 mA 1000 3
|
||||
#30143,# System "Loop" - Looppumpe % 1 0
|
||||
#30144,# Spannungsrückmeldung HV-Modul 2 kV 100 2
|
||||
#30145,# Stromrückmeldung HV-Modul 2 mA 1000 3
|
||||
#30146,# Absperrschieber - Aktuelle Position 1 0
|
||||
#30147,# Brennwert-WT - Anzahl der Spülvorgänge 1 0
|
||||
#30148,# Vergangene Zeit seit letzter Wärmetauscherreinigung min 1 0
|
||||
#30149,# Status Absperrschieber 1 0
|
||||
#30150,# 1-2-3 Saugmodul Motor 1 1 0
|
||||
#30151,# 1-2-3 Saugmodul Motor 2 1 0
|
||||
#30152,# 1-2-3 Saugmodul Motor 3 1 0
|
||||
#30153,# T4/T4e - Einschub % 10 1
|
||||
#30154,# Zyklon m. 2 ZRS - MAX-Sensor 1 0
|
||||
#30155,# Zyklon m. 2 ZRS - MIN-Sensor 1 0
|
||||
#30156,# 1-2-3 Saugmodul - Aktive Sonde 1 0
|
||||
#30157,# 1-2-3 Saugmodul - Aktives Saugsystem 1 0
|
||||
#30501,# Temperatur des Zweitkessel °C 2 0
|
||||
#30502,# Zustand des Brennerrelais 1 0
|
||||
#30503,# Betriebsstunden von Kessel 2 (Brennerkontakt) h 1 0
|
||||
#30504,# Umschaltventil Zweitkessel % 1 0
|
||||
#30601,# Zirku. Pumpe - Strömungsschalter an der Brauchwasser Leitung 2 0
|
||||
|
||||
#30701,# Drehzahl Netzpumpe % 1 0
|
||||
#30702,# Netzrücklauf Temperatur °C 2 0
|
||||
#30703,# Drehzahl Verteiler 1 Pumpe % 1 0
|
||||
#30704,# Rücklauf Temperatur Verteiler 1 °C 2 0
|
||||
#30705,# Drehzahl Verteiler 2 Pumpe % 1 0
|
||||
#30706,# Rücklauf Temperatur Verteiler 2 °C 2 0
|
||||
#30707,# Drehzahl Verteiler 3 Pumpe % 1 0
|
||||
#30708,# Rücklauf Temperatur Verteiler 3 °C 2 0
|
||||
#30709,# Drehzahl Verteiler 4 Pumpe % 1 0
|
||||
#30710,# Rücklauf Temperatur Verteiler 4 °C 2 0
|
||||
#30711,# Drehzahl der Zirkulations Pumpe % 1 0
|
||||
RETURN_FLOW_TEMPERATURE_AT_CIRCULATION_LINE = 30712# Rücklauftemperatur an der Zirkulations Leitung °C 2 0
|
||||
#30801,# Diff- Regler - Temperatur der Wärmequelle °C 2 0
|
||||
#30802,# Diff- Regler - Temperatur der Wärmesenke °C 2 0
|
||||
#30803,# Diff- Regler - Drehzahl der Pumpe % 1 0
|
||||
#30901,# Kaskade Folgekessel 1 - Folgekessel Kesseltemperatur °C 2 0
|
||||
#30902,# Kaskade Folgekessel 2 - Folgekessel Kesseltemperatur °C 2 0
|
||||
#30903,# Kaskade Folgekessel 3 - Folgekessel Kesseltemperatur °C 2 0
|
||||
#30904,# Kaskade Folgekessel 1 - Folgekessel OK 1 0
|
||||
#30905,# Kaskade Folgekessel 2 - Folgekessel OK 1 0
|
||||
#30906,# Kaskade Folgekessel 3 - Folgekessel OK 1 0
|
||||
#30907,# Kaskade Folgekessel 1 - Folgekessel ist im Heizen 1 0
|
||||
#30908,# Kaskade Folgekessel 2 - Folgekessel ist im Heizen 1 0
|
||||
#30909,# Kaskade Folgekessel 3 - Folgekessel ist im Heizen 1 0
|
||||
#30910,# Kaskade Folgekessel 1 - Folgekessel Stellgröße % 1 0
|
||||
#30911,# Kaskade Folgekessel 2 - Folgekessel Stellgröße % 1 0
|
||||
#30912,# Kaskade Folgekessel 3 - Folgekessel Stellgröße % 1 0
|
||||
#30913,# Kaskade Folgekessel 1 - Drehzahl Kesselladepumpe % 1 0
|
||||
#30914,# Kaskade Folgekessel 2 - Drehzahl Kesselladepumpe % 1 0
|
||||
#30915,# Kaskade Folgekessel 3 - Drehzahl Kesselladepumpe % 1 0
|
||||
#30916,# Kaskade Folgekessel 1 - Folgekessel Abgastemperatur °C 1 0
|
||||
#30917,# Kaskade Folgekessel 2 - Folgekessel Abgastemperatur °C 1 0
|
||||
#30918,# Kaskade Folgekessel 3 - Folgekessel Abgastemperatur °C 1 0
|
||||
#30919,# Kaskade Folgekessel 1 - Folgekessel Paketalter s 1 0
|
||||
#30920,# Kaskade Folgekessel 2 - Folgekessel Paketalter s 1 0
|
||||
#30921,# Kaskade Folgekessel 3 - Folgekessel Paketalter s 1 0
|
||||
#30922,# Kaskade Folgekessel 1 - Folgekessel Rücklauffühler °C 2 0
|
||||
#30923,# Kaskade Folgekessel 2 - Folgekessel Rücklauffühler °C 2 0
|
||||
#30924,# Kaskade Folgekessel 3 - Folgekessel Rücklauffühler °C 2 0
|
||||
#30925,# Kaskade o. Puffer - Kaskaden-ist Temperatur °C 2 0
|
||||
#30926,# Slave - Kesselladepumpe % 1 0
|
||||
OUTSIDE_TEMPERATURE = 31001# Außentemperatur °C 2 0
|
||||
HEATING_FLOW_TEMPERATURE_ACTUAL = 31031# HK1 - Vorlauf-Isttemperatur °C 2 0
|
||||
|
||||
HEATING_FLOW_TEMPERATURE_TARGET = 31032# HK1 - Vorlauf-Solltemperatur °C 2 0
|
||||
ROOM_TEMPERATURE = 31033# HK1 - Raumtemperatur °C 2 0
|
||||
#31061,# HK2 - Vorlauf-Isttemperatur °C 2 0
|
||||
#31062,# HK2 - Vorlauf-Solltemperatur °C 2 0
|
||||
#31063,# HK2 - Raumtemperatur °C 2 0
|
||||
#31091,# HK3 - Vorlauf-Isttemperatur °C 2 0
|
||||
#31092,# HK3 - Vorlauf-Solltemperatur °C 2 0
|
||||
#31093,# HK3 - Raumtemperatur °C 2 0
|
||||
#31121,# HK4 - Vorlauf-Isttemperatur °C 2 0
|
||||
#31122,# HK4 - Vorlauf-Solltemperatur °C 2 0
|
||||
#31123,# HK4 - Raumtemperatur °C 2 0
|
||||
#31151,# HK5 - Vorlauf-Isttemperatur °C 2 0
|
||||
#31152,# HK5 - Vorlauf-Solltemperatur °C 2 0
|
||||
#31153,# HK5 - Raumtemperatur °C 2 0
|
||||
#31181,# HK6 - Vorlauf-Isttemperatur °C 2 0
|
||||
#31182,# HK6 - Vorlauf-Solltemperatur °C 2 0
|
||||
#31183,# HK6 - Raumtemperatur °C 2 0
|
||||
#31211,# HK7 - Vorlauf-Isttemperatur °C 2 0
|
||||
#31212,# HK7 - Vorlauf-Solltemperatur °C 2 0
|
||||
#31213,# HK7 - Raumtemperatur °C 2 0
|
||||
#31241,# HK8 - Vorlauf-Isttemperatur °C 2 0
|
||||
#31242,# HK8 - Vorlauf-Solltemperatur °C 2 0
|
||||
#31243,# HK8 - Raumtemperatur °C 2 0
|
||||
#31271,# HK9 - Vorlauf-Isttemperatur °C 2 0
|
||||
#31272,# HK9 - Vorlauf-Solltemperatur °C 2 0
|
||||
#31273,# HK9 - Raumtemperatur °C 2 0
|
||||
#31301,# HK10 - Vorlauf-Isttemperatur °C 2 0
|
||||
#31302,# HK10 - Vorlauf-Solltemperatur °C 2 0
|
||||
#31303,# HK10 - Raumtemperatur °C 2 0
|
||||
#31331,# HK11 - Vorlauf-Isttemperatur °C 2 0
|
||||
#31332,# HK11 - Vorlauf-Solltemperatur °C 2 0
|
||||
#31333,# HK11 - Raumtemperatur °C 2 0
|
||||
#31361,# HK12 - Vorlauf-Isttemperatur °C 2 0
|
||||
#31362,# HK12 - Vorlauf-Solltemperatur °C 2 0
|
||||
#31363,# HK12 - Raumtemperatur °C 2 0
|
||||
#31391,# HK13 - Vorlauf-Isttemperatur °C 2 0
|
||||
#31392,# HK13 - Vorlauf-Solltemperatur °C 2 0
|
||||
#31393,# HK13 - Raumtemperatur °C 2 0
|
||||
#31421,# HK14 - Vorlauf-Isttemperatur °C 2 0
|
||||
#31422,# HK14 - Vorlauf-Solltemperatur °C 2 0
|
||||
#31423,# HK14 - Raumtemperatur °C 2 0
|
||||
#31451,# HK15 - Vorlauf-Isttemperatur °C 2 0
|
||||
#31452,# HK15 - Vorlauf-Solltemperatur °C 2 0
|
||||
|
||||
#31453,# HK15 - Raumtemperatur °C 2 0
|
||||
#31481,# HK16 - Vorlauf-Isttemperatur °C 2 0
|
||||
#31482,# HK16 - Vorlauf-Solltemperatur °C 2 0
|
||||
#31483,# HK16 - Raumtemperatur °C 2 0
|
||||
#31511,# HK17 - Vorlauf-Isttemperatur °C 2 0
|
||||
#31512,# HK17 - Vorlauf-Solltemperatur °C 2 0
|
||||
#31513,# HK17 - Raumtemperatur °C 2 0
|
||||
#31541,# HK18 - Vorlauf-Isttemperatur °C 2 0
|
||||
#31542,# HK18 - Vorlauf-Solltemperatur °C 2 0
|
||||
#31543,# HK18 - Raumtemperatur °C 2 0
|
||||
BOILER_TEMPERATURE_TOP = 31631# Boiler 1 - Boilertemperatur oben °C 2 0
|
||||
#31632# Boiler 1 - Boilertemperatur Solarreferenz °C 2 0
|
||||
#31633# Boiler 1 - Boilerpumpe Ansteuerung % 1 0
|
||||
#31661,# Boiler 2 - Boilertemperatur oben °C 2 0
|
||||
#31662,# Boiler 2 - Boilertemperatur Solarreferenz °C 2 0
|
||||
#31663,# Boiler 2 - Boilerpumpe Ansteuerung % 1 0
|
||||
#31691,# Boiler 3 - Boilertemperatur oben °C 2 0
|
||||
#31692,# Boiler 3 - Boilertemperatur Solarreferenz °C 2 0
|
||||
#31693,# Boiler 3 - Boilerpumpe Ansteuerung % 1 0
|
||||
#31721,# Boiler 4 - Boilertemperatur oben °C 2 0
|
||||
#31722,# Boiler 4 - Boilertemperatur Solarreferenz °C 2 0
|
||||
#31723,# Boiler 4 - Boilerpumpe Ansteuerung % 1 0
|
||||
#31751,# Boiler 5 - Boilertemperatur oben °C 2 0
|
||||
#31752,# Boiler 5 - Boilertemperatur Solarreferenz °C 2 0
|
||||
#31753,# Boiler 5 - Boilerpumpe Ansteuerung % 1 0
|
||||
#31781,# Boiler 6 - Boilertemperatur oben °C 2 0
|
||||
#31782,# Boiler 6 - Boilertemperatur Solarreferenz °C 2 0
|
||||
#31783,# Boiler 6 - Boilerpumpe Ansteuerung % 1 0
|
||||
#31811,# Boiler 7 - Boilertemperatur oben °C 2 0
|
||||
#31812,# Boiler 7 - Boilertemperatur Solarreferenz °C 2 0
|
||||
#31813,# Boiler 7 - Boilerpumpe Ansteuerung % 1 0
|
||||
#31841,# Boiler 8 - Boilertemperatur oben °C 2 0
|
||||
#31842,# Boiler 8 - Boilertemperatur Solarreferenz °C 2 0
|
||||
#31843,# Boiler 8 - Boilerpumpe Ansteuerung % 1 0
|
||||
BUFFER_TEMPERATURE_TOP = 32001# Puffer 1 - Puffertemperatur oben °C 2 0
|
||||
BUFFER_TEMPERATURE_CENTER = 32002# Puffer 1 - Puffertemperatur Mitte °C 2 0
|
||||
BUFFER_TEMPERATURE_BOTTOM = 32003# Puffer 1 - Puffertemperatur unten °C 2 0
|
||||
#32004,# Puffer 1 - Pufferpumpen Ansteuerung % 1 0
|
||||
#32005,# Puffer 1 - Puffertemperatur Fühler 2 °C 2 0
|
||||
#32006,# Puffer 1 - Puffertemperatur Fühler 3 °C 2 0
|
||||
BUFFER_CHARGING_STATE = 32007# Puffer 1 - Pufferladezustand % 1 0
|
||||
#32008,# Solarfühler Puffer oben °C 2 0
|
||||
#32041,# Puffer 2 - Puffertemperatur oben °C 2 0
|
||||
|
||||
#32042,# Puffer 2 - Puffertemperatur Mitte °C 2 0
|
||||
#32043,# Puffer 2 - Puffertemperatur unten °C 2 0
|
||||
#32044,# Puffer 2 - Pufferpumpen Ansteuerung % 1 0
|
||||
#32081,# Puffer 3 - Puffertemperatur oben °C 2 0
|
||||
#32082,# Puffer 3 - Puffertemperatur Mitte °C 2 0
|
||||
#32083,# Puffer 3 - Puffertemperatur unten °C 2 0
|
||||
#32084,# Puffer 3 - Pufferpumpen Ansteuerung % 1 0
|
||||
#32121,# Puffer 4 - Puffertemperatur oben °C 2 0
|
||||
#32122,# Puffer 4 - Puffertemperatur Mitte °C 2 0
|
||||
#32123,# Puffer 4 - Puffertemperatur unten °C 2 0
|
||||
#32124,# Puffer 4 - Pufferpumpen Ansteuerung % 1 0
|
||||
#32301,# Zustandslaufzeit aktuell 1 0
|
||||
#32302,# Zustandslaufzeit maximal 1 0
|
||||
#32601,# Ansteuerung Kollektorpumpe % 1 0
|
||||
#32602,# Kollektortemperatur °C 2 0
|
||||
#32603,# Laufzeit Kollektorpumpe h 1 0
|
||||
#32604,# Kollektor Rücklauftemperatur °C 2 0
|
||||
#32605,# Solar - Wärmetauscher Sek. Vorlauftemperatur (Leitung zum Puffer) °C 2 0
|
||||
#32606,# Solar - Pumpe zwischen Wärmetauscher und Puffer % 1 0
|
||||
#32607,# Solar - Pumpe zwischen Wärmetauscher und Boiler % 1 0
|
||||
#32608,# Solar - Ventil für Umschaltung zw. Puffer oben und unten % 1 0
|
||||
#32609,# Boilertemperatur Solarreferenz °C 2 0
|
||||
#32610,# Solar - DFL Sensor [l/h] l/h 1 0
|
||||
#32611,# Aktuelle Leistung des Solar WMZ [kW] kW 100 2
|
||||
#32612,# Solar - Kollektor Rücklauftemperatur °C 2 0
|
||||
#32613,# Solar - Kollektor Vorlauftemperatur °C 2 0
|
||||
#32614,# Solar - Tagesertrag vor 1 Tag kWh 1 0
|
||||
#32615,# Solar - Tagesertrag vor 2 Tagen kWh 1 0
|
||||
#32616,# Solar - Tagesertrag vor 3 Tagen kWh 1 0
|
||||
#32617,# Solar - Tagesertrag vor 4 Tagen kWh 1 0
|
||||
#32618,# Solar - Tagesertrag vor 5 Tagen kWh 1 0
|
||||
#32619,# Solar - Tagesertrag vor 6 Tagen kWh 1 0
|
||||
#32620,# Tagesertrag [kWh] kWh 1 0
|
||||
#32621,# Gesamtertrag [MWh] MWh 1 0
|
||||
#32622,# Gesamtertrag [kWh] kWh 1 0
|
||||
#32623,# Aktuelle Ansteuerung der Kollektor - Boiler Pumpe % 1 0
|
||||
#32624,# Laufzeit der Kollektor - Boiler Pumpe h 1 0
|
||||
#32625,# Solarsystem 3 - Anzahl der Schaltzyklen des Umschaltventils 1 0
|
||||
|
||||
#40001,# Kessel-Solltemperatur °C 2 0 70 90 R/W
|
||||
"""
|
||||
@@ -1,8 +1,32 @@
|
||||
from pymodbus.client import ModbusTcpClient
|
||||
#from pymodbus.client import ModbusTcpClient
|
||||
import logging
|
||||
|
||||
from pyModbusTCP.client import ModbusClient
|
||||
|
||||
from register import InputRegisters
|
||||
from modbusclient import LTModbusClient, RegisterResponse
|
||||
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
logging.getLogger("pymodbus").setLevel(logging.DEBUG)
|
||||
|
||||
# TCP auto connect on first modbus request
|
||||
client = LTModbusClient(
|
||||
host="192.168.0.222",
|
||||
port=502,
|
||||
unit_id=2
|
||||
)
|
||||
|
||||
print(client)
|
||||
|
||||
status = client.open()
|
||||
|
||||
if status:
|
||||
|
||||
register_response: RegisterResponse = client.get_register_value(InputRegisters.BUFFER_TEMPERATURE_BOTTOM)
|
||||
|
||||
print(vars(register_response))
|
||||
|
||||
|
||||
client = ModbusTcpClient('192.168.0.7')
|
||||
client.connect()
|
||||
client.write_coil(1, True)
|
||||
result = client.read_coils(1,1)
|
||||
print(result.bits[0])
|
||||
client.close()
|
||||
|
||||
exit()
|
||||
|
||||
Reference in New Issue
Block a user