Läuft: Heizung mit eBus-Schnittstelle

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

Vorheriges Thema - Nächstes Thema

heikoh81

Hallo pah,

ich möchte dich nochmals um deine Hilfe bitten, und zwar konnte ich dank deiner Hinweise ja schon erarbeiten, die Betriebsart meiner Calormatic zu setzen.
Nun möchte ich mich an die Raum-Soll-Temperatur (Aktuell sowie Nachtabsenkung) heranwagen.
Im Gegensatz zur Betriebsart, die man mit einstelligen Zahlen über den ebusctl-Befehl ansteuern konnte, erscheint mir die Temperatur nun etwas komplizierter.

Aus den bisher geposteten Dateien sind das die benötigten Code-Zeilen:

#################################,,,TEST: ebusctl write -h 15B5930D2E00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
# type (r;w;u;1-9),class,name,comment,QQ,ZZ,PBSB,ID,field,part (m;s),type / templates,divider / values,unit,comment,field,part (m;s),type / templates,divider / values,unit,comment,field,part (m;s),type / templates,divider / values,unit,comment,field,part (m;s),type / templates,divider / values,unit,comment,field,part (m;s),type / templates,divider / values,unit,comment,field,part (m;s),type / templates,divider / values,unit,comment
################################# Get Messages,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
#,,0,##############VRC430 Base,,,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
*r,vrc430,,,,15,B509,0D,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
r,,mcDesiredTemp,Manuell Solltemperatur,,,,3200,,,temp1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
r,,mcDesiredTempLow,Absenktemperatur,,,,3000,,,temp1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,


Frage in die Runde:
Was ist denn die QuickVeto-Temperatur?

Viele Grüße,
Heiko

Jojo11

Hallo,

hat es jemand schon geschafft, die aktuelle Version des ebusd im Hintergrund laufen zu lassen?
Gibt es dazu etwas Besonderes zu beachten? Installation als root? Eigentlich sollten alle Rechte mehr als ausreichend sein, aber das Startskript quittiert mit [ok] ohne dass der ebusd wirklich läuft  :-[

schöne Grüße
Jo

heikoh81

Also die Dateien von amunra und die Erweiterungen der Foren-Teilnehmer sind echt gut, es funktioniert fast alles bei mir.
Folgende Beobachtungen:

  • read -c vrc430 RoomTemp ==> um 1K zu hoch im Vergleich zur Display-Anzeige
  • mcDesiredTempQV ==> liefert bei vorübergehender Erhöhung der Soll-Raumtemp. den korrekten Wert
  • mcDesiredTemp ==> liefert 0.0, obwohl 21° an Calormatic vorgegeben

Für eine sinnvolle Steuerung ist mcDesiredTempQV schon einmal ein guter Ansatz.
Wie könnte ich diesen Wert auch schreiben, d.h. eine Temperatur in °C an die Calormatic übergeben?


*r,vrc430,,,,15,B509,0D,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
r,,mcDesiredTempQV,QuickVeto Solltemperatur,,,,3C00,,,temp1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,


Viele Grüße,
Heiko

netsrac27

Hallo Ihr Lieben,

bin vom Nachbarforum auf diesen Thread gestoßen worden. ich setzte auch eine ecoTec (aka bai00) mit Calormatic (430) ein. Der aktuelle ebusd ist übersetzt.

Leider fehlt mir irgendwie die Initialzündung, die ich hier (weiter) vorgehen muss:

Ich habe mir mal Deine csv's geladen und in /etc/ebusd kopiert.

Aber wie mache ich nun weiter? Muss ich auch was in der commands.csv haben?

Starte ich den ebusd bekomme ich folgende Meldungen:


2015-01-13 14:09:38.906 [bas trace] path to ebus configuration files: /etc/ebusd
2015-01-13 14:09:38.910 [bas trace] read templates
2015-01-13 14:09:38.911 [bas error] error reading config files: ERR: file/element not found or not readable
2015-01-13 14:09:38.911 [bas event] message DB: 0
2015-01-13 14:09:38.911 [bas event] updates DB: 0
2015-01-13 14:09:38.913 [bas event] polling DB: 0
2015-01-13 14:09:40.525 [upd trace] update MS cmd: 1008b5100900005678ffff04ff00d3 / 01019a
2015-01-13 14:09:40.525 [upd event] unknown MS cmd: 1008b5100900005678ffff04ff00d3 / 01019a
2015-01-13 14:09:44.537 [upd trace] update MS cmd: 1008b511010189 / 096464100cff680000ff72
2015-01-13 14:09:44.537 [upd event] unknown MS cmd: 1008b511010189 / 096464100cff680000ff72
2015-01-13 14:09:46.533 [upd trace] update BC cmd: 10feb5160301100ce2


ein

ebusctl read vrc430 TempOutside

bringt nur die Fehlermeldung "message not defined".

Also irgendwas mache ich hier noch grundlegend falsch....

Kann und will mir vielleicht jemand helfen?!


Danke...Netstac


Zitat von: amunra am 10 Januar 2015, 22:04:29
Tabelle 1) und 3) sind Arbeitstabellen, in denen ich meine Testergebnisse/Notizen/Raw Messages/Datentypen für ebusd etc. festgehalten und definiert habe. Also nicht wundern wenn es etwas wild aussieht.

Aus den beiden o.g. Tabellen resultiert Tabelle 2) und 4) (siehe Formeln) aus denen die entsprechenden CSV-Templates generiert werden können. Dafür kann der Export Button (Der Speicherort ist c:\temp) genutzt werden – alternativ kann die CSV via Standard Vorgehen - Menüpunkt-> Datei..... erstellt werden. Meine Empfehlung ,,nur in den Main Tabellen Veränderungen vornehmen".

Zu beachten ist, dass ich ein paar neue Datentypen in der _template.csv angelegt habe (siehe rot markierte Einträge in der Tabelle ,,templates"). Nur mit den Datentypen werden alle Befehle richtig interpretiert.

Beide Templates werden bei mir, von ebusd, fehlerfrei verarbeitet. (Getestet mit ebusd Stand Anfang Januar 2015).

Abschließend - der Einsatz der Dateien/Templates auf eigene Gefahr. Keine Gewähr, dass alle Befehle funktionieren und das tun was sie sollen.

netsrac27

Okay...es hat mir keine Ruhe gelassen...mein Problem waren einige fehlende Typen (neben den rot martierten) in der _template-Datei. Dadurch hat er die Konfigurationen gar nicht erst geladen...

Frei nach dem Motto: Kaum macht man es richtig, schon funktioniert's kann ich nun einiges an Werten lesen.

Nun habe ich aber noch ein paar andere Fragen: Im Log sehe ich folgenden Output - ich denke mal, dass es sich dabei um cyclische Kommandos handelt, die aber nicht interpretiert werden können. Ist dem so?


2015-01-13 16:01:42.403 [upd trace] update MS cmd: 1008b5100900005c78ffff00ff00f5 / 01019a
2015-01-13 16:01:42.403 [upd event] unknown MS cmd: 1008b5100900005c78ffff00ff00f5 / 01019a
2015-01-13 16:01:48.407 [upd trace] update MS cmd: 1008b511010189 / 09745c600aff620400ff69
2015-01-13 16:01:48.407 [upd event] unknown MS cmd: 1008b511010189 / 09745c600aff620400ff69
2015-01-13 16:01:50.449 [upd trace] update MS cmd: 1008b51101028a / 05033c6c508281
2015-01-13 16:01:50.449 [upd event] unknown MS cmd: 1008b51101028a / 05033c6c508281
2015-01-13 16:01:52.462 [upd trace] update MS cmd: 1008b5100900005c78ffff00ff00f5 / 01019a
2015-01-13 16:01:52.462 [upd event] unknown MS cmd: 1008b5100900005c78ffff00ff00f5 / 01019a
2015-01-13 16:01:56.479 [upd trace] update MS cmd: 1008b511010189 / 097858600aff620400fff7
2015-01-13 16:01:56.479 [upd event] unknown MS cmd: 1008b511010189 / 097858600aff620400fff7
2015-01-13 16:01:58.449 [upd trace] update MS cmd: 1008b50401003d / 0a00275105ffffffff600a67
2015-01-13 16:01:58.449 [upd event] unknown MS cmd: 1008b50401003d / 0a00275105ffffffff600a67
2015-01-13 16:01:58.669 [upd trace] update BC cmd: 10feb5050204000b
2015-01-13 16:01:58.669 [upd event] unknown BC cmd: 10feb5050204000b
2015-01-13 16:02:02.455 [upd trace] update MS cmd: 1008b5100900005c78ffff00ff00f5 / 01019a
2015-01-13 16:02:02.455 [upd event] unknown MS cmd: 1008b5100900005c78ffff00ff00f5 / 01019a
2015-01-13 16:02:06.461 [upd trace] update MS cmd: 1008b511010189 / 09785e600aff620400ffae
2015-01-13 16:02:06.461 [upd event] unknown MS cmd: 1008b511010189 / 09785e600aff620400ffae
2015-01-13 16:02:12.495 [upd trace] update MS cmd: 1008b5100900005c78ffff00ff00f5 / 01019a
2015-01-13 16:02:12.495 [upd event] unknown MS cmd: 1008b5100900005c78ffff00ff00f5 / 01019a
2015-01-13 16:02:16.509 [upd trace] update MS cmd: 1008b511010189 / 097e68600aff620400ffea
2015-01-13 16:02:16.509 [upd event] unknown MS cmd: 1008b511010189 / 097e68600aff620400ffea
2015-01-13 16:02:18.473 [upd trace] update BC cmd: 10feb5160800350116130102152f
2015-01-13 16:02:18.473 [upd event] unknown BC cmd: 10feb5160800350116130102152f
2015-01-13 16:02:18.733 [upd trace] update MS cmd: 1008b512020000ca / 0000
2015-01-13 16:02:18.733 [upd event] unknown MS cmd: 1008b512020000ca / 0000


Wie kann man diese Kommandos interpretieren?

Wie kann ich nun meine gewünschte Warmwassertemperatur einstellen? An der Therme habe ich dazu ja den Drehknopf mit der Temperaturwahl. Ich gehe also davon aus, dass ich das auch über "bai00" machen muss und nicht über "vrc430", oder?

Kann mir jemand helfen, wie ich das einbaue?!

Danke...Netsrac



Prof. Dr. Peter Henning

#275
Klar - das sind z.B Kommandos des Controllers (10) an die Therme (08) von Vaillant (B5) zur Abfrage der Betriebsparameter (11), Datensatz 01.

Genau dieses Kommando wird übrigens sehr wohl geparst, siehe letzte Zeile in der bai00.csv bzw. Vaillant_Protokoll_kurz.ods hier aus dem Repository: http://svn.code.sf.net/p/fhem/code/trunk/fhem/contrib/EBUS/

"Fehlende Typen" können es auch nicht sein, möglicherweise stimmt die Version der Datei _templates.csv einfach nicht.

LG

pah

P.S.: Bitte nicht für jedes Register einen eigenen Datentyp erfinden. Sondern stattdessen lieber die generischen Typen verwenden, mit entsprechenden Angaben für Teiler und Wertelisten.

Jojo11

Zitat von: Jojo11 am 12 Januar 2015, 19:57:34
Hallo,

hat es jemand schon geschafft, die aktuelle Version des ebusd im Hintergrund laufen zu lassen?
Gibt es dazu etwas Besonderes zu beachten? Installation als root? Eigentlich sollten alle Rechte mehr als ausreichend sein, aber das Startskript quittiert mit [ok] ohne dass der ebusd wirklich läuft  :-[

schöne Grüße
Jo

Mit dem richtigen Hinweis aus diesem thread hat sich das Problem übrigens erledigt  ::)

http://knx-user-forum.de/446726-post32.html

schöne Grüße
Jo

netsrac27

Danke für den hinweis auf die aktualisierte bai000.csv das hat schonmal ein wenig geholfen.

Ich habe allerdings immer noch einige unbekannte Befehle, die angezeigt werden. Ist das bei anderen auch so (sprich sind die noch nicht interpretiert) oder habe ich einfach noch die falschen Configs?

Hier ein Auszug aus den unbekannten Befehlen:

2015-01-13 20:21:40.121 [upd event] unknown MS cmd: 0315b5130306640063 / 01019a
2015-01-13 20:21:40.181 [upd event] unknown MS cmd: 0315b5130306640063 / 01019a
2015-01-13 20:21:41.753 [upd event] unknown MS cmd: 1008b512020000ca / 0000
2015-01-13 20:21:51.541 [upd event] unknown MS cmd: 1008b50401003d / 0a00591810ffffffff400bf1
2015-01-13 20:21:51.807 [upd event] unknown MS cmd: 1008b51101028a / 05033c6c508281
2015-01-13 20:22:11.541 [upd event] unknown MS cmd: 1008b51101028a / 05033c6c508281
2015-01-13 20:22:21.573 [upd event] unknown MS cmd: 1008b50401003d / 0a00301910ffffffff400be4
2015-01-13 20:22:21.797 [upd event] unknown BC cmd: 10feb5050204000b
2015-01-13 20:22:40.721 [upd event] unknown MS cmd: 0315b513030600000e / 01019a
2015-01-13 20:22:40.829 [upd event] unknown MS cmd: 0315b513030600000e / 01019a
2015-01-13 20:22:40.893 [upd event] unknown MS cmd: 0315b513030600000e / 01019a
2015-01-13 20:22:41.001 [upd event] unknown MS cmd: 0315b513030600000e / 01019a
2015-01-13 20:22:41.841 [upd event] unknown MS cmd: 1008b512020000ca / 0000
2015-01-13 20:22:51.585 [upd event] unknown MS cmd: 1008b50401003d / 0a00012010ffffffff400be0
2015-01-13 20:22:51.857 [upd event] unknown MS cmd: 1008b51101028a / 05033c6c508281
2015-01-13 20:23:09.581 [upd event] unknown MS cmd: 1008b51101028a / 05033c6c508281


Entsprechend sortiert und duplikate rausgeworfen sind es diese Befehle, die nicht erkannt werden:


0315b513030600000e
0315b5130306640063
1008b50401003d
1008b51101028a
1008b512020000ca
10feb5050204000b
10feb5050229002c


Vielleicht kann mir ja nochmal jemand helfen....


Und dann habe ich mir diese Zeile nochmal angeschaut:

2015-01-13 20:34:16.605 [upd trace] update MS cmd: 1008b511010189 / 094c4a400bff7c0000ffb5
2015-01-13 20:34:16.605 [upd event] update bai00 StatusTHER: 38.0;37.0;180.00;-;62.0;0

Soll ja nach der Beschreibung folgendes sein:

StatusTHER,VL/RL/AussenT/VLWW/RLWW/Status

Also "Vorlauf", "Rücklauf" bekommen immerhin Meßwerte, auch wenn ich über 1-wire gemesen auf "41" und "29" komme...ist also fraglich, ob das wirklich stimmt.

Aber dann geht es los - die 180.00 für die Außentemperatur stimmt hoffentlich nicht - die wird an andere stelle auch korrekt angezeigt:

2015-01-13 20:35:55.497 [upd trace] update BC cmd: 10feb5160301400b1f
2015-01-13 20:35:55.497 [upd event] update BC OutsideTempBC: 11.250

Und dann kommt ein "-" und 62 Grad für Warmwasser stimmt auch nicht. Wobei der obere Teil des Warmwasserspeichers aktull 64 Grad hat, aber das ist ja nicht der Rücklauf.

Sollte Status dann angeben, ob der Brenner an ist oder nicht?! Gehe ich mal von aus...

Zu guter Letzt habe ich dann immer noch zyklisch diese Werte:

2015-01-13 20:38:45.294 [upd trace] update MS cmd: 1008b5100900005978ffff00ff00ca / 01019a
2015-01-13 20:38:45.294 [upd event] update MS SetBoiler: 1;77.0

Die verändern sich allerdings nie - was ist soll das sein?


Danke...Nersrac




Jojo11

Zu Deiner Beruhigung: Bei mir funktionieren auch nicht alle Befehle und manche liefern auch falsche Ergebnisse. Lies Dir mal den kompletten thread durch, dann bekommst Du vielleicht ein Gefühl dafür, wie viel Arbeit in der jetzigen Tabelle stecken dürfte. Dafür ist das Ergebnis wirklich beeindruckend. My 2 cents.

schöne Grüße
Jo


netsrac27

Das es viel Arbeit ist, ist mir schon klar und ich würde auch gerne mithelfen. Allerdings fehlen mir eben ein paar Hintergrundinfos, wie man das Ganze angehen muß.

Gruß, netsrac

Prof. Dr. Peter Henning

Nun, diese Hintergrundinformation kann man sich durch Lesen der Dokumente im oben zitierten Repository beschaffen. Das haben wir auch so gemacht.

Viel Vergnügen.

pah

heikoh81

Hallo nochmal in die Runde,

ich habe nun auf Basis von pahs & amunras Datei einiges hinbekommen, auch das Schreiben von Werten.
Konkret kann ich steuern: Heizkurve, Nacht-Absenktemperatur, Vorübergehende Tages-Heiztemperatur, Calormatic-Thermostat-Aufschaltung (an/aus) sowie Betriebsart.

Was ich nicht geschafft habe, obwohl es doch das einfachste sein muss: Raumtemperatur IST lesen, Tagestemperatur SOLL dauerhaft so wie Nachttemperatur schreiben.

read -c 47000 mcDesiredTemp liefert 0.0, eingestellt an Calormatic ist 21.0.

read -c 47000 mcDesiredTempLow liefert korrekt 17.0

Hat das schon jemand geschafft? Ich habe eine Calormatic 470/3 und nicht wie amunra eine Calormatic 430.

Viele Grüße,
Heiko

Jojo11

Hallo Heiko,

Raumtemperatur IST funktioniert bei mir mit einer 470f. Schreiben habe ich bisher nur mit Modus versucht (auto, Nacht...).

schöne Grüße
Jo


amunra

Hallo,

langsam wird es unübersichtlich....

Zitat
Zitatread -c 47000 mcDesiredTemp liefert 0.0, eingestellt an Calormatic ist 21.0.

Die Klasse 47000 kenne ich nicht? - Welche Adresse/Register/Datentyp stecken dahinter.

Bei mir ist mcDesiredTemp wie folgt definiert:
*r,vrc430,,,,15,B509,0D,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
r,,mcDesiredTemp,Manuell Solltemperatur,,,,3200,,,temp1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

und liefert bei mir aktuell 21.0°C - das ist auch der Wert den ich auf dem Display der Colormatic ablesen kann.

ZitatRaumtemperatur IST lesen

*r,vrc430,,,,15,B509,0D,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
r,,displayroomtemp,display room temp,,,,8000,,,temp,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,


Achtung in meinem Template war der Datentyp nicht korrekt!
Falsch "temp2"(Data2b) richtig "temp"(Data2c)
Im Template beinhaltet der command name Leerzeichen - das darf nicht sein (also Leerzeichen entfernen)!

@netsrac27

Zitat
Vielleicht kann mir ja nochmal jemand helfen....

Und dann habe ich mir diese Zeile nochmal angeschaut:

2015-01-13 20:34:16.605 [upd trace] update MS cmd: 1008b511010189 / 094c4a400bff7c0000ffb5
2015-01-13 20:34:16.605 [upd event] update bai00 StatusTHER: 38.0;37.0;180.00;-;62.0;0

Soll ja nach der Beschreibung folgendes sein:

StatusTHER,VL/RL/AussenT/VLWW/RLWW/Status

Also "Vorlauf", "Rücklauf" bekommen immerhin Meßwerte, auch wenn ich über 1-wire gemesen auf "41" und "29" komme...ist also fraglich, ob das wirklich stimmt.

Aber dann geht es los - die 180.00 für die Außentemperatur stimmt hoffentlich nicht - die wird an andere stelle auch korrekt angezeigt:

Die Definition muss wie folgt aussehen:

r,THER,Status,VL/RL/AussenT/VLWW/RLWW/Status,,08,B511,01,,,temp1;temp1;temp2;temp1;temp1;status,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

VG Arthur

Prof. Dr. Peter Henning

Diesen Fehler habe ich nicht bemerkt, weil bei mir der Außentemperatursensor am Hauptcontroller vrs620 angeschlossen ist. Habe ich korrigiert und in die im Repository stehende bai00.csv eingecheckt.

Ich bin gerne bereit, ins Repository auch die Konfigurationsdatei für die vrc430 aufzunehmen (d.h. als gut editierbare Tabelle in die .ods-Datei, und als direkt verwendbare vrc430.csv).

Dazu müssen wir aber ein paar Konventionen einhalten, sonst gibt es Ducheinander.

1. Für Registerkommandos (B509) an den abgesetzten Controller lautet der Klassenname auf den Gerätenamen, also z.B. vrc430 (nicht 47000, das wäre die Vaillant-ID) oder vrs620.
2. Beim Aufruf von Registerkommandos muss immer der Klassenname verwendet werden. Damit entfällt das von Vaillant davorgesetzte "mc"
3. Bei Temperaturangaben etc: Zuerst Die beschreibende Komponente. Also z.B. Vorlauf="Flow". Dann die physikalische Größe, hier "Temp". Dann als Zusatz eventuell "Max", "Min", "Desired".

Damit wäre das Setzen der minimalen Speichertemperatur mit dem Kommando "ebusctl write vrs620 StorageTempMin" zu erreichen, und das Lesen der vom Controller bestimmten Vorlaufsolltemperatur mit "ebusctl read vrc430 FlowTempDesired". Die tatsächliche Vorlauftemperatur käme ohne diesen Zusatz aus, also "ebusctl read vrc430 FlowTemp".

4. Für Registerkommandos (B509) an das Heizgerät ist es sinnvoller, nicht den Gerätenamen als Klassennamen zu verwenden - sondern die Vaillant-Id (also z.B. bai00). Und zwar deshalb, weil ganz unterschiedliche Geräte dasselbe Interface haben. Also z.B. "read bai00 FanSpeed" und "read bai00 FanSpeedDesired".

Bei der vrs620 habe ich eine ganze Menge von B504/B505 Kommandos herausgefunden. B504 liest ganze Sätze von Daten und ist damit sehr viel effizienter, als die Registerkommandos, B505 schreibt Daten - und zwar mit einer Kontrolle der Parameterwerte. Das wird bei einem direkten schreiben auf die Register wohl nicht gemacht, insofern muss man mit dem Schreiben auf die Register sehr vorsichtig sein.

LG

pah


P.S.: Ich werde in den nächsten 3 Wochen nur sehr sporadisch Zeit haben, weil ich eine Großveranstaltung zu leiten habe.