Läuft: Heizung mit eBus-Schnittstelle

Begonnen von Prof. Dr. Peter Henning, 29 November 2014, 13:36:59

Vorheriges Thema - Nächstes Thema

freetz

...so, habe jetzt quick&dirty das ebusd-configuration Repo gecloned, dort die 15.350.csv gegen die 15.430.csv ausgetauscht und entsprechend den ebusd mit --configpath gestartet - und das Ergebnis ist hervorragend, fast alle Parameter werden auch bei mir erkannt, so dass bei mir jetzt eine sehr umfangreiche Steuerung möglich ist :). Vielen Dank nochmals für die ganze Unterstützung; für den Moment kann ich mit diesem Workaround gut leben, aber andere 332er-Besitzer werden sich sicher freuen, wenn die CSV entsprechend erkannt wird.

Hier noch mal der schön gefüllte Output nach einem readall.sh Aufruf, man sieht nur wenige Parameter, die anscheinend entweder nicht vorhanden sind oder (noch) nicht korrekt dekodiert werden:
350 ACTOstorDetected = no
350 actoSTOROPMode = 0
350 ActualRoomTempDesiredHc1 = 5.00
350 ActualWeekday = Thu
350 adpPreHActive = on
350 adpPreHCurrentRoomTemp = 0.00
350 adpPreHInSideTW = 5
350 adpPreHMinutesBeforeFirstTW = 0
350 adpPreHOutdoorTemp = ERR: invalid position in decode
350 adpPreHOutdoorTempStart = ERR: invalid position in decode
350 adpPreHPreheatingTime = ERR: invalid position in decode
350 adpPreHRamp = ERR: invalid position in decode
350 adpPreHRoomTempDesired = 514.00
350 adpPreHRoomTempStart = ERR: invalid position in decode
350 adpPreHStarttime = ERR: invalid position in decode
350 AutoOffMode = eco
350 B50418actDesFlowTemp = 0.0
350 B51000FlowSetMonitor = 0.0
350 B51000HcDisableMonitor = 1
350 B51000TempDesiredLoadingPump = -
350 BaseDisplay = HC1
350 BMUB51101BoilerFlowTemp = 13.0
350 BMUB51101ErrorStatus = 0
350 BMUB51101HwcState = off
350 BMUB51101StorageTemp = 12.0
350 BMUFlowTempOrVF1 = 13.00;ok
350 CalculatedKickStopTime = 0
350 ccTimer.Friday = 06:00;22:00;22:00;22:00;22:00;22:00;Sa-So
350 ccTimer.Monday = 06:00;22:00;22:00;22:00;22:00;22:00;Sa-So
350 ccTimer.Saturday = 07:30;23:30;23:30;23:30;23:30;23:30;selected
350 ccTimer.Sunday = 07:30;22:00;22:00;22:00;22:00;22:00;selected
350 ccTimer.Thursday = 06:00;22:00;22:00;22:00;22:00;22:00;Sa-So
350 ccTimer.Tuesday = 06:00;22:00;22:00;22:00;22:00;22:00;Sa-So
350 ccTimer.Wednesday = 06:00;22:00;22:00;22:00;22:00;22:00;Sa-So
350 ChimneySweepModeActive = no
350 CirPump = off
350 ContinuosHeating = -26
350 CountryVariant = 0
350 CPLPLast24started = no
350 currenterror = -;-;-;-;-
350 Date = 14.03.2019
350 DisplayedHc1RoomTempDesired = 0.0
350 DisplayedRoomTemp = 11.88
350 EepromUpdateActive = on
350 EnermanState = 0
350 errorhistory = ERR: end of input reached
350 ExcessTemp = 0.0
350 FrostOverRideTime = 4
350 FrostProtectDelayMonitor = no
350 FrostProtectionRequiredMonitor = no
350 FrostProtectStateMonitor = 0
350 Hc1ActualFlowTempDesired = 0.0
350 Hc1HcType = burnercircuit
350 Hc1HeatCurve = 1.20
350 Hc1ManualOPRoomTempDesired = 0.0
350 Hc1MinimalFlowTempDesired = 15.0
350 Hc1NightTemp = 16.0
350 Hc1OPMode = auto
350 Hc1PreOrContinuosHeatingActive = no
350 Hc1Pump = off
350 Hc1PumpLast24started = no
350 Hc1QuickVetoActive = no
350 Hc1QuickVetoTemp = 0.0
350 Hc1RoomTempSwitchOn = off
350 Hc1SummerOffset = 1.0
350 Hc2HcType = mixing
350 HcMc1ConfigCPLPAsLP = CP
350 HcMc1CPLPState = off
350 HcMc1Detected = no
350 hcTimer.Friday = 18:00;23:00;23:20;23:20;23:20;23:20;Mo-Fr
350 hcTimer.Monday = 18:00;23:00;23:20;23:20;23:20;23:20;Mo-Fr
350 hcTimer.Saturday = 18:00;23:00;23:20;23:20;23:20;23:20;Mo-Fr
350 hcTimer.Sunday = 18:00;23:00;23:20;23:20;23:20;23:20;Mo-Fr
350 hcTimer.Thursday = 18:00;23:00;23:20;23:20;23:20;23:20;Mo-Fr
350 hcTimer.Tuesday = 18:00;23:00;23:20;23:20;23:20;23:20;Mo-Fr
350 hcTimer.Wednesday = 18:00;23:00;23:20;23:20;23:20;23:20;Mo-Fr
350 HolidayEndPeriod = 11.05.2017
350 HolidayRoomTemp = 5.0
350 HolidayStartPeriod = 09.05.2017
350 HRUDetected = no
350 HwcActualTempDesired = 0.0
350 HwcCircuitActive = no
350 HwcLegioStartDay = off
350 HwcLegioStartTime = 04:00:00
350 HwcLoadingIn430Active = no
350 HwcLoadingOffset = 25.0
350 HwcManualOPTempDesired = 0.0
350 HwcOPMode = auto
350 HwcParallelLoading = off
350 HwcPressLowpostrunningtime = 5
350 HwcQuickVetoActive = no
350 HwcQuickVetoTemp = 0.0
350 HwcTempDesired = 60.0
350 hwcTimer.Friday = 05:30;22:00;22:00;22:00;22:00;22:00;Sa-So
350 hwcTimer.Monday = 05:30;22:00;22:00;22:00;22:00;22:00;Sa-So
350 hwcTimer.Saturday = 07:00;23:30;23:30;23:30;23:30;23:30;selected
350 hwcTimer.Sunday = 07:00;22:00;22:00;22:00;22:00;22:00;selected
350 hwcTimer.Thursday = 05:30;22:00;22:00;22:00;22:00;22:00;Sa-So
350 hwcTimer.Tuesday = 05:30;22:00;22:00;22:00;22:00;22:00;Sa-So
350 hwcTimer.Wednesday = 05:30;22:00;22:00;22:00;22:00;22:00;Sa-So
350 IsInHoliday = no
350 KeyCodeforConfigMenu = ERR: invalid position in decode
350 LcdContrastValue = 12
350 LegioProtectActive = no
350 MaintenanceDate = 01.01.2011
350 NameHc1 = HEIZKREIS1
350 NameHc2 = HEIZKREIS2
350 NameHwc =    5
350 OutsideTemp = 0.00;cutoff
350 OutsideTempOffset = 0.0
350 PhoneNumber1 =         
350 PhoneNumber2 =         
350 PreheatingTime = 0
350 PreStopTime = 0
350 PumpBlockingTimeMax = 0
350 PumpEnergySaveCalculatedTimeMonitor = 0
350 PumpEnergySaveStateMonitor = 1
350 RoomTemp = 13.69;ok
350 RoomTempCorrection = 0.0
350 RoomTempOffsetSelfWarming = -1.81
350 Setpoints.Friday = ERR: invalid position in decode
350 Setpoints.Monday = ERR: invalid position in decode
350 Setpoints.Saturday = ERR: invalid position in decode
350 Setpoints.Sunday = ERR: invalid position in decode
350 Setpoints.Thursday = ERR: invalid position in decode
350 Setpoints.Tuesday = ERR: invalid position in decode
350 Setpoints.Wednesday = ERR: invalid position in decode
350 SolModuleDetected = no
350 StartEepromUpdate = off
350 StatusDcf = nosignal
350 SummerWinterTimeAdjust = on
350 Time = 22:39:09
350 VF1 = 0.00;cutoff
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/bsb_lan

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

istler

Hallo freetz,

das Problem ist nur, dass dein Regler sich als 350er meldet, deshalb wird ja die 350-Konfigdatei verwendet:
Zitat von: freetz am 14 März 2019, 22:46:37
address 15: slave #2, scanned "MF=Vaillant;ID=35000;SW=0109;HW=7102", loaded "vaillant/15.350.csv"

Evtl kann man dies noch über die SW-Version oder Hardware-Kennung differenzieren.

Gruß
Maik

freetz

Ah, ok - das Problem haben wir beim BSB-Bus auch, da gibt es neben der Gerätefamilie (an der wir lange alles ausgerichtet hatten) auch noch eine Gerätevariante, die bei steigender Anzahl an unterstützten Geräten dann auch notwendigerweise mit bei der Autodetection mit einbezogen werden musste. Nervig...

Über welchen Befehl wird denn die Kennung von der Heizung ausgelesen? Seltsam ist das ja schon, dass es eine 332 ist, die sich als 350 ausgibt, aber die Konfiguration der 430 benötigt...
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/bsb_lan

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

pc1246

Moin
Du hast halt ein Sonntagsmodell. Da sind wir uns doch schon lange einig!
Gruss Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

john30

Zitat von: freetz am 15 März 2019, 09:35:14
Über welchen Befehl wird denn die Kennung von der Heizung ausgelesen?
das wird über die 0704 Message gefolgt von anschließendem Vaillant Produkt-Code lesen gelöst. Damit stehen dann ID;SW,HW und noch ein paar andere Werte aus scan zur Verfügung, um eine Variante von anderen abzugrenzen. Wie das funktioniert ist bspw. in der bai zu finden.
author of ebusd

freetz

Danke, john30, dann gibt sich das Teil laut ebusctl hex 1507040100 wirklich als 3500 / 0109 / 7102 aus :(.

Ich habe jetzt noch einmal die 15.470.csv ausprobiert, weil da im Gegensatz zur 15.430.csv auch noch Hc1DayTemp verfügbar war, und die scheint sogar noch besser zu passen. Kann natürlich sein, dass dieser und andere Parameter auch bei der 430 passen würden, denn es macht ja wenig Sinn, dass z.B. die 430 Hc1NightTemp kennt, aber nicht Hc1DayTemp. Aber das kann ich ohne weitere Hardware natürlich nicht überprüfen.

Wie dem auch sei, für meine "Sonntags"-332 habe ich jetzt eine sehr umfangreiche Parametersammlung, bei der zwar ein Gutteil der verfügbaren/lesbaren Parameter keine Anwendung finden werden (weil ich keinen 2. HK habe etc.), aber falls jemand anderes auch so ein Gerät haben sollte, hänge ich die gemergete CSV hier einmal an. Wenn die neueren 332 sich alle als 350 ausgeben, muss man dann wie bei mir die Datei in 15.350.csv umbennenen.
Eine Übernahme in ebusd-configuration würde vermutlich wohl nur Sinn machen, wenn anhand der HW-ID (7102) eine sichere Differenzierung gegenüber einer echten 350 gemacht werden könnte.

Danke noch mal und VG, F.
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/bsb_lan

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

freetz

Eine (hoffentlich letzte) Frage hätte ich noch:
Bevor ich jetzt für mehrere Wochen nicht mehr in der Wohnung sein werde, hatte ich die Heizung auf Frostschutz (5 Grad) an der 332 gestellt. Das führt natürlich dazu, dass ich jetzt keine Soll-Temperaturveränderungen vornehmen kann, wenn ich dann wieder in die Wohnung zurück komme und es dann gerne warm hätte.

Folgende Parameter fallen mir bei ebusctl find auf, die damit zu tun haben könnten, aber mit welchem (oder anderem) kann ich die Heizung wieder zum normalen Heizen bewegen?


350 ActualRoomTempDesiredHc1 = 5.00
350 GlobalSystemOff = on
350 Hc1AutoOffMode = eco
350 Hc1RoomTempSwitchOn = off
350 Hc1OPMode = auto


Dank' Euch und VG, F.
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/bsb_lan

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

pc1246

Moin
Kannst du denn "ActualRoomTempDesiredHc1" nicht auch verstellen?
Zudem wundere ich mich, dass Du einen 2. Heizkreis in dem "322" hast. Der kann laut Anleitung nur einen Heizkreis. Der "350" kann einen Heizkreis und einen Warmwasserkreis. Soweit ich weiss, koennen nur die 400er 2 Kreise.
Gruss Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

freetz

ActualRoomTempDesiredHc1 ist read-only, habe es testweise mal auf writeable gesetzt, Änderung liegt aber nur im Cache und wird dann wieder mit dem alten Wert überschrieben.
Das mit dem 2. HK, den das Gerät eigentlich gar nicht kann, kenne ich auch von meiner Elco Thision. Da kann ich auch über BSB-LAN alle möglichen Infos zum HK2 und sogar zu einem nicht vorhandenen Kühlkreis auslesen und schreiben, aber das hat natürlich keine Auswirkung. Die Hersteller schreiben meist nur eine Software und blenden dann in den Menüs die entsprechenden Funktionen aus, die die darüberliegende Hardware nicht kann.
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/bsb_lan

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

KlaRa

Hallo,
ich lese das eBus Protokoll meiner Vaillant VC136 schon seit über 5 Jahren aus. Schon vor 2009 gab es da Aktivitäten im Forum von symcon.de. Aber erst ca. 2 Jahre später wurde der properitäte Code von Vaillant halbwegs geknackt.

Es folgte ein eBus Manager, ein PHP-Script, daß wirklich sauber und gut lesebar ist.
https://www.symcon.de/forum/threads/20547-eBus-Manager?p=185924#post185924

Jetzt zu meinem Problem.

Es traten in der ganzen Zeit nur wenige Fehler auf. Jetzt habe ich wieder mal einen, den F.75 "Beim Einschalten der Pumpe wurde kein Drucksprung erkannt". Der Fehlertext lautet an der VCR430 "Fehler Heizgerät". Auf dem Display des Kessels steht nur die "F.75"

Ich kann leider nicht die Statuszeile, bzw. die Meldungen auslesen.  Die Frage ist ja eigentlich, wie wird der Text in der VCR430 und im Display des Kessels generiert? Läuft dies überhaupt über den eBus? Ein Statusflag, der abrufbar ist, wäre ja auch eine Lösung.

https://www.mikrocontroller.net/attachment/407233/P1000271k.jpg
mfg klaus

Sven77

Ich hatte mit meinem icoVIT 156 und VRC 700 schon einige Fehler!

Es gab aber nie irgendwelche Textmeldungen auf dem Bus, es ist lediglich die Fehlernummer und teilweise der Zeitpunkt abfragbar. Im Display des Kessels ist halt nicht mehr Platz, außerdem steht die Bedeutung ja in der Anleitung in der jeweiligen Sprache. Und dem Regler ist der genaue Fehler ja im Grunde komplett egal - daher meldet er nur, welches Gerät über den Bus einen Fehler meldet.

Ich kann jetzt den Sinn deiner Anfrage nur erraten:
a) "Kann ich über den Bus die Fehlermeldung lesen?" --> nein, nur im Handbuch
b) "Kann ich steuern, was der Regler anzeigt?" --> nein
c) "Kann ich in FHEM eine Textmeldung ausgeben?" --> ja, Fehlernummer vom Bus lesen und die Texte der Bedienungsanleitung hinterlegen

Ich bin leider kein FHEM-Fuchs, wie man die Zahlen in Text wandeln kann - ich persönlich würde es über eine Optionsliste in HTML umsetzen.  ;)
VG, Sven

KlaRa

Hallo Sven,
ich meinte nicht das der Text von Meldungen über den eBus gesendet werden, bestenfalls wird da ein Code, ein Byte gesendet.

ZitatUnd dem Regler ist der genaue Fehler ja im Grunde komplett egal - daher meldet er nur, welches Gerät über den Bus einen Fehler meldet.
Genau da möchte ich einhaken.

Zitatc) "Kann ich in FHEM eine Textmeldung ausgeben?" --> ja, Fehlernummer vom Bus lesen und die Texte der Bedienungsanleitung hinterlegen

Mir genügt es ja die Fehlernummer vom Bus zu lesen. Wie sieht der entsprechende Code auf dem eBus aus?

In den Sourcen stoße ich z.B. bei ebusd-configuration-2.1.b143f39-en_all im Verzeichnis vaillant auf csv-Daten die etwas zum Vaillant-Code beinhalten. Wie komme ich da zu meiner Fehlermedung, bzw., auf den Code-Schlüssel der die Fehlermeldung transportiert?
mfg Klaus

cs-online

Hallo,

bei meiner Ectotec geht das mit

r -f -c bai currenterror

für den aktuellen Fehler und z.B.

r -f -c bai -i 0 -V errorhistory

für den ersten gespeicherten Fehler in der Fehlerhistorie (in Summe 10 Plätze, mit Index 0 vor dem "-V" für den ersten bis 9 für den 10. Platz)

Das ganze habe ich in einer EMCD-Klasse drin (da wo ich alles vom eBus abfrage) und dann mit einem Timer alle 60s aktualisiert. ReadingsProxy auf den Eintrag in der Klasse zum Anzeigen

Grüße

Christian
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

Sven77

Richtig, dazu muss man sich schon die Mühe machen, die letzten 2 Seiten mal zu überfliegen:
https://forum.fhem.de/index.php/topic,29737.msg918132.html#msg918132
VG, Sven

KlaRa

Hallo Christian,

ZitatDas ganze habe ich in einer EMCD-Klasse drin (da wo ich alles vom eBus abfrage)

Wo finde ich diese EMCD-Klasse? Ist das Teil des ebusd?

Für mich ist es schwierig selbst die Bedeutung von bai zu ermitteln. Kannst Du mir Beispiele für eine eBus-Code-Sequenz für eine Fehlermeldung geben? Also auf native - Ebene dieser Art?

Zitat10 08 B5 10 09 00 00 00 78 FF FF 01 FF 00 F8 00 01 01 9A 00
00 15 B5 09 03 0D 31 00 7D 00 02 64 00 41
00 08 B5 09 03 0D 38 00 E1 00 01 1F 84

mfg Klaus