SOLVISBEN SC3 via MODBUS TCP

Begonnen von Rampler, 22 Juni 2024, 09:09:52

Vorheriges Thema - Nächstes Thema

Rampler

Hallo Community,
ich habe meine SOLVIS Heizung SOLVISBEN (Öl) mit der Bedieneinheit SC3 jetzt schon zwei Jahre in Betrieb ich möchte meine Konfiguration hier mal teilen. Ist als Gerüst evtl. für den einen oder anderen brauchbar.

Kurze Anleitung:
1. Als erstes muss die SC3 via IP erreichbar sein.

2. Als nächsten muss Modbus in der SC3 aktiviert werden:
Nutzerwechsel => Installatuer => Sonstiges => Modbus SmartHome/GLT (TCP) 
Modbus mind auf read setzen, wenn ihr Werte verändern wollt, muss der Wert auf write stehen.

3. FHEM Definitionen:
Ich habe zwei Heizkreise (Fußboden und Heizkörper), siehe Bilder im Anhang.

defmod SolvisBen ModbusAttr 101 10 192.168.1.21:502 TCP

attr SolvisBen dev-h-combine 3
attr SolvisBen dev-i-combine 5
attr SolvisBen dev-timing-sendDelay 0.2
attr SolvisBen dev-timing-timeout 30
attr SolvisBen event-min-interval Warmwassertemperatur:600,Volumenstrom:600,Zirkulationstemperatur:1800,Vorlauf_HK1:1800,Vorlauf_HK2:1800,Speicher_oben:1800,Heizungspuffer_oben:1800,Speicherreferenz:1800
attr SolvisBen event-on-change-reading Aussentemperatur,Speicher_oben:0.5,Heizungspuffer_oben:0.5,Speicherreferenz:0.5,Vorlauf_HK1:0.5,Vorlauf_HK2:0.2,Zirkulationstemperatur:0.5,Warmwassertemperatur:0.5,.*
attr SolvisBen eventMap /HKR1_Betriebsart Standby:HK_Stb//HKR1_Betriebsart Absenkbetrieb:HK_Absenk//HKR1_Betriebsart Tagbetrieb:HK_Tag//HKR2_Betriebsart Standby:FBH_Stb//HKR2_Betriebsart Absenkbetrieb:FBH_Absenk//HKR2_Betriebsart Tagbetrieb:FBH_Tag/
attr SolvisBen icon sani_boiler_temp
attr SolvisBen maxTimeoutsToReconnect 10
attr SolvisBen obj-h2305-hint slider,10,1,65
attr SolvisBen obj-h2305-max 65
attr SolvisBen obj-h2305-min 10
attr SolvisBen obj-h2305-poll once
attr SolvisBen obj-h2305-reading WWSollTemp
attr SolvisBen obj-h2305-set 1
attr SolvisBen obj-h2305-showGet 1
attr SolvisBen obj-h2322-map 0:Aus, 1:Ein
attr SolvisBen obj-h2322-max 1
attr SolvisBen obj-h2322-min 0
attr SolvisBen obj-h2322-poll 1
attr SolvisBen obj-h2322-polldelay x6
attr SolvisBen obj-h2322-reading WW_NachheizStart
attr SolvisBen obj-h2322-set 1
attr SolvisBen obj-h2322-showGet 1
attr SolvisBen obj-h2817-map 0:Aus, 1:An
attr SolvisBen obj-h2817-poll once
attr SolvisBen obj-h2817-reading HKR1_WW_Vorrang
attr SolvisBen obj-h2817-set 1
attr SolvisBen obj-h2817-showGet 1
attr SolvisBen obj-h2818-map 2:Automatik, 3:Tagbetrieb, 4:Absenkbetrieb, 5:Standby, 6:Eco, 7:Urlaub
attr SolvisBen obj-h2818-poll 1
attr SolvisBen obj-h2818-polldelay x60
attr SolvisBen obj-h2818-reading HKR1_Betriebsart
attr SolvisBen obj-h2818-set 1
attr SolvisBen obj-h2818-showGet 1
attr SolvisBen obj-h2826-expr $val=($val/100)
attr SolvisBen obj-h2826-hint slider,0.2,0.05,2.6,1
attr SolvisBen obj-h2826-max 2.5
attr SolvisBen obj-h2826-min 0.2
attr SolvisBen obj-h2826-poll once
attr SolvisBen obj-h2826-reading HKR1_Heizkurve
attr SolvisBen obj-h2826-set 1
attr SolvisBen obj-h2826-setexpr $val * 100
attr SolvisBen obj-h2826-showGet 1
attr SolvisBen obj-h3073-map 0:Aus, 1:An
attr SolvisBen obj-h3073-poll once
attr SolvisBen obj-h3073-reading HKR2_WW_Vorrang
attr SolvisBen obj-h3073-set 1
attr SolvisBen obj-h3073-showGet 1
attr SolvisBen obj-h3074-map 2:Automatik, 3:Tagbetrieb, 4:Absenkbetrieb, 5:Standby, 6:Eco, 7:Urlaub
attr SolvisBen obj-h3074-poll 1
attr SolvisBen obj-h3074-polldelay x60
attr SolvisBen obj-h3074-reading HKR2_Betriebsart
attr SolvisBen obj-h3074-set 1
attr SolvisBen obj-h3074-showGet 1
attr SolvisBen obj-h3081-hint slider,5,1,30
attr SolvisBen obj-h3081-max 30
attr SolvisBen obj-h3081-min 5
attr SolvisBen obj-h3081-poll once
attr SolvisBen obj-h3081-reading HKR2_Absenktemperatur
attr SolvisBen obj-h3081-set 1
attr SolvisBen obj-h3081-showGet 1
attr SolvisBen obj-h3082-expr $val=($val/100)
attr SolvisBen obj-h3082-hint slider,0.2,0.05,2.6,1
attr SolvisBen obj-h3082-max 2.5
attr SolvisBen obj-h3082-min 0.2
attr SolvisBen obj-h3082-poll once
attr SolvisBen obj-h3082-reading HKR2_Heizkurve
attr SolvisBen obj-h3082-set 1
attr SolvisBen obj-h3082-setexpr $val * 100
attr SolvisBen obj-h3082-showGet 1
attr SolvisBen obj-i2049-map 0:Aus, 1:Puls, 2:Zeit, 3:Beide
attr SolvisBen obj-i2049-poll once
attr SolvisBen obj-i2049-reading Zirkulation_Betriebsart
attr SolvisBen obj-i2049-showGet 1
attr SolvisBen obj-i32768-expr $val=(scalar gmtime($val))
attr SolvisBen obj-i32768-len 2
attr SolvisBen obj-i32768-poll once
attr SolvisBen obj-i32768-reading Zeit
attr SolvisBen obj-i32768-revRegs 1
attr SolvisBen obj-i32768-showGet 1
attr SolvisBen obj-i32768-unpack N
attr SolvisBen obj-i33024-expr $val/10
attr SolvisBen obj-i33024-name S1
attr SolvisBen obj-i33024-poll 1
attr SolvisBen obj-i33024-polldelay x30
attr SolvisBen obj-i33024-reading Speicher_oben
attr SolvisBen obj-i33024-showGet 1
attr SolvisBen obj-i33025-expr $val/10
attr SolvisBen obj-i33025-name S2
attr SolvisBen obj-i33025-poll 1
attr SolvisBen obj-i33025-polldelay x30
attr SolvisBen obj-i33025-reading Warmwassertemperatur
attr SolvisBen obj-i33025-showGet 1
attr SolvisBen obj-i33026-expr $val/10
attr SolvisBen obj-i33026-name S3
attr SolvisBen obj-i33026-poll 1
attr SolvisBen obj-i33026-polldelay x30
attr SolvisBen obj-i33026-reading Speicherreferenz
attr SolvisBen obj-i33027-expr $val/10
attr SolvisBen obj-i33027-name S4
attr SolvisBen obj-i33027-poll 1
attr SolvisBen obj-i33027-polldelay x30
attr SolvisBen obj-i33027-reading Heizungspuffer_oben
attr SolvisBen obj-i33027-showGet 1
attr SolvisBen obj-i33032-map 2500:PROBLEM, 65186:OK
attr SolvisBen obj-i33032-name S9
attr SolvisBen obj-i33032-poll 1
attr SolvisBen obj-i33032-polldelay x180
attr SolvisBen obj-i33032-reading Kondensatueberwachung
attr SolvisBen obj-i33032-showGet 1
attr SolvisBen obj-i33033-expr $val/10
attr SolvisBen obj-i33033-format %.1f
attr SolvisBen obj-i33033-name S10
attr SolvisBen obj-i33033-poll 1
attr SolvisBen obj-i33033-polldelay x180
attr SolvisBen obj-i33033-reading Aussentemperatur
attr SolvisBen obj-i33033-showGet 1
attr SolvisBen obj-i33033-unpack s>
attr SolvisBen obj-i33034-expr $val/10
attr SolvisBen obj-i33034-name S11
attr SolvisBen obj-i33034-poll 1
attr SolvisBen obj-i33034-polldelay x30
attr SolvisBen obj-i33034-reading Zirkulationstemperatur
attr SolvisBen obj-i33034-showGet 1
attr SolvisBen obj-i33035-expr $val/10
attr SolvisBen obj-i33035-name S12
attr SolvisBen obj-i33035-poll 1
attr SolvisBen obj-i33035-polldelay x30
attr SolvisBen obj-i33035-reading Vorlauf_HK1
attr SolvisBen obj-i33036-expr $val/10
attr SolvisBen obj-i33036-name S13
attr SolvisBen obj-i33036-poll 1
attr SolvisBen obj-i33036-polldelay x30
attr SolvisBen obj-i33036-reading Vorlauf_HK2
attr SolvisBen obj-i33041-expr $val/10
attr SolvisBen obj-i33041-name S18
attr SolvisBen obj-i33041-poll 1
attr SolvisBen obj-i33041-polldelay x1
attr SolvisBen obj-i33041-reading Volumenstrom
attr SolvisBen obj-i33041-showGet 1
attr SolvisBen obj-i33280-name A1
attr SolvisBen obj-i33280-poll once
attr SolvisBen obj-i33280-reading Zirkulationspumpe
attr SolvisBen obj-i33280-showGet 1
attr SolvisBen obj-i33282-name A3
attr SolvisBen obj-i33282-poll 1
attr SolvisBen obj-i33282-polldelay x60
attr SolvisBen obj-i33282-reading HK1_Pumpe
attr SolvisBen obj-i33282-showGet 1
attr SolvisBen obj-i33283-name A4
attr SolvisBen obj-i33283-poll 1
attr SolvisBen obj-i33283-polldelay x60
attr SolvisBen obj-i33283-reading HK2_Pumpe
attr SolvisBen obj-i33283-showGet 1
attr SolvisBen obj-i33291-map 25600:1,0:0
attr SolvisBen obj-i33291-name A12
attr SolvisBen obj-i33291-poll 1
attr SolvisBen obj-i33291-polldelay x6
attr SolvisBen obj-i33291-reading Brenner_Stufe1
attr SolvisBen obj-i33291-showGet 1
attr SolvisBen obj-i33292-map 25600:1,0:0
attr SolvisBen obj-i33292-name A13
attr SolvisBen obj-i33292-poll 1
attr SolvisBen obj-i33292-polldelay x6
attr SolvisBen obj-i33292-reading Brenner_Stufe2
attr SolvisBen obj-i33292-showGet 1
attr SolvisBen obj-i33536-poll 1
attr SolvisBen obj-i33536-polldelay x360
attr SolvisBen obj-i33536-reading Laufzeit_Brenner_Gesamt
attr SolvisBen obj-i33536-showGet 1
attr SolvisBen obj-i33537-poll 1
attr SolvisBen obj-i33537-polldelay x60
attr SolvisBen obj-i33537-reading Brennerstart_Stufe1
attr SolvisBen obj-i33537-showGet 1
attr SolvisBen obj-i33538-poll 1
attr SolvisBen obj-i33538-polldelay x60
attr SolvisBen obj-i33538-reading Laufzeit_Brennerstufe2
attr SolvisBen obj-i33538-showGet 1
attr SolvisBen obj-i33792-poll 1
attr SolvisBen obj-i33792-polldelay x360
attr SolvisBen obj-i33792-reading Meldungen_Anzahl
attr SolvisBen obj-i33792-showGet 1
attr SolvisBen readingsWatcher 43200,,Aussentemperatur
attr SolvisBen room Heizkoerper,Heizraum
attr SolvisBen stateFormat <div style="text-align:left">Brennerstarts: Brennerstart_Stufe1</div>\
<div style="text-align:left">Durchschnitt Brennerlaufzeit: Durchschnitt_Brennerlaufzeit</div>\
<div style="text-align:left">Laufzeit Brenner Gesamt: Laufzeit_Brenner_Gesamt h</div>\
<div style="text-align:left">Laufzeit Brennerstufe 1: Laufzeit_Brennerstufe1 h</div>\
<div style="text-align:left">Laufzeit Brennerstufe 2: Laufzeit_Brennerstufe2 h</div>\
<div style="text-align:left">Brennerstufe 1 (10 kw): Brenner_Stufe1</div>\
<div style="text-align:left">Brennerstufe 2 (17 kw): Brenner_Stufe2</div>\
<div style="text-align:left">Heizkreis 1 (HK) Mode: HKR1_Betriebsart</div>\
<div style="text-align:left">Heizkreis 1 (HK) Pumpe: HK1_Pumpe</div>\
<div style="text-align:left">Heizkreis 1 (HK) Kurve: HKR1_Heizkurve</div>\
<div style="text-align:left">Heizkreis 1 (HK) WW-Vorrang: HKR1_WW_Vorrang</div>\
<div style="text-align:left">Heizkreis 2 (FBH) Mode: HKR2_Betriebsart</div>\
<div style="text-align:left">Heizkreis 2 (FBH) Pumpe: HK2_Pumpe</div>\
<div style="text-align:left">Heizkreis 2 (FBH) Kurve: HKR2_Heizkurve</div>\
<div style="text-align:left">Heizkreis 2 (FBH) WW-Vorrang: HKR2_WW_Vorrang</div>\
<div style="text-align:left">Heizkreis 2 (FBH) Tagtemperatur: 21 °</div>\
<div style="text-align:left">Heizkreis 2 (FBH) Absenktemperatur: HKR2_Absenktemperatur °</div>\
<div style="text-align:left">Sensor Aussenfuehler: Aussentemperatur °</div>\
<div style="text-align:left">Zirkulation: Zirkulationstemperatur °</div>\
<div style="text-align:left">Speicher oben: Speicher_oben °</div>\
<div style="text-align:left">Speicher mitte: Heizungspuffer_oben °</div>\
<div style="text-align:left">Speicher unten: Speicherreferenz °</div>\
<div style="text-align:left">Vorlauf HK1 (HK): Vorlauf_HK1 °</div>\
<div style="text-align:left">Vorlauf HK2 (FBH): Vorlauf_HK2 °</div>\
<div style="text-align:left">Warmwasser Solltemperartur: WWSollTemp °</div>\
<div style="text-align:left">Warmwasser Temperatur: Warmwassertemperatur °</div>\
<div style="text-align:left">Time: Zeit</div>\
<div style="text-align:left">Zirkulation Modus: Zirkulation_Betriebsart</div>\
<div style="text-align:left">Zirkulation Pumpe: Zirkulationspumpe</div>\
<div style="color:white ;; text-align:left"><b>Fehlermeldungen: Meldungen_Anzahl</b></div>\
<div style="color:white ;; text-align:left"><b>Kondensat: Kondensatueberwachung</b></div>\
\
<div style="text-align:left"> &nbsp </div>\
<div style="color:green ;; text-align:left">Status: state</div>\

attr SolvisBen userReadings Laufzeit_Brennerstufe1:Laufzeit_Brenner_Gesamt.* \
{ReadingsVal("SolvisBen","Laufzeit_Brenner_Gesamt",0) - ReadingsVal("SolvisBen","Laufzeit_Brennerstufe2",0)} ,\
Durchschnitt_Brennerlaufzeit:Laufzeit_Brenner_Gesamt.* \
{sprintf("%.1f",(ReadingsVal("SolvisBen","Laufzeit_Brenner_Gesamt",1) / ReadingsVal("SolvisBen","Brennerstart_Stufe1",1) * 60))." Min"}\

attr SolvisBen verbose 2
attr SolvisBen webCmd HK_Stb:HK_Absenk:HK_Tag:FBH_Stb:FBH_Absenk:FBH_Tag

setstate SolvisBen <div style="text-align:left">Brennerstarts: 16649</div>\
<div style="text-align:left">Durchschnitt Brennerlaufzeit: 6.3 Min</div>\
<div style="text-align:left">Laufzeit Brenner Gesamt: 1761 h</div>\
<div style="text-align:left">Laufzeit Brennerstufe 1: 1750 h</div>\
<div style="text-align:left">Laufzeit Brennerstufe 2: 11 h</div>\
<div style="text-align:left">Brennerstufe 1 (10 kw): 0</div>\
<div style="text-align:left">Brennerstufe 2 (17 kw): 0</div>\
<div style="text-align:left">Heizkreis 1 (HK) Mode: Standby</div>\
<div style="text-align:left">Heizkreis 1 (HK) Pumpe: 0</div>\
<div style="text-align:left">Heizkreis 1 (HK) Kurve: 1</div>\
<div style="text-align:left">Heizkreis 1 (HK) WW-Vorrang: Aus</div>\
<div style="text-align:left">Heizkreis 2 (FBH) Mode: Standby</div>\
<div style="text-align:left">Heizkreis 2 (FBH) Pumpe: 0</div>\
<div style="text-align:left">Heizkreis 2 (FBH) Kurve: 0.3</div>\
<div style="text-align:left">Heizkreis 2 (FBH) WW-Vorrang: Aus</div>\
<div style="text-align:left">Heizkreis 2 (FBH) Tagtemperatur: 21 °</div>\
<div style="text-align:left">Heizkreis 2 (FBH) Absenktemperatur: 18 °</div>\
<div style="text-align:left">Sensor Aussenfuehler: 17.7 °</div>\
<div style="text-align:left">Zirkulation: 21.9 °</div>\
<div style="text-align:left">Speicher oben: 47.9 °</div>\
<div style="text-align:left">Speicher mitte: 34.7 °</div>\
<div style="text-align:left">Speicher unten: 27.5 °</div>\
<div style="text-align:left">Vorlauf HK1 (HK): 21.7 °</div>\
<div style="text-align:left">Vorlauf HK2 (FBH): 21.3 °</div>\
<div style="text-align:left">Warmwasser Solltemperartur: 50 °</div>\
<div style="text-align:left">Warmwasser Temperatur: 30.4 °</div>\
<div style="text-align:left">Time: Fri Jun 21 14:49:03 2024</div>\
<div style="text-align:left">Zirkulation Modus: Aus</div>\
<div style="text-align:left">Zirkulation Pumpe: 1</div>\
<div style="color:white ;; text-align:left"><b>Fehlermeldungen: 0</b></div>\
<div style="color:white ;; text-align:left"><b>Kondensat: OK</b></div>\
\
<div style="text-align:left"> &nbsp </div>\
<div style="color:green ;; text-align:left">Status: opened</div>\

setstate SolvisBen 2024-06-22 08:39:11 Aussentemperatur 17.7
setstate SolvisBen 2024-06-22 08:38:32 Brenner_Stufe1 0
setstate SolvisBen 2024-06-22 08:38:32 Brenner_Stufe2 0
setstate SolvisBen 2024-06-22 08:36:31 Brennerstart_Stufe1 16649
setstate SolvisBen 2024-06-21 17:58:21 Durchschnitt_Brennerlaufzeit 6.3 Min
setstate SolvisBen 2024-06-22 08:30:41 HK1_Pumpe 0
setstate SolvisBen 2024-06-22 08:30:41 HK2_Pumpe 0
setstate SolvisBen 2024-06-22 08:32:01 HKR1_Betriebsart Standby
setstate SolvisBen 2024-06-15 10:27:26 HKR1_Heizkurve 1
setstate SolvisBen 2024-06-15 10:27:26 HKR1_WW_Vorrang Aus
setstate SolvisBen 2024-06-15 10:27:27 HKR2_Absenktemperatur 18
setstate SolvisBen 2024-06-22 08:33:11 HKR2_Betriebsart Standby
setstate SolvisBen 2024-06-21 05:57:13 HKR2_Heizkurve 0.3
setstate SolvisBen 2024-06-15 10:27:26 HKR2_WW_Vorrang Aus
setstate SolvisBen 2024-06-22 08:38:31 Heizungspuffer_oben 34.7
setstate SolvisBen 2024-06-22 08:39:11 Kondensatueberwachung OK
setstate SolvisBen 2024-06-22 07:58:57 Laufzeit_Brenner_Gesamt 1761
setstate SolvisBen 2024-06-21 17:58:21 Laufzeit_Brennerstufe1 1750
setstate SolvisBen 2024-06-22 08:34:11 Laufzeit_Brennerstufe2 11
setstate SolvisBen 2024-06-22 08:08:47 Meldungen_Anzahl 0
setstate SolvisBen 2024-06-22 08:37:51 Speicher_oben 47.9
setstate SolvisBen 2024-06-22 08:38:31 Speicherreferenz 27.5
setstate SolvisBen 2024-06-22 08:39:21 Volumenstrom 0
setstate SolvisBen 2024-06-22 08:34:41 Vorlauf_HK1 21.7
setstate SolvisBen 2024-06-22 08:34:41 Vorlauf_HK2 21.3
setstate SolvisBen 2024-06-15 10:27:25 WWSollTemp 50
setstate SolvisBen 2024-06-22 08:39:31 WW_NachheizStart Aus
setstate SolvisBen 2024-06-22 08:38:31 Warmwassertemperatur 30.4
setstate SolvisBen 2024-06-21 14:49:04 Zeit Fri Jun 21 14:49:03 2024
setstate SolvisBen 2024-06-20 20:33:05 Zirkulation_Betriebsart Aus
setstate SolvisBen 2024-06-15 10:27:28 Zirkulationspumpe 1
setstate SolvisBen 2024-06-22 08:34:41 Zirkulationstemperatur 21.9
setstate SolvisBen 2024-06-22 08:32:45 alive alive
setstate SolvisBen 2024-06-22 08:39:11 statBrennerstart_Stufe1 Hour: 0 Day: 0 Month: 0 Year: 0 (since: 2024-06-22 )
setstate SolvisBen 2024-06-22 07:59:55 statBrennerstart_Stufe1Last Hour: 0 Day: 0 Month: - Year: - (since: 2024-06-21_17:22:37 )
setstate SolvisBen 2024-06-22 08:39:11 statLaufzeit_Brenner_Gesamt Hour: 0 Day: 0 Month: 0 Year: 0 (since: 2024-06-22 )
setstate SolvisBen 2024-06-22 07:59:55 statLaufzeit_Brenner_GesamtLast Hour: 0 Day: 1 Month: - Year: - (since: 2024-06-21_17:16:56 )
setstate SolvisBen 2024-06-21 1

Obiges Beispiel funktioniert einwandfrei mit der Firmware MA3.18.14.

Bekannte Probleme:
Nach dem Update auf die Firmware MA3.19.47 konnte ich einige Register nicht mehr lesen (lieferten nur noch 0), weshalb ich wieder auf MA3.18.14 zurück musste.
Mit dem MA3.19.47 kommt die Sunspec Unterstüzung von Solvis dazu, also Wechselrichter welche auch Sunspec sprechen, können dann direkt mit der Heizung (Heizstab) sprechen.

Betroffen waren die Register:
33536 Laufzeit Brennerstufe 1
33538 Laufzeit Brennerstufe 2
33537 Brennerstarts Stufe 1

Das WLAN der SC3 ist nicht gerade sehr leistungsstark.
Die Doku seitens SOLVIS ist sehr dürftig.

Viel Spaß
Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!