Läuft: Heizung mit eBus-Schnittstelle

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

Vorheriges Thema - Nächstes Thema

amunra

so meine Ebus Ausbeute nach 3 Stunden im Keller vor der Therme:

67 Register (Menü d.0 - d.97 | d. 26/d. 58/d. 63/d. 76/d.97 fehlen mir noch) inkl. Status Anzeige inkl. An/Aus Schalter an der Therme - ja - den Status kann man auch abfragen, identifiziert und verifiziert. Einige ca. 10 passt der Datentyp noch nicht bzw. es gibt Unstimmigkeiten in den Werten wie z.B. ausgelesene Temperaturwert ist 1 °C niedriger als auf der Anzeige zu sehen -> eher Kleinigkeiten.

Insgesamt habe ich nun ca. 170 Register für meine Therme und CI.

Meine nächsten Schritte sind:

- Die Unstimmigkeiten in den Datentypen beseitigen
- Abgleich der Daten mit den Daten die pah bereitgestellt hat.
- Die ermittelten Werte (auch die der VRC430 immerhin sind es mittlerweile ca. 100 Register) kosmetisch aufbereiten (Namenskonvention...)
- Ein paar Schreibbefehle realisieren (Betriebsmodus, etc.)
- FHEM Integration

Also noch genug zu tun.

VG Arthur

yuhu

Zitat von: amunra am 04 Januar 2015, 17:57:45
Einige ca. 10 passt der Datentyp noch nicht bzw. es gibt Unstimmigkeiten in den Werten wie z.B. ausgelesene Temperaturwert ist 1 °C niedriger als auf der Anzeige zu sehen -> eher Kleinigkeiten.

So ein Unterschied könnte an einem Offset liegen, welche man grundsätzlich einstellen kann. z.B. habe ich bei meiner Wärmepumpe  -3 K für den Aussenfühler eingestellt.

amunra

Ahh, ok im konkreten Fall geht es um das Register: 0D7600 (Menü: d.47)
Jetzt sehe ich es - das hatten wir schon mal hier http://forum.fhem.de/index.php/topic,29737.msg236431.html#msg236431
Damit ist der gelieferte Wert des Registers bestätigt.
VG Arthur

Prof. Dr. Peter Henning

Namenskonvention ist gut. Ich habe schon angefangen, die kryptischen Vaillant-Begriffe zu systematisieren.

Das Ganze ist auch deshalb wichtig, weil man natürlich mit einem entsprechenden Vokabular auch Module schreiben kann, die ganz unterschiedliche Heizungssysteme visualisieren und steuern.

LG

pah

amunra

Ja, sehe ich auch so - man kann sich dabei aber ganz schön verzetteln. Es kommt u.a. darauf an wie weit man über den Tellerrand schaut, je mehr, desto komplexer wird es.

Für mich pers. sehe ich  das als Basis/Grundvoraussetzung für die Integration in FHEM.
Das ist auch der Grund weshalb ich bisher kein Aufwand, in das durchaus komplexe Thema, investiert habe.
So richtig Gedanken habe ich mir bisher nicht gemacht, Ideen gibt es...:

- Integration mit FHEM Boardmitteln
- Integration von Außen
- Kombination aus beiden (Monitoring/Alerting intern - Daten zum Auswerten/Visualisieren extern)
- Eigenes FHEM Modul
- ...

Mit allen Vor- und Nachteilen.

Schön wäre es, wenn man das hier zusammen ausarbeiten könnte.

Ich bin gespannt wie sich das Thema entwickelt ...

VG Arthur

Prof. Dr. Peter Henning

Na, wir werden sehen - Datensemantik betreibe ich professionell. EBUS hat aber dabei eine geringere Priorität, als andere Dinge.

LG

pah

heikoh81

@Arthur:
Zitat von: amunra am 04 Januar 2015, 17:57:45
67 Register (Menü d.0 - d.97 | d. 26/d. 58/d. 63/d. 76/d.97 fehlen mir noch) inkl. Status Anzeige inkl. An/Aus Schalter an der Therme - ja - den Status kann man auch abfragen, identifiziert und verifiziert. Einige ca. 10 passt der Datentyp noch nicht bzw. es gibt Unstimmigkeiten in den Werten wie z.B. ausgelesene Temperaturwert ist 1 °C niedriger als auf der Anzeige zu sehen -> eher Kleinigkeiten.
Insgesamt habe ich nun ca. 170 Register für meine Therme und CI.

Das ist ja großartig. Hast du diese in einem OpenOffice-Dokument & könntest du mir das mal schicken?
Zwischenzeitlich habe ich die Logik von ebusd ein ganz klein wenig verstanden und kann nun immerhin die Betriebsart von FHEM aus wechseln - das ist ein riesen Fortschritt, falls man mal vergessen hat, die Heizung auszumachen :-)

Insbesondere habe ich Interesse, folgende IST Werte noch in FHEM abzubilden:

  • d005: Heizungsvorlauf Soll
  • d009: ebus-Regler Soll
  • d015: Pumpendrehzahl IST%
  • d022: Warmwasser-Anforderung
  • d023: Status Heizbetrieb
  • d029: Wasser-Umlaufmenge Ist l/min
  • d034: Ist-Gebläsedrehzahl
  • d080: Betriebsstunden Heizung
  • d081: Betriebsstunden Warmwasser

Sehr interessant wäre noch die Brenner-Ist-Leistung in % - auf der Therme wird diese angezeigt, aber nicht auf dem Calormatic.
Vielleicht liegt diese Information tatsächlich nur in der Thermen-Steuerung vor?

Viele Grüße,
Heiko

Jojo11

Hallo Heiko,

ich versuche mich nun auch an den diversen Registern - vorerst nur zum Lesen. Bisher laufen Anlagendruck, Vorlauftemperatur, SpeicherIstTemperatur, Raumtemperatur, Außentemperatur, Ferienmodus-Abfrage und Modus. Ist es Dir schon gelungen, die Wunschtemperatur zu lesen/schreiben, die man an der Calormatic einstellen kann (im Modus Raumaufschaltung)? Oder ist das das ebus-Regler Soll, welches Du erwähnt hast?
Mit der Implementierung in FHEM wollte ich erst loslegen, wenn ich die für mich interessanten Befehle zusammen habe.

schöne Grüße
Jo

heikoh81

Nein, ich kann momentan nur die Betriebsart schreiben. Zieltemperatur setzen wäre natürlich auch interessant.
Mit welchen ebusctl-Befehlen liest du den Ferienmodus und die Raum-Temperatur? Mit der Datei von pah weiter vorne bekomme ich für die Raumtemp. einen Wert, ich glaube der ist immer 1K verschoben (obwohl ich keinen Offset gesetzt habe).

Jojo11

Hallo,

Raumtemperatur rufe ich mit

*r,F4700,,,,15,B509,0D
r,,RoomTemp,Raumtemperatur,,,,0000,,,tempsensor

ab. Momentan zeigt das "21.56;ok" an. An der Calormatic wird 21.5°C angezeigt. Von dem Rundungsfehler mal abgesehen denke ich, dass der Wert stimmt.
Ferienmodus klappt mit:
r,,isInHoliday,Ferienmodus,,,,0E00,,,yesno

Hast Du eine Liste der bei Dir schon funktionierenden Befehle, die Du teilen würdest? Wir könnten uns das scannen auch gerne aufteilen.
d005...d081: Wie lautet der komplette Befehl dazu? Ich bekomme mit dem header oben (*r,F4700,,,,15,B509,0D) nur ERR: read timeout

Im Übrigen wälze ich mich bisher nur durch die Tabelle von pah.

schöne Grüße
Jo


heikoh81

Teile gerne nur weiß ich noch nicht, wie ich systematisch scannen kann.
Mit Hilfe aller hier im Thread (TAUSEND DANK NOCHMAL) konnte ich mir folgende Befehle erarbeiten:


IN AUTO-SCHALTEN
Befehl: 0E (schreiben)
ebusctl write -h 15B509040E2F0002
0000
Kontrolle 0D (lesen)
ebusctl write -h 15B509030D2F00
010299

IN TAG-MODUS SCHALTEN
Befehl:
ebusctl write -h 15B509040E2F0003
Kontrolle
ebusctl write -h 15B509030D2F00
010398


IN NACHT-MODUS SCHALTEN
Befehl:
ebusctl write -h 15B509040E2F0004
Kontrolle
ebusctl write -h 15B509030D2F00
01049f

IN SOMMER-MODUS SCHALTEN
Befehl:
ebusctl write -h 15B509040E2F0005
Kontrolle
ebusctl write -h 15B509030D2F00
01059e


Und in ebusd übersetzt:
in _templates.csv folgende Zeile anfügen (habe ich so genannt, damit ich weiß, dass diese von mir ist)

betriebsartheiko,UCH,0=Aus;2=Auto;3=Tag;4=Nacht;5=Sommer,,


In Vaillant_Protokoll_kurz.csv von pah unten angefügt:

######HEIKO-BEFEHLE
*r,47000,,,,15,B509,0D,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
*w,47000,,,,15,B509,0E,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
r;w,,Betriebsart,AuslesenUndSchreibenDerBetriebsart,,,,2F00,,,betriebsartheiko,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,


Dies alles ist für eine Calormatic 470/3 und eine ecotec Plus 5

Und in FHEM habe ich es wie im fhemwiki beschrieben mit ECMD eingebunden - ich verwende hierfür eine eigene "Klasse" und folgende benutzereigene Datei "ebus_betriebsart_schreiben.cfg":

# BetriebsartSchreiben
get BetriebsartSchreiben cmd {"write 47000 Betriebsart ".Value("VaillantBetriebsartEinstellen")."\n"}
get BetriebsartSchreiben expect ".*\n"
get BetriebsartSchreiben postproc {
}

Werte kommen in der Textform (siehe _templates.csv) aus einem Dropdown-Menü.

Hilft dir das weiter?
Viele Grüße,
Heiko

Prof. Dr. Peter Henning

Wie "Dropdown-Menü" ?

Mit ECMDDevice ?

Genau das suche ich und bin noch nicht drüber gestolpert.

LG

pah

Jojo11

Auf jeden Fall, vielen Dank! Funktionieren denn bei Dir alle Befehle aus der Tabelle von pah? Welche Werte kannst Du auslesen? Habe selber eine ecotec plus und eine calormatic 470f. Müsste eigentlich identisch sein.

schöne Grüße
Jo


Prof. Dr. Peter Henning

@heikoh81: Noch mal, echt dringend: Dropdown-Menü für Argumente in ECMDDevice ?

LG

pah

heikoh81

#239
@Jojo:
Ich habe nur einen kleinen Teil der Tabelle von pah verarbeitet (siehe auch mein Screenshot):

  • Außentemp aus Broadcast
  • Datum/Uhrzeit aus Broadcast
  • Vorlauf/Rücklauf/Brennerstatus aus Broadcast
  • Systemdruck aus Broadcast
  • Betriebsart - aktiv angefordert
  • Vorlauf/Rücklauf/Warmwasser-Speicher/Brennerstatus - aktiv angefordert

@pah:
Ich habe folgende Elemente in fhem angelegt, damit das Dropdown funktioniert (siehe auch angehängter Screenshot):
(1) Dropdown-Feld:

define VaillantBetriebsartEinstellen dummy
attr VaillantBetriebsartEinstellen group Betriebsart_Einstellen
attr VaillantBetriebsartEinstellen room Vaillant
attr VaillantBetriebsartEinstellen setList state:Auto,Nacht,Tag,Sommer,Aus
attr VaillantBetriebsartEinstellen webCmd state

(2) Notify auf das Dropdown-Feld

define VaillantBetriebsartSchreiben_Click notify VaillantBetriebsartEinstellen {\
  fhem("get VaillantBetriebsartSchreiben BetriebsartSchreiben");;\
}
attr VaillantBetriebsartSchreiben_Click group heatingControl
attr VaillantBetriebsartSchreiben_Click room Vaillant

(3) ECMD - insbesondere hier relevant der letzte Teil "VaillantBetriebsartSchreiben.class=/opt/fhem/FHEM/ebus_betriebsart_schreiben.cfg"

define EBUS ECMD telnet 192.168.178.239:8888
attr EBUS classdefs VaillantAussentemperatur.class=/opt/fhem/FHEM/ebus_aussentemperatur.cfg:VaillantVorlaufBroadcast.class=/opt/fhem/FHEM/ebus_vorlauf.cfg:VaillantSystemdruck.class=/opt/fhem/FHEM/ebus_systemdruck.cfg:VaillantWarmwasser.class=/opt/fhem/FHEM/ebus_warmwasser.cfg:VaillantBetriebsartLesen.class=/opt/fhem/FHEM/ebus_betriebsart_lesen.cfg:VaillantBetriebsartSchreiben.class=/opt/fhem/FHEM/ebus_betriebsart_schreiben.cfg
attr EBUS room Vaillant

(4) ECMD-Device

define VaillantBetriebsartSchreiben ECMDDevice VaillantBetriebsartSchreiben.class
attr VaillantBetriebsartSchreiben IODev EBUS
attr VaillantBetriebsartSchreiben group Heizung
attr VaillantBetriebsartSchreiben room Vaillant

(5) Die Klassen-Datei, die das Argument aus dem Dropdown als Variable bekommt und dann über ECMD den Befehl absetzt (im selben Ordner wie 99_my_Utils.pm):
Dateiname: ebus_betriebsart_schreiben.cfg

# BetriebsartSchreiben
get BetriebsartSchreiben cmd {"write 47000 Betriebsart ".Value("VaillantBetriebsartEinstellen")."\n"}
get BetriebsartSchreiben expect ".*\n"
get BetriebsartSchreiben postproc {
}


Ist es das, was du brauchst?

Viele Grüße,
Heiko