Läuft: Heizung mit eBus-Schnittstelle

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

Vorheriges Thema - Nächstes Thema

Mr. P

Zitat von: dleinic am 22 Oktober 2015, 12:47:40
ach.....nun werden wir wie in der pers. E-Mail beleidigend.......
Dies muß mir niemand sagen, ist mir schon bewusst "Herr Professor". Soll ich Ihnen meine Anschrift geben- möchten Sie mich einmal besuchen. Sie hatten in der Vergangeheit ja bereits einem anderen User gedroht. Muß ich nun Angst haben....uaaahhhhhh.
Ok- Witzfigur, einfach mal nicht so frech sein und den Mund halten. Auch du bist nicht anonym unterwegs, dies sollte man einmal im Auge behalten, bevor man frech wird......
(http://kind.suicideproject.org/wp-content/uploads/2013/10/aaa-300x225.jpg)
Greetz,
   Mr. P

phantom

Zitat von: john30 am 21 Oktober 2015, 07:23:45
Ich selbst habe daran nicht weitergearbeitet, aber zumindest Hilfestellung zu _templates und Datentypen gegeben.
Meinst Du jetzt den Scan nach Teilnehmern?
Das ist ja nichts neues: ebusctl scan && sleep 30 && ebusctl scan result
Wenn Du Datenfelder meinst, das ist ne lange Geschichte. Ich hab mal versucht, im Wiki zu beschreiben, wie man vorgehen kann:
https://github.com/john30/ebusd/wiki/HowTos#creating-new-message-definition-files

Hallo John,
OK, dann muß ich wohl selbst die Messages entziffern ...
Ein ebusctl scan .../result  oder ebusctl grab .../result  bringt leider gar keine Daten, sondern bleibt stumm bis man ihn mit Ctrl-C abwürgt. Ein ebusctl raw  bingt ca. alle 5 Min. folgendes:
QQ ZZ PB SB NN DB CRC

f7 9a 10 20 01 22 5a
f7 9b 10 20 01 22 d5
f7 9c 10 20 01 22 4e
f7 9d 10 20 01 22 c1

lt. eBus-Spezifikation:
QQ: F7 = Master 20 Heizungsregler
ZZ: 9A-9D  = Fernsteller 11-14
PB: 10 = TEM-AG Herstellerkodierung
NN: 01 = 1 Daten-Byte
DB: 22 = noch zu entschlüsseln ...

In /etc/ebusd stehen bisher nur _template.csv, broadcast.csv, scan.csv aus deinem Vaillant-Config-Verzeichnis. Diese passen wohl nicht zu meinen TEM-Regler, der wohl keine Broadcasts verschickt, aber auf einen scan nach zumindest diesem einzigen Teilnehmer reagieren könnte.

Ich wollte zunächst die grundlegende Message-Konfig korrekt verstanden haben, bevor ich Daten zum TEM-Regler zur gezielten Datenabfrage sende. Oder gibt es passendere Config-Dateien zum Start?

Bitte um kurze Hilfe, wenn es passt.
Dirk



Prof. Dr. Peter Henning

Tja, hoher Trollfaktor  ;D ;D - aber immerhin hat er schon 25 Posts im Forum getätigt, muss ein echter Könner sein.

LG

pah

john30

Zitat von: phantom am 22 Oktober 2015, 16:20:27
OK, dann muß ich wohl selbst die Messages entziffern ...
Ein ebusctl scan .../result  oder ebusctl grab .../result  bringt leider gar keine Daten, sondern bleibt stumm bis man ihn mit Ctrl-C abwürgt. Ein ebusctl raw  bingt ca. alle 5 Min. folgendes:
QQ ZZ PB SB NN DB CRC

f7 9a 10 20 01 22 5a
f7 9b 10 20 01 22 d5
f7 9c 10 20 01 22 4e
f7 9d 10 20 01 22 c1

lt. eBus-Spezifikation:
QQ: F7 = Master 20 Heizungsregler
ZZ: 9A-9D  = Fernsteller 11-14
PB: 10 = TEM-AG Herstellerkodierung
NN: 01 = 1 Daten-Byte
DB: 22 = noch zu entschlüsseln ...

In /etc/ebusd stehen bisher nur _template.csv, broadcast.csv, scan.csv aus deinem Vaillant-Config-Verzeichnis. Diese passen wohl nicht zu meinen TEM-Regler, der wohl keine Broadcasts verschickt, aber auf einen scan nach zumindest diesem einzigen Teilnehmer reagieren könnte.

Ich wollte zunächst die grundlegende Message-Konfig korrekt verstanden haben, bevor ich Daten zum TEM-Regler zur gezielten Datenabfrage sende. Oder gibt es passendere Config-Dateien zum Start?
Ich schaue morgen mal nach, was da der letzte Stand war.
Richtig, die Vaillant CSVs passen naturgemäß nicht zu TEM, aber sollten jetzt im ersten Schritt auch nicht schaden.
Also wenn ein Scan keinerlei Ergebnis bringt und der Regler alle 5 Minuten Nachrichten verschickt, auf die er keine Antwort bekommt, dann hast Du wohl ein grundsätzliches Problem mit dem Bus. Welches Interface nutzt Du denn?
author of ebusd

Prof. Dr. Peter Henning

#1144
Ich frage mich auch, was der TEM-Regler denn steuert, welche anderen Geräte also auf dem EBus sitzen. Darüber wissen wir noch gar nichts - und gerade die oben aufgeführten Messages scheinen mir darauf hinzudeuten, dass der TEM komplett autonom arbeitet und irgendetwas ins Vakuum schickt.

LG

pah

phantom

Guten Morgen,

@john30
Das Interface ist ein Eigenbau (eine Mischung aus der eBUS-Spec. 1.3.1 aus 2007 und dem Vorschlag von pah aus dem Thread). Es läuft schon seit 2013, aber bisher nur mit der Windows-Service-Software von TEM zum Auslesen einiger Werte.

@pah
Auch richtig, der TEM-Regler arbeitet autonom und steuert die Pumpen und Ventile des Heizkamins mit Pufferspeicher unabhängig von der Heizung (eine Viessmann Vitronic, um die sich der vcontrold kümmert).


Ziel meines Vorhaben ist es diese beiden Regelkreise zunächst mal zu überwachen und dann durch bessere Abstimmung aufeinander zu optimieren. Der vcontrold liefert seine Werte in eine MySQL-DB, der TEM-Regler sollte dies auch mal machen, um so manchem komischen Regelverhalten der Heizung auf die Spur zu kommen. Mangels Zeit ist dieses Projekt leider liegen geblieben. Doch der Einstieg in FHEM und dieses Forum haben es wieder "hervorgekramt".

Mittels des ebusd möchte ich "einfach" die RAM-Daten des Reglers mit dem Ebus-Befehl 09 00 (PB SB)  auslesen und anhand eines Vergleichs mit der TEM-Software zuordnen. Dazu muss ich den ebusd wohl zunächst mit einer passenden Grundkonfiguration versehen. Aus den regelmäßen Telegramme an die Fernsteller könnte ich evtl. bereits Temperaturwerte abgreifen...

Vielleicht läßt sich mein recht undokumentierter Regler doch dazu bewegen seine Daten rauszurücken ...
Gruß Dirk

Zur Info: ebusd, vcontrold, mysqld auf Synology-NAS, FHEM auf Raspi2B, mit X10, EnOcean, 1-Wire, Lirc, Viera, Ws2000

Prof. Dr. Peter Henning

Die Ventile und Pumpen haben eigene Ebus-Interfaces ?

LG

pah

john30

Zitat von: phantom am 23 Oktober 2015, 09:57:31
Mittels des ebusd möchte ich "einfach" die RAM-Daten des Reglers mit dem Ebus-Befehl 09 00 (PB SB)  auslesen und anhand eines Vergleichs mit der TEM-Software zuordnen. Dazu muss ich den ebusd wohl zunächst mit einer passenden Grundkonfiguration versehen. Aus den regelmäßen Telegramme an die Fernsteller könnte ich evtl. bereits Temperaturwerte abgreifen...
Also im Kontext TEM sind z.B. die Ochsner CSVs entstanden, die auch eine TEM Herstellerkodierung haben. Schau doch einfach mal, ob aus den Dateien etwas zu gebrauchen ist:
https://github.com/john30/ebusd-configuration/tree/master/ebusd-1.x.x/ochsner

Aber vermutlich ist das Zeitverschwendung, wenn nicht mal der Scan klappt...
author of ebusd

phantom

@john30
Es ist wohl so, daß ich den TEM-Regler PS5511 per Polling abfragen muß. Es Mitschnitt des Starts der TEM-Windows-Software mittels "ebusd raw" gibt folgendes aus:

einmalig eine Systemidentifikation:
QQ ZZ PB SB NN DB  CRC ACK  NN Antwort-Telegramm 
ff fc 07 04 01 00  e6  00   0a    10  50 53 35 35 31 31 78 78 78 75  00 00 00 00 00 00 00 00 00  aa  00  aa
                                         10   TEM  P  S   5   5   1   1   x    x    x   


dann mehrfache Speicherabfragen wie (2 Byte auslesen, hier mal ohne  SYN/CRC/ACK dargestellt):
ff fc 09 02 03 f4 d7 02 / 02 bf 01
ff fc 09 02 03 f0 d7 02 / 02 8a 0c
ff fc 09 02 03 ec d7 02 / 02 36 45 ...

(PC=ff sendet an den Regler=fc eine RAM-Abfrage=0902 ab Adresse d7f4 hex mit 2 Byte Länge und bekommt 01bf hex zurück)

Mir fehlt noch etwas Verständnis für die ebusd-config, um mit derartigen Befehlen den Regler auszulesen.
Wie müsste man dies mit minimalen CSV-Konfig-Dateien formulieren?
Der Regler "versteht" wohl die ebus-Befehle 07 04 = Systemabfrage, 09 02 und 09 00 = RAM-Speicherabfragen. Ich würde gerne die RAM-Speicherabfragen mit ebusctl write ... zur weiteren Analyse nutzen.


@pah
Die Ventile und Pumpen, der Kamin- und Puffersteuerung hängen am TEM-Regler. Die Umwälz- und Wasserpumpen an der Viessmann-Heizung. Die Sollwerte und Ausgänge des TEM-Reglers lassen sich mit Speicher-Befehlen 09 01 auch hineinschreiben, womit ich vor hatte die Regelung anzupassen (wenn ich sicher bin die richtigen Adressen zu treffen ...)

Im Winter kommt es öfters vor, daß beide Regler (Heizung und Kamin) "gegeneinander" arbeiten. Wenn der Aufwand mittels ebus-Analyse bzw. Eingriff nicht exorbitant wird, wäre dies ein gangbarer Weg eine "externe" Modifikation der Stellglieder über weitere Elektronik am Regler vorbei zu vermeiden.

Gruß Dirk

Prof. Dr. Peter Henning

Hm, leider beantwortet das die Frage noch nicht. "Hängen" die Stellglieder per EBUs am TEM, oder sind das andere (direkte) Anschlüsse ? Mit welchen anderen Geräten spricht der TEM-Regler per EBus ?

LG

pah

phantom

OK, dann mal etwas detaillierter:

Eine Standard-Viessmann-Heizung (Vitronic 200 KW2, überwacht mit vcontold) mit Warmwasserspeicher wird durch einen Kamin über einen Heizwasserpuffer unterstützt. Dazu steuert der TEM-Regler PS-5511-SZ eine Puffer- und eine Speicherpumpe über Triacs und dazu 2 Umschaltventile über Relais an (am ebus hängt niemand außer ebusd).
Wenn es draußen kalt ist und dann der Warmwasserspeicher auch kalt wird (zu lange geduscht...), wird unsinnigerweise erst der Puffer erwärmt anstelle des Speichers. Das dauert dann sehr lange.

Das Regelverhalten wollte ich durch Vorgabe besserer Sollwerte über den ebusd an den TEM-Regler optimieren.
Die RAM-Adressen der Sollwerte habe ich per ebusctl raw schon z.T. herausgefunden.

Das Zurückschreiben von Werten klappt jedoch nicht:
z.B. bringt das Auslesen der Rücklauf-Differenz-Temperatur mittels
ebusctl write -h fc 09 02 03 64 e0 02   
nur folgendes, anstelle der korrekten Antwort  "/ 02 32 00   Rücklauf_Differenz_Ein 32h=50  5.0 K"  :
2015-10-25 13:30:26.632 [bus notice] <aa
2015-10-25 13:30:26.795 [bus notice] <aa
2015-10-25 13:30:26.861 [main notice] hex write cmd: fffc0902030ae002
2015-10-25 13:30:26.977 [bus notice] <aa
2015-10-25 13:30:26.978 [bus notice] >ff
2015-10-25 13:30:27.003 [bus notice] <ff
2015-10-25 13:30:27.104 [bus notice] <aa
2015-10-25 13:30:27.104 [bus notice] >ff
2015-10-25 13:30:27.130 [bus notice] <ff
2015-10-25 13:30:27.253 [bus notice] <aa


Danach bleibt der ebusd in diesem Zustand hängen und ebusctl gibt nichts mehr zurück bis man beide killt.   :(

Lese ich diesen Wert mit der Windows-Parametrier-Software, kommt die erwartete Antwort, die ich mit ebusctl raw sehen konnte. Als ebusd-Konfig-Dateien ist bisher nur die _templates.csv in /etc/ebusd, damit der überhaupt läuft.

Ist dies evtl. nicht der richtige Weg, um vom einem ebus-Regler Werte abzufragen, oder muß ich schon dafür CSVs erstellen?
Und wie würde ich dann neue Werte zurückschreiben, oder ist da etwa irgendwo ein Bug?

Gruß Dirk

phantom

Ein Nachtrag:

das Auslesen klappt doch, es funktioniert jedoch nur mit einem direkt per USB am ebus-Wandler angeschlossenen Rechner (getestet mit altem, langsamen EEE-PC unter Ubuntu).  Nicht funktioniert hat es jedoch aus einer virtuellen Ubuntu-Maschine unter VirtualBox auf Xeon 5480 über einen Ethernet-Serial-Wandler (Moxa-NPort) im Keller.

Es scheint, als gäbe es Timing-Probleme, wenn ebusd über den Ethernet-Serial-Wandler schreiben will; lesen klappt problemlos.
--> Kann man dies evtl. mit den Timing-Parametern von ebusd beheben?

OK, Werte auslesen mit  ebusctl write -h fc 09 02 03 80 e0 02   gibt korrekt  02 c8 00  (=20.0 C) zurück.
--> Wie würde man diesen Wert durch zurückschreiben z.B. von 02 2c 01  auf 30.0 C setzen?


john30

Zitat von: phantom am 27 Oktober 2015, 20:39:36
das Auslesen klappt doch, es funktioniert jedoch nur mit einem direkt per USB am ebus-Wandler angeschlossenen Rechner (getestet mit altem, langsamen EEE-PC unter Ubuntu).  Nicht funktioniert hat es jedoch aus einer virtuellen Ubuntu-Maschine unter VirtualBox auf Xeon 5480 über einen Ethernet-Serial-Wandler (Moxa-NPort) im Keller.

Es scheint, als gäbe es Timing-Probleme, wenn ebusd über den Ethernet-Serial-Wandler schreiben will; lesen klappt problemlos.
--> Kann man dies evtl. mit den Timing-Parametern von ebusd beheben?
Nur begrenzt. Das Timing auf dem Bus ist ziemlich eng gestrickt, da gibt es wenig bis keinen Spielraum. Schau dir mal die Aufrufparameter von ebusd an, da gibt es zumindest zwei Zeitparameter, die man justieren kann: https://github.com/john30/ebusd/wiki/2.-Run#ebus-options, und zwar acquiretimeout und receivetimeout.
Nach Deinem raw dump zu urteilen würde das aber nicht helfen, da ein Zurücklesen eines einzelnen geschriebenen Bytes mit 25ms schon viel zu lange dauert.

Zitat von: phantom am 27 Oktober 2015, 20:39:36
OK, Werte auslesen mit  ebusctl write -h fc 09 02 03 80 e0 02   gibt korrekt  02 c8 00  (=20.0 C) zurück.
--> Wie würde man diesen Wert durch zurückschreiben z.B. von 02 2c 01  auf 30.0 C setzen?
Laut eBUS Spez. wäre das dann -h fc 09 03 04 80 e0 2c 01.

Mit einer entsprechenden Message Definition (CSV) wäre das bequemer. Ich schau mir das am Wochenende mal an.
author of ebusd

Stumpf

Hallo zusammen,

ich verfolge den Thread schon eine ganze Weile und bin auch aktuell dabei meinen Vailant an meine Hausystem anzubinden.
Dank des Ebusd und der Schaltung von pah funktioniert das auch schon sehr gut. Danke dafür, gute Arbeit!

Mit den vorhandenen CSV Dateien kann ich auch die ein oder anderen Daten bereits auslesen und in meiner DB speichern.

Soweit so gut.

Aber nun habe ich ein paar Nachrichten die ich gerne noch in die CSV eintragen will. Allerdings komme ich mit den Daten im CSV nicht ganz zurecht.
Irgendwie habe ich es noch nicht genau festellen können wie ich wo und was eintragen muss.

Beispiel:
10ecb5040121 / 050e00003f00

Mir ist klar das es um das Komando ecb5 04 21 geht. Aus dem Dokument "eBUS Specification Application Layer – OSI 7 Vaillant specific extensions V0.6.0"
scheint es der Service "ServiceWaterStorage" zu sein.

Und damit die Daten:
0e --> Collector temperature °C
00 --> immer 00 / unbekannt
00 --> Heizquelle / Off, Solar, Heizer
3f --> SpeicherLevel in %
00 --> Power  %

Wie trag ich das nun ein? Gibt es eine Beschreibung der CSV-Files? Wen ja wo?
Ach ja habe eine VRS620 und die Therme VC DE 206 mit Solaranalge.

Danke und Gruß
Stumpf



Prof. Dr. Peter Henning

Die Beschreibung der CSV-Files ist in diesen enthalten. Einfach in OpenOffice importieren, dort bearbeiten und wieder nach CSV exportieren.

LG

pah