Autor Thema: Paradigma Heizung Integration via Modbus TCP  (Gelesen 130 mal)

Offline nigl

  • New Member
  • *
  • Beiträge: 8
Paradigma Heizung Integration via Modbus TCP
« am: 21 Oktober 2021, 12:04:28 »
Da ich keinen Thread zu dem Thema gefunden habe, starte ich meinen ersten Thread hier im Forum.

Paradigma https://www.paradigma.de/ hat mit Version v2.16 Modbus TCP Unterstützung in ihre Produkte SystaComfort II und CompactC eingebaut was mich sehr gefreut hat, als ich letzte Woche ein Update meiner SystaComfort II bekommen habe.

Das FHEM Modul ModbusAttr bietet eine generische Konfigurationsmöglichkeit für Modbus Geräte an, indem man via attr verschiedene Readings generieren kann. An Hand der wirklich tollen Dokumentation des ModbusAttr Moduls habe ich ich eine Beispielkonfiguration erstellt.

An Hand der Dokumentation von Paradigma (siehe: https://www.paradigma.de/produkte/regelungen/modbus-schnittstelle/) kann man für folgende Register FHEM Readings generieren.

  • Coils Register
  • Inputs Register
  • Holdings Register

Allerdings liefern die Registereinträge für Geräte, die nicht physikalisch verbaut sind, nicht nutzbare Werte zurück (meistens den Maximalwert des jeweiligen Datentyps).

Deshalb habe ich folgenden Ansatz gewählt: Ich teile die Konfiguration für das Paradigma ModbusAttr Device in verschiedene Config-Snippets auf, die man je nach verbauter Hardware verwenden kann. Die Komponenten habe ich aus der Spalte "Quelle" in der Paradigma Dokumentation abgeleitet. Wie diese "Quellen" auf tatsächlich vorhandene Hardware passen weiß ich nicht.

Zum Testen schlage ich folgendes Vorgehen vor:

Erstmal ein Device generieren:


define Paradigma ModbusAttr 1 60 192.168.100.100:502 TCP

Dann kann man via FHEM Webinterface das Device auswählen und mit "Raw Definition" den Editor aufmachen. Da kann man dann die jeweiligen Config-Snippets reinkopieren, für die man Hardware hat.

Folgende Snippets gibt es:

fhem-paradigma-global.conf : Notwendig, beinhaltet Typ-Definitionen und register-spezifische Konfigurationen

#
# general parameters for for Coils Registers
#
attr Paradigma dev-c-combine 10
attr Paradigma dev-c-defPoll 1

#
# general parameters for for Holding Registers
#
attr Paradigma dev-h-combine 100
attr Paradigma dev-h-defPoll 1

#
# general parameters for Input Registers
#
attr Paradigma dev-i-combine 100
attr Paradigma dev-i-defExpr $val/10
attr Paradigma dev-i-defFormat %.1f
attr Paradigma dev-i-defPoll 1
attr Paradigma dev-i-defUnpack s>

#
# Type definitions:
# According to Paradigma Documentation, the following types are defined
#

#
# Name:        Para_RW_Temp
# Type:        int16
# ScaleFactor: 0.1
# Unit:        degrees centigrade (°C)
# Writeable:   yes
#
attr Paradigma dev-type-Para_RW_Temp-expr $val/10
attr Paradigma dev-type-Para_RW_Temp-format %.1f
attr Paradigma dev-type-Para_RW_Temp-unpack s>
# FIXME Looks like a bug as ModbusAttr Module does not allow to define a setexpr for a dev-type.
#       So I commented out set feature for scaled devices.
#       I do not want to add a setexpr for every register entry.
#attr Paradigma dev-type-Para_RW_Temp-set 1
#attr Paradigma dev-type-Para_RW_Temp-setexpr $val*10


#
# Name:        Para_RO_Energy
# Type:        uint32
# ScaleFactor: 1
# Unit:        kWh
# Writeable:   no
#
attr Paradigma dev-type-Para_RO_Energy-unpack N
attr Paradigma dev-type-Para_RO_Energy-len 2


#
# Name:        Para_RO_Energy_scaled
# Type:        uint32
# ScaleFactor: 0.1
# Unit:        kWh
# Writeable:   no
#
attr Paradigma dev-type-Para_RO_Energy-expr $val/10
attr Paradigma dev-type-Para_RO_Energy-format %.1f
attr Paradigma dev-type-Para_RO_Energy-unpack N
attr Paradigma dev-type-Para_RO_Energy-len 2


#
# Name:        Para_RO_Counter
# Type:        uint32
# ScaleFactor: 1
# Unit:        count
# Writeable:   no
#
attr Paradigma dev-type-Para_RO_Counter-unpack N
attr Paradigma dev-type-Para_RO_Counter-len 2


#
# Name:        Para_RW_uint16
# Type:        uint16
# ScaleFactor: 1
# Unit:        1
# Writeable:   yes
#
attr Paradigma dev-type-Para_RW_uint16-unpack n
attr Paradigma dev-type-Para_RW_uint16-set 1

#
# Name:        Para_RO_uint16
# Type:        uint16
# ScaleFactor: 1
# Unit:        1
# Writeable:   no
#
attr Paradigma dev-type-Para_RO_uint16-unpack n

#
# Name:        Para_RO_uint16_scaled
# Type:        uint16
# ScaleFactor: 0.1
# Unit:        misc
# Writeable:   no
#
attr Paradigma dev-type-Para_RO_uint16_scaled-unpack n
attr Paradigma dev-type-Para_RO_uint16_scaled-expr $val/10
attr Paradigma dev-type-Para_RO_uint16_scaled-format %.1f

#
# Name:        Para_RO_Temp
# Type:        int16
# ScaleFactor: 0.1
# Unit:        degrees centigrade (°C)
# Writeable:   no
#
attr Paradigma dev-type-Para_RO_Temp-unpack s>
attr Paradigma dev-type-Para_RO_Temp-expr $val/10
attr Paradigma dev-type-Para_RO_Temp-format %.1f

#
# Name:        Para_RO_Power
# Type:        int16
# ScaleFactor: 0.1
# Unit:        kW
# Writeable:   no
#
attr Paradigma dev-type-Para_RO_Power-unpack s>
attr Paradigma dev-type-Para_RO_Power-expr $val/10
attr Paradigma dev-type-Para_RO_Power-format %.1f

#
# Coils Registers always hold a 1-bit value
#
attr Paradigma obj-c0-reading Leitsystem_aktiv
attr Paradigma obj-c1-reading Heizkreis1_vorhanden
attr Paradigma obj-c2-reading Heizkreis2_vorhanden
attr Paradigma obj-c3-reading Heizkreis3_vorhanden
attr Paradigma obj-c4-reading Trinkwassererwaermung_freigeben
attr Paradigma obj-c4-set 1
attr Paradigma obj-c5-reading Trinkwassererwaermung_sperren
attr Paradigma obj-c5-set 1
attr Paradigma obj-c6-reading Trinkwasserzirkulation_freigeben
attr Paradigma obj-c6-set 1
attr Paradigma obj-c7-reading Trinkwasserzirkulation_sperren
attr Paradigma obj-c7-set 1
attr Paradigma obj-c8-reading Schwimmbadheizkreis_vorhanden

#
# Holding registers have different types and encodings
#
attr Paradigma obj-h1-reading Stoercode_Leitsystem
attr Paradigma obj-h1-type Para_RW_uint16


fhem-paradigma-heizungsregler.conf: Optional, Irgendwas mit Heizung  ;)

attr Paradigma obj-i0-reading Aussentemperatur
attr Paradigma obj-i0-name TA
attr Paradigma obj-i1-reading Vorlauftemperatur_HK1
attr Paradigma obj-i1-name TV
attr Paradigma obj-i2-reading Ruecklauftemperatur_HK1
attr Paradigma obj-i2-name TR
attr Paradigma obj-i3-reading Warmwassertemperatur_oben
attr Paradigma obj-i3-name TWO
attr Paradigma obj-i4-reading Puffertemperatur_oben
attr Paradigma obj-i4-name TPO
attr Paradigma obj-i5-reading Puffertemperatur_unten
attr Paradigma obj-i5-name TPU
attr Paradigma obj-i6-reading Temperatur_Zirkulationsruecklauf
attr Paradigma obj-i6-name TZR
attr Paradigma obj-i7-reading Vorlauftemperatur_HK2
attr Paradigma obj-i7-name TV2
attr Paradigma obj-i8-reading Ruecklauftemperatur_HK2
attr Paradigma obj-i8-name TR2
attr Paradigma obj-i9-reading Raumtemperatur_HK1
attr Paradigma obj-i9-name RI1
attr Paradigma obj-i10-reading Raumtemperatur_HK2
attr Paradigma obj-i10-name RI2


fhem-paradigma-systa-comfort-ii.conf: Optional, Irgendwas mit Steuerung ;)

attr Paradigma obj-h2-reading Sollwert_Vorlauftemperatur_HK1
attr Paradigma obj-h2-type Para_RW_Temp
attr Paradigma obj-h2-set 1
attr Paradigma obj-h2-setexpr $val * 10

attr Paradigma obj-h3-reading Sollwert_Vorlauftemperatur_HK2
attr Paradigma obj-h3-type Para_RW_Temp
attr Paradigma obj-h3-set 1
attr Paradigma obj-h3-setexpr $val * 10

attr Paradigma obj-h5-reading Sollwert_Leistung_HK1
attr Paradigma obj-h5-type Para_RW_uint16

attr Paradigma obj-h6-reading Sollwert_Leistung_HK2
attr Paradigma obj-h6-type Para_RW_uint16

attr Paradigma obj-h9-reading Max_Vorlauftemperatur_HK1
attr Paradigma obj-h9-type Para_RW_Temp
attr Paradigma obj-h9-set 1
attr Paradigma obj-h9-setexpr $val * 10

attr Paradigma obj-h10-reading Max_Vorlauftemperatur_HK2
attr Paradigma obj-h10-type Para_RW_Temp
attr Paradigma obj-h10-set 1
attr Paradigma obj-h10-setexpr $val * 10

attr Paradigma obj-h12-reading Stoercode_Heizungsregler
attr Paradigma obj-h12-type Para_RO_uint16

attr Paradigma obj-h27-reading Betriebsstunden_Kessel1
attr Paradigma obj-h27-type Para_RO_Counter

attr Paradigma obj-h29-reading Anzahl_Starts_Kessel1
attr Paradigma obj-h29-type Para_RO_Counter

attr Paradigma obj-h35-reading Status_Zirkulation
attr Paradigma obj-h35-type Para_RO_uint16
attr Paradigma obj-h35-map 0:Zirkulation_nicht_instaliert, 1:Nachlauf_der_Zirkulationspumpe, 2:Zirkulationspumpe_gesprerrt_ueber_Einstellung_Sperrzeit, 3:Zirkulationspumpe_ist_aus, 4:Zirkulationspumpe_durch_Temperaturfuehler_gesperrt, 5:Zirkulationspumpe_ist_an, 6:Zirkulationspumpe_ist_fuer_Frostschutz_an, 7:Zirkulationspumpe_durch_Leitsystem_gesperrt, 65535:Geraet_nicht_verbaut

attr Paradigma obj-h36-reading Status_Heizkreis1
attr Paradigma obj-h36-type Para_RO_uint16
attr Paradigma obj-h36-map 0:Aus_wegen_Betriebsart, 1:Aus_wegen_Aussentemperatur, 2:Aus_wegen_Raumtemperatur, 3:Gesperrt_da_Hauptkessel_gesperrt, 4:Aus_wegen_Warmwasser_Vorrang, 6:Ein_wegen_Frostschutz, 7:solare_Ueberschusswaerme_wird_abgefuerht, 8:Vorhaltezeit_fuer_Aufheizen, 9:Regelung_Sollwert_Raumtemperatur_Normal, 10:Regelung_Sollwert_Raumtemperatur_Komfor, 11:Regelung_Sollwert_Raumtemperatur_Absenken, 16:Warmwassererwaermung_ueber_dezentrale_Wohnungsstation, 17:Estrichprogramm, 65535:Geraet_nicht_verbaut

attr Paradigma obj-h37-reading Status_Heizkreis2
attr Paradigma obj-h37-type Para_RO_uint16
attr Paradigma obj-h37-map 0:Aus_wegen_Betriebsart, 1:Aus_wegen_Aussentemperatur, 2:Aus_wegen_Raumtemperatur, 3:Gesperrt_da_Hauptkessel_gesperrt, 4:Aus_wegen_Warmwasser_Vorrang, 6:Ein_wegen_Frostschutz, 7:solare_Ueberschusswaerme_wird_abgefuerht, 8:Vorhaltezeit_fuer_Aufheizen, 9:Regelung_Sollwert_Raumtemperatur_Normal, 10:Regelung_Sollwert_Raumtemperatur_Komfor, 11:Regelung_Sollwert_Raumtemperatur_Absenken, 16:Warmwassererwaermung_ueber_dezentrale_Wohnungsstation, 17:Estrichprogramm, 65535:Geraet_nicht_verbaut

attr Paradigma obj-h41-reading Status_Heizkessel
attr Paradigma obj-h41-type Para_RO_uint16
attr Paradigma obj-h41-map 0:Aus, 1:Ein_Handbetrieb, 2:Ein_Warmwasser, 3:Ein_Heizung, 4:Gesperrt_durch_Holzkessel, 5: Gesperrt_Wodtke_Pelletsofen, 6:Gesperrt_Aussentemperatur, 7:Warmepumpe_Kuehlbetrieb, 8:Kombikessel_Warmwasser, 9:Warmwasser_Slave, 10:Warmepumpe_Slave_Kuehlbetrieb, 11:Heizbedarf_Slave, 12:Ein_Mindestlaufzeit, 13:Startverzoegerung_Kaskade, 65535:Geraet_nicht_verbaut

attr Paradigma obj-h44-reading Solltemperatur_Puffer_oben
attr Paradigma obj-h44-type Para_RO_Temp

attr Paradigma obj-h45-reading Kesselsolltemperatur
attr Paradigma obj-h45-type Para_RO_Temp

attr Paradigma obj-h48-reading Betriebsart_Heizkreis1
attr Paradigma obj-h48-type Para_RO_uint16
attr Paradigma obj-h48-map 0:Heizzeitprogramm1, 1:Heizzeitprogramm2, 2:Heizzeitprogramm3, 3:Dauernd_Normal, 4:Dauernd_Komfort, 5:Dauernd_Absenken, 6:Sommer, 7:Aus, 8:Party, 9:extern_Absenken, 10:Estrich_trocknen, 11:Ferien, 12:Hand, 13:Test, 14:Kaminfeger, 15:Kessel_Hand, 16:extern_Sommer, 17:extern_Aus, 33:Leitsystem, 65535:Geraet_nicht_verbaut

attr Paradigma obj-h49-reading Betriebsart_Heizkreis2
attr Paradigma obj-h49-type Para_RO_uint16
attr Paradigma obj-h49-map 0:Heizzeitprogramm1, 1:Heizzeitprogramm2, 2:Heizzeitprogramm3, 3:Dauernd_Normal, 4:Dauernd_Komfort, 5:Dauernd_Absenken, 6:Sommer, 7:Aus, 8:Party, 9:extern_Absenken, 10:Estrich_trocknen, 11:Ferien, 12:Hand, 13:Test, 14:Kaminfeger, 15:Kessel_Hand, 16:extern_Sommer, 17:extern_Aus, 33:Leitsystem, 65535:Geraet_nicht_verbaut


fhem-paradigma-systa-solar-aqua-ii.conf : Optional, Solar-Anlage

attr Paradigma obj-h13-reading Stoercode_Solarregler
attr Paradigma obj-h13-type Para_RO_uint16

attr Paradigma obj-h19-reading Kollektorleistung
attr Paradigma obj-h19-type Para_RO_uint16_scaled

attr Paradigma obj-h20-reading Tagesgewinn_Solar
attr Paradigma obj-h20-type Para_RO_uint16_scaled

attr Paradigma obj-h21-reading Gesamtgewinn_Solar
attr Paradigma obj-h21-type Para_RO_Energy_scaled

attr Paradigma obj-h39-reading Status_Solar
attr Paradigma obj-h39-type Para_RO_uint16
attr Paradigma obj-h39-map 0:wartet_auf_Sonne, 1:Frostschutzfunktion, 2:Anschieben_fuer_Messung_Kollektortemperatur, 3:Einschaltverzoegerung_aktiv, 4:Speicher_erwaermen, 6:Speicher_voll, 7:manueller_Betrieb, 8:Messung_Durchfuehren, 9:Notbetrieb, 65535:Geraet_nicht_verbaut


attr Paradigma obj-i11-reading Kollektortemperatur
attr Paradigma obj-i11-name TSA

attr Paradigma obj-i31-reading Solare_Eintrittstemperatur
attr Paradigma obj-i31-name TSE
attr Paradigma obj-i32-reading Temperatur_Speicher_oben
attr Paradigma obj-i32-name TW
attr Paradigma obj-i33-reading Temperatur_Solarvorlauf
attr Paradigma obj-i33-name TSV
attr Paradigma obj-i34-reading Temperatur_Speicher2_oben
attr Paradigma obj-i34-name TW2
attr Paradigma obj-i35-reading Volumenstrom_Solar
attr Paradigma obj-i35-name S
attr Paradigma obj-i36-reading Aussentemperatur_am_Kollektor1
attr Paradigma obj-i36-name TAM
attr Paradigma obj-i37-reading Aussentemperatur_am_Kollektor2
attr Paradigma obj-i37-name TAM2
attr Paradigma obj-i38-reading Kollektortemperatur1
attr Paradigma obj-i38-name TSA1
attr Paradigma obj-i39-reading Kollektortemperatur2
attr Paradigma obj-i39-name TSA2


fhem-paradigma-kessel-ot-lan.conf: Optional, keine Ahnung welche Hardware gemeint ist

attr Paradigma obj-h14-reading Stoercode_Waermeerzeuger1
attr Paradigma obj-h14-type Para_RO_uint16

attr Paradigma obj-h57-reading Stoerung_Waermeerzeuger1
attr Paradigma obj-h57-type Para_RO_uint16

attr Paradigma obj-h58-reading Stoerung_Waermeerzeuger2
attr Paradigma obj-h58-type Para_RO_uint16

attr Paradigma obj-h59-reading Stoerung_Waermeerzeuger3
attr Paradigma obj-h59-type Para_RO_uint16

attr Paradigma obj-h60-reading Stoerung_Waermeerzeuger4
attr Paradigma obj-h60-type Para_RO_uint16


attr Paradigma obj-i12-reading Vorlauftemperatur_Kessel
attr Paradigma obj-i12-name FATV
attr Paradigma obj-i13-reading Ruecklauftemperatur_Kessel
attr Paradigma obj-i13-name FATR
attr Paradigma obj-i27-reading Vorlauftemperatur_Kessel1_Kaskade
attr Paradigma obj-i27-name FATV1
attr Paradigma obj-i28-reading Vorlauftemperatur_Kessel2_Kaskade
attr Paradigma obj-i28-name FATV2
attr Paradigma obj-i29-reading Vorlauftemperatur_Kessel3_Kaskade
attr Paradigma obj-i29-name FATV3
attr Paradigma obj-i30-reading Vorlauftemperatur_Kessel4_Kaskade
attr Paradigma obj-i30-name FATV4


fhem-paradigma-systa-comfort-wood.conf: Optional, Stückholzkessel-Steuerung

attr Paradigma obj-h43-reading Status_Holzkessel
attr Paradigma obj-h43-type Para_RO_uint16
attr Paradigma obj-h43-map 0:Aus, 1:Anheizen, 2:Leistungsbrand, 3:Ausbrand, 4:Aus, 5:Nachkuehlen, 6:Bestimmung_Kesseltemperatur, 65535:Geraet_nicht_verbaut


attr Paradigma obj-i14-reading Vorlauftemperatur_Holzkessel
attr Paradigma obj-i14-name TVKH

attr Paradigma obj-i15-reading Ruecklauftemperatur_Holzessel
attr Paradigma obj-i15-name TRKH

attr Paradigma obj-i16-reading Puffertemperatur_oben_Holzkessel
attr Paradigma obj-i16-name TPO_KH

fhem-paradigma-systa-comfort-heat.conf: Optional, Irgendwas mit 3. Heizkreis ;)

attr Paradigma obj-h4-reading Sollwert_Vorlauftemperatur_HK3
attr Paradigma obj-h4-type Para_RW_Temp
attr Paradigma obj-h4-set 1
attr Paradigma obj-h4-setexpr $val * 10

attr Paradigma obj-h7-reading Sollwert_Leistung_HK3
attr Paradigma obj-h7-type Para_RW_uint16

attr Paradigma obj-h11-reading Max_Vorlauftemperatur_HK3
attr Paradigma obj-h11-type Para_RW_Temp
attr Paradigma obj-h11-set 1
attr Paradigma obj-h11-setexpr $val * 10

attr Paradigma obj-h38-reading Status_Heizkreis3
attr Paradigma obj-h38-type Para_RO_uint16
attr Paradigma obj-h38-map 0:Aus_wegen_Betriebsart, 1:Aus_wegen_Aussentemperatur, 2:Aus_wegen_Raumtemperatur, 3:Gesperrt_da_Hauptkessel_gesperrt, 4:Aus_wegen_Warmwasser_Vorrang, 6:Ein_wegen_Frostschutz, 7:solare_Ueberschusswaerme_wird_abgefuerht, 8:Vorhaltezeit_fuer_Aufheizen, 9:Regelung_Sollwert_Raumtemperatur_Normal, 10:Regelung_Sollwert_Raumtemperatur_Komfor, 11:Regelung_Sollwert_Raumtemperatur_Absenken, 16:Warmwassererwaermung_ueber_dezentrale_Wohnungsstation, 17:Estrichprogramm, 65535:Geraet_nicht_verbaut

attr Paradigma obj-h50-reading Betriebsart_Heizkreis3
attr Paradigma obj-h50-type Para_RO_uint16
attr Paradigma obj-h50-map 0:Heizzeitprogramm1, 1:Heizzeitprogramm2, 2:Heizzeitprogramm3, 3:Dauernd_Normal, 4:Dauernd_Komfort, 5:Dauernd_Absenken, 6:Sommer, 7:Aus, 8:Party, 9:extern_Absenken, 10:Estrich_trocknen, 11:Ferien, 12:Hand, 13:Test, 14:Kaminfeger, 15:Kessel_Hand, 16:extern_Sommer, 17:extern_Aus, 33:Leitsystem, 65535:Geraet_nicht_verbaut


attr Paradigma obj-i17-reading Vorlauftemperatur_HK3
attr Paradigma obj-i17-name TV3

attr Paradigma obj-i18-reading Ruecklauftemperatur_HK3
attr Paradigma obj-i18-name TR3


fhem-paradigma-systa-comfort-stove.conf: Optional, Wodtke-Pelletsofen

attr Paradigma obj-h31-reading Betriebsstunden_Wodtke
attr Paradigma obj-h31-type Para_RO_Counter

attr Paradigma obj-h33-reading Gesamtverbrauch_Wodtke
attr Paradigma obj-h33-type Para_RO_uint16_scaled

attr Paradigma obj-h42-reading Status_Wodtke_Pelletsofen
attr Paradigma obj-h42-type Para_RO_uint16
attr Paradigma obj-h42-map 0:Aus, 1:Standby, 2:Anheizphase, 3:Leistungsbrand, 4:Test_Abgasklappe, 5:Nachlauf, 6:Reinigung, 7:Stoerung, 8:Unbekannt, 65535:Geraet_nicht_verbaut


fhem-paradigma-systa-comfort-pool.conf: Optional, Swimming-Pool

attr Paradigma obj-h40-reading Status_Schwimmbad
attr Paradigma obj-h40-type Para_RO_uint16
attr Paradigma obj-h40-map 0:Erwaermung_gesperrt_da_Umwaelzpumpe_aus, 3:Heizkreis_gesperrt_da_Hauptkessel_gesperrt, 4:Aus_da_Warmwasservorrang_aktiv, 7:Heizen_mit_solarer_Ueberschusswaerme, 12:Schwimmbad_warm, 13:gesperrt_durch_Zeitprogramm, 14:Erwaermung_auf_Normaltemperatur, 15:Erwaermung_auf_Komforttemperatur, 65535:Geraet_nicht_verbaut

attr Paradigma obj-h46-reading Solltemperatur_Schwimmbad_Erwaermung_Heizkessel
attr Paradigma obj-h46-type Para_RO_Temp

attr Paradigma obj-h47-reading Solltemperatur_Schwimmbad_Erwaermung_Solar
attr Paradigma obj-h47-type Para_RO_Temp

attr Paradigma obj-h51-reading Betriebsart_Schwimmbad
attr Paradigma obj-h51-type Para_RO_uint16
attr Paradigma obj-h51-map 0:Heizzeitprogramm1, 1:Heizzeitprogramm2, 2:Heizzeitprogramm3, 3:Dauernd_Normal, 4:Dauernd_Komfort, 5:Dauernd_Absenken, 6:Sommer, 7:Aus, 8:Party, 9:extern_Absenken, 10:Estrich_trocknen, 11:Ferien, 12:Hand, 13:Test, 14:Kaminfeger, 15:Kessel_Hand, 16:extern_Sommer, 17:extern_Aus, 33:Leitsystem, 65535:Geraet_nicht_verbaut


attr Paradigma obj-i19-reading Schwimmbadtemperatur
attr Paradigma obj-i19-name TSB

attr Paradigma obj-i20-reading Vorlauftemperatur_Schwimmbadheizkreis
attr Paradigma obj-i20-name TVSB

attr Paradigma obj-i21-reading Ruecklauftemperatur_Schwimmbadheizkreis
attr Paradigma obj-i21-name TRSB

fhem-paradigma-systa-comfort-si-kas.conf: Optional, Schichtenspeicher / Kaskade

attr Paradigma obj-h52-reading Kesselkaskade_Sollleistung_gesamt
attr Paradigma obj-h52-type Para_RO_Power

attr Paradigma obj-h53-reading Kesselkaskade_Sollleistung_Waermeerzeuger1
attr Paradigma obj-h53-type Para_RO_Power

attr Paradigma obj-h54-reading Kesselkaskade_Sollleistung_Waermeerzeuger2
attr Paradigma obj-h54-type Para_RO_Power

attr Paradigma obj-h55-reading Kesselkaskade_Sollleistung_Waermeerzeuger3
attr Paradigma obj-h55-type Para_RO_Power

attr Paradigma obj-h56-reading Kesselkaskade_Sollleistung_Waermeerzeuger4
attr Paradigma obj-h56-type Para_RO_Power


attr Paradigma obj-i22-reading Einschaltfuehler_Schichtenspeicher
attr Paradigma obj-i22-name TWE

attr Paradigma obj-i23-reading Ausschaltfuehler_Schichtenspeicher
attr Paradigma obj-i23-name TWA

attr Paradigma obj-i24-reading Einschichttemperatur_Schichtenspeicher
attr Paradigma obj-i24-name TWS

attr Paradigma obj-i25-reading Vorlauftemperatur_Schichtenspeicher
attr Paradigma obj-i25-name TVSI

attr Paradigma obj-i26-reading Temperatur_Kaskade
attr Paradigma obj-i26-name TK


fhem-paradigma-systa-expresso-ii.conf: Optional, Frischwasserstation

attr Paradigma obj-h8-reading Sollwert_Trinkwassertemperatur
attr Paradigma obj-h8-type Para_RW_Temp
attr Paradigma obj-h8-set 1
attr Paradigma obj-h8-setexpr $val * 10

attr Paradigma obj-h23-reading Waermemenge_Warmwasser
attr Paradigma obj-h23-type Para_RO_Energy

attr Paradigma obj-h25-reading Waermemenge_Zirkulation
attr Paradigma obj-h25-type Para_RO_Energy_scaled

attr Paradigma obj-h34-reading Status_Warmwasser
attr Paradigma obj-h34-type Para_RO_uint16
attr Paradigma obj-h34-map 0:kein_Warmwasser_Bedarf, 1:Warmwasserspeicher_wird_beladen, 2:Frostschutzfunktion_aktiv, 3:Der Warmwasser-Schichtenspeicher_hat_Waermebedarf_aber_der_Puffer_ist_zu_kalt, 4:Nachlaufzeit_der_Ladepumpe, 5:Der_Warmwasser-Schichtenspeicher_wird_beladen_um_den_Puffer_vor_Ueberhitzung_zu_schuetzen, 6:auf_Wasserentnahme_warten, 7:Wasserentnahme, 8:Inbetriebnahme, 9:manueller_Betrieb, 10:Betrieb_Zirkulation, 11:Nachlauf_Zirkulation, 12:Zirkulation_befindet_sich_in_der_Sperrzeit, 13:Warmwassererwaermung_ist_durch_das_Leitsystem_gesperrt, 65535:Geraet_nicht_verbaut


attr Paradigma obj-i40-reading Eintrittstemperatur_Speicher_Frischwasserstation
attr Paradigma obj-i40-name TSP
attr Paradigma obj-i41-reading Austrittstemperatur_Warmwasser_Frischwasserstation
attr Paradigma obj-i41-name TWW
attr Paradigma obj-i42-reading Eintrittstemperatur_Kaltwasser_Frischwasserstation
attr Paradigma obj-i42-name TKW
attr Paradigma obj-i43-reading Volumenstrom_Kaltwasser
attr Paradigma obj-i43-name VKW
attr Paradigma obj-i44-reading Volumenstrom_Speicherseite
attr Paradigma obj-i44-name VSPm

Bei mir funktioniert das ziemlich gut.

Was fehlt noch:

  • Für die ganzen schreibbaren Register bei denen die Werte mit 10 skaliert werden müssen, würde ich gerne die Skalierung in eine "dev-type" Konfiguration packen. Das ist aber nach einem kurzen Blick in den Quellcode von 98_Modbus.pm nicht vorgesehen.
  • Für die ganzen schreibbaren Register sinnvolle -min, -max, -hints Werte zur Validierung definieren.
  • Fühler in Richtung eigenständiges Modul ausstrecken. Im Prinzip ist da schon sehr viel durch das 98_Modbus.pm da, sodass man einfach nur die Daten aus der Config in Perl Strukturen übertragen könnte. Allerdings hätte ich gerne einen Ansatz wie man eine "Autodiscovery" der vorhandenen Hardware machen kann um nur Readings zu generieren, für die es auch Daten gibt.


Ich würde mich sehr freuen, wenn jemand die Konfiguration ausprobiert und mir Feedback gibt falls was nicht passt, oder wenn jemand Verbesserungsvorschläge hat!
« Letzte Änderung: 21 Oktober 2021, 14:29:36 von nigl »

Offline ToJu

  • New Member
  • *
  • Beiträge: 31
Antw:Paradigma Heizung Integration via Modbus TCP
« Antwort #1 am: 21 Oktober 2021, 13:45:02 »
Hallo.

Ich hatte mittlerweile eine eigene (kleinere) Konfiguration gebastelt. Ich habe auf einem Testrechner mal deine Konfiguration ausprobiert (um genau zu sein: Die aus dem anderen Thema). Sieht gut aus. Die Einheit der Wärmemengen bei Warmwasser stimmen bei mir nicht, da muss nicht durch 10 geteilt werden (App sagt 204kWh, fhem 20,4kWh, Solargewinn passt).

Grüße
Torben

Offline nigl

  • New Member
  • *
  • Beiträge: 8
Antw:Paradigma Heizung Integration via Modbus TCP
« Antwort #2 am: 21 Oktober 2021, 14:26:16 »
Danke für dein Feedback. Das ist bei mir in der Tat genauso - und mir natürlich nicht aufgefallen...

Die App zeit 16888 kWh an aber über Modbus komme ich auf 1688,8 kWh. Die Paradigma Doku sagt für diesen Registereintrag tatsächlich, dass er mit 10 skaliert werden muss. Ist also wahrscheinlich ein Fehler in der Paradigma Doku. Ich hab denen gleich eine Email geschickt  ;)

Ich habe die Config-Snippets im ersten Beitrag entsprechend angepasst.
« Letzte Änderung: 21 Oktober 2021, 14:40:14 von nigl »