eBus Schaltung in Betrieb nehmen

Begonnen von Reinhart, 23 Dezember 2015, 15:19:45

Vorheriges Thema - Nächstes Thema

Reinhart

#1005
@ralle82

lade dir eine aktuelle 3er Version herunter und entpacke sie. Im Verzeichnis /contrib/html liegen deine gesuchten HTML Dateien. Kopiere sie dann nach /var/ebusd/html dann sollte alles klappen.

Config Files hole ich immer von Johns Github.


LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

ralle82

#1006
@reinhart
super, das klappt schon mal.

@John30
wäre das nicht auch ein Punkt fürs Wiki oder hab ich das schlicht irgendwo überlesen? Ohne Hinweis wäre ich nie darauf gekommen ;)

Wenn ich nun aber versuche, den ebusd als Service laufen zu lassen bekomme ich nach Start des Dienstes folgenden Fehler

pi@ebuspi:/var/ebusd $ sudo service ebusd start
Job for ebusd.service failed because the control process exited with error code.
See "systemctl status ebusd.service" and "journalctl -xe" for details.


die EBUSD_OPTS in /etc/default/ebusd sieht dabei wie folgt aus:
EBUSD_OPTS="--scanconfig --httpport=8080 --httppath=/var/ebusd/html --configlang=DE"

ABER: So bald ich den httppath aus der OPTS Variable raus nehme, startet der Daemon problemlos.

habt ihr da noch eine Idee? 1000 Dank für Eure Hilfe!

ralle82

Weiterhin bekomme ich leider immer einen "ERR: element not found, field type TEMPV in field 1"

das sieht bei Aufruf von ebusd --checkconfig dann so aus:

pi@ebuspi:~ $ ebusd --checkconfig
2017-09-11 22:41:25.837 [main notice] ebusd 3.0.595c7c0 performing configuration check...
/etc/ebusd/vaillant/15.700.csv:6: ERR: element not found, field type TEMPV in field 1
2017-09-11 22:41:25.889 [main error] error reading config files: ERR: element not found, last error: /etc/ebusd/vaillant/15.700.csv:6: ERR: element not found, field type TEMPV in field 1
2017-09-11 22:41:25.900 [main notice] found messages: 166 (4 conditional on 3 conditions, 0 poll, 4 update)
2017-09-11 22:41:25.902 [main notice] ebusd stopped


Any Ideas? Die Anlage ist eine Flexotherm 117/4 mit VR70 und Mulitmatic VRC700, VR900 und Recovair 360...

andig

@ralle: existiert denn Dein httppath?

Cruiser79

Nach langer Abstinenz konnte ich nun auch endlich wieder meine eBus Platine an die Heizung anschliessen. Da ich einen noch nicht unterstützte Heizung habe (ecoTEC plus, multiMATIC 700/VRC700) hatte ich schon früher den Tip bekommen die 08.bai.HW7401.csv zu kopieren und bekomme mit dieser auch schon viele Werte. Da aber noch ein paar "unknown MS cmd" auftauchen und ich generell den Aufbau der ebus Nachrichten verstehen möchte, hier noch ein paar Fragen.
Generell erst einmal mein ebusctl info

pi@raspi:~$ ebusctl info
version: ebusd 3.0.v3.0
update check: revision v3.0-2-g29cee10 available, broadcast.csv: different version available, vaillant/broadcast.csv: different version available
signal: acquired
symbol rate: 24
max symbol rate: 313
reconnects: 0
masters: 3
messages: 210
conditional: 3
poll: 0
update: 8
address 03: master #11
address 08: slave #11, scanned "MF=Vaillant;ID=BAI00;SW=0609;HW=5502", loaded "vaillant/08.bai.HW5502.csv"
address 10: master #2
address 15: slave #2, scanned "MF=Vaillant;ID=70000;SW=0110;HW=2103"
address 31: master #8, ebusd
address 36: slave #8, ebusd


Mein Versuch eine Nachricht manuell zu decodieren, soweit ich es aus https://wiki.fhem.de/wiki/EBUS#eBusd_Bedeutung_der_Telegramme und der CSV Datei herauslesen konnte:

Broadcast Aussentemperatur Nachricht
Folgender Broadcast ist mir klar

2017-09-11 09:34:21.937 [update notice] update broadcast outsidetemp QQ=10: 14.312
2017-09-11 09:34:21.940 [bus notice] <10feb5160301500e28

Byte Bedeutung hier
0x10 Adresse des Senders Zentrale
0xfe Adresse des Empfängers Alle Geräte
0xb5 Herstellercode Vaillant
0x16 Klasse des Kommandos Broadcast
0x03 Anzahl Datenbytes 3
0x01 Bedeutung des Wertes outsidetemp = Außentemperatur
0x50 LSB des Wertes 80
0x0e MSB des Wertes 14    -> (14*256 + 80)/256 = 14,3125
0x28 CRC


Status01 Nachricht
Bei den folgenden Nachrichten habe ich aber Bytes, die ich mir nicht erklären kann. Wofür stehen die Bytes denn hier, die im Broadcast für die Errechnung des eigentlichen Wertes (LSB, MSB) und der CRC standen? Woher weiss ebusd, das er diese überspringen muss, um zu den CSV Daten (temp1;temp1;temp2;temp1;temp1;pumpstate) zu kommen? Und was steht in den letzten 4 Bytes noch drin?
2017-09-11 09:34:19.683 [update notice] update bai Status01 QQ=10: 51.0;50.5;14.312;-;45.5;off
2017-09-11 09:34:19.686 [bus notice] <1008b51101018900096665500eff5b0000ff1b00

Byte Bedeutung hier
0x10 Adresse des Senders Zentrale
0x08 Adresse des Empfängers HW5502
0xb5 Herstellercode Vaillant
0x11 Klasse des Kommandos Status
0x01 Anzahl Datenbytes 1
0x01 Bedeutung des Wertes Status01
0x89 Beim Broadcast LSB, was hier?
0x00 Bei Broadcast MSB, was hier?
0x09 Beim Broadcast CRC, was hier?
0x66  temp1 D1C 51.0
0x65  temp1 D1C 50,5
0x500e  temp2 D2B (14*256 + 80)/256 = 14,3125
ff    temp1 -> -
0x5b  temp1 D1C -> 45,5
0x00  pumpstate UCH -> off
0x00
0xff
0x1b
0x00 


Mode Nachricht
In welchem Byte steht denn hier der Mode, der 1 (=standby) sein müsste? Nach der CSV müsste es ja ein UCH sein, was nur eines der beiden hinteren 01 Bytes sein dürfte. Aber woran erkennt der ebusd nun, das er dort hinten suchen soll? Und was steht in den restlichen Bytes? Noch weitere Informationen, die ich herausfinden könnte?

2017-09-11 09:34:20.475 [update notice] update bai Mode QQ=10: standby
2017-09-11 09:34:20.478 [bus notice] <1008b5100900006affffff000000ca0001019a00

Byte Bedeutung hier
0x10 Adresse des Senders Zentrale
0x08 Adresse des Empfängers HW5502
0xb5 Herstellercode Vaillant
0x10 Klasse des Kommandos
0x09 Anzahl Datenbytes 9
0x00 Bedeutung des Wertes Mode
0x00
0x6a
0xff
0xff
0xff
0x00
0x00
0x00
0xca
0x00
0x01
0x01
0x9a
0x00

FHEM auf Raspberry Pi
HM-CFG-LAN mit HM-TC-IT-WM-W-EU, HM-CC-RT-DN, HM-WDS10-TH-O, HM-LC-SW1-FM, HM-LC-Bl1-FM
Signalduino mit Elro AB440, LOGILINK WS0002, IT CMR-1000

ralle82

@andig

ja, das Verzeichnis ist vorhanden, und der HTTP Abruf der Daten funktioniert auch, wenn ich ebusd über die Kommandozeile aufrufe mit ebusd --scanconfig --htmlpath=/var/ebusd/html --httpport=8080

Das wundert mich ja eben.

Peter1984

@John30: Ich habe nochmal eine Frage zur 3.0. Wird hier nicht mehr angezeigt, welche CSVs geladen werden?

pi@raspberrypiebusd:~ $ ebusctl i
version: ebusd 3.0.595c7c0
update check: revision v3.0-2-g29cee10 available, different configuration files available
signal: acquired
symbol rate: 45
max symbol rate: 154
reconnects: 0
masters: 3
messages: 1032
conditional: 152
poll: 3
update: 56
address 03: master #11
address 08: slave #11, scanned "MF=Vaillant;ID=EHP00;SW=0419;HW=7201"
address 10: master #2
address 15: slave #2, scanned "MF=Vaillant;ID=UIH00;SW=0374;HW=6901"
address 23: slave, scanned "MF=Vaillant;ID=EHP00;SW=0419;HW=7201"
address 25: slave, scanned "MF=Vaillant;ID=EHP00;SW=0419;HW=7201"
address 31: master #8, ebusd
address 36: slave #8, ebusd
address 50: slave, scanned "MF=Vaillant;ID=EHP00;SW=0419;HW=7201"
address e0: slave, scanned "MF=Vaillant;ID=OMU00;SW=0118;HW=5202"


Die Funktion ist aber gegeben.

Dann noch eine 2. Frage:

Lasse ich mir mit pi@raspberrypiebusd:~ $ ebusctl find -r -F circuit,name,comment die zur Verfügung stehenden Befehle ausgeben, finde ich eine lange gesuchte / gewünschte Einstellmöglichkeit für die Frostschutzverzögerung (am liebsten würde ich die komplett abschalten, brauche keinen Frostschutz im Haus).

Ergebnis ist aber:

pi@raspberrypiebusd:~ $ ebusctl r -f FrostOverRideTime
ERR: invalid position in decode


Any idea?

Thx!

john30

Zitat von: Reinhart am 10 September 2017, 20:18:52
Bei reinem MQTT Betrieb fehlt halt eine zyklische Übertragung von sog. Telemetriedaten (zB: aus einem Array die vom Anwender gewünschten curcuit + names lesen und dann diese zyklisch vom ebusd aus senden) , aber das ist ja bei ECMD auch so, die zyklische Übertragung wird da von FHEM angestoßen.
das ließe sich leicht durch Anpassung der CSVs erledigen, oder einmalig nach Start von ebusd mittels "read -p 1 -c <circuit> <name>" für jede der Nachrichten, die zyklisch kommen sollen.
author of ebusd

john30

Zitat von: ralle82 am 11 September 2017, 23:58:50
@John30
wäre das nicht auch ein Punkt fürs Wiki oder hab ich das schlicht irgendwo überlesen? Ohne Hinweis wäre ich nie darauf gekommen ;)
naja, das HTML Frontend ist immer noch als experimentell einzustufen. Dennoch kann man auch ohne HTML Dateien den JSON Abruf nutzen, wenn mann den http port aktiviert.
Details zur Schnittstelle stehen hier: https://github.com/john30/ebusd/wiki/3.2.-HTTP-client
author of ebusd

john30

Zitat von: ralle82 am 12 September 2017, 00:43:16
Weiterhin bekomme ich leider immer einen "ERR: element not found, field type TEMPV in field 1"
das liegt wohl an einer noch unvollständigen _templates.csv, die solltest Du von hier nehmen: https://raw.githubusercontent.com/john30/ebusd-configuration/master/ebusd-2.1.x/de/vaillant/_templates.csv
author of ebusd

john30

Zitat von: Cruiser79 am 12 September 2017, 08:44:07
Status01 Nachricht
Bei den folgenden Nachrichten habe ich aber Bytes, die ich mir nicht erklären kann.
Schau Dir doch einfach direkt die Definition der Nachricht an, wie ebusd diese dann nach einlesen und auflösen der CSVs verwendet. Dazu liefert "ebusctl f -f Status01" z.B. folgendes:
r,ehp,Status01,Vorlauftemperatur/Rücklauftemperatur/Aussentemperatur/WW Temperatur/Speichertemperatur/Pumpenstatus,,08,b511,01,temp,s,D1C,,°C,Temperatur,temp,s,D1C,,°C,Temperatur,temp,s,D2B,,°C,Temperatur,temp,s,D1C,,°C,Temperatur,temp,s,D1C,,°C,Temperatur,state,s,UCH,,0=off;1=on;2=overrun,,Pumpenstatus

Die drei Spalten "08,b511,01" werden Teil der ID der Nachricht, hier:
08=ZZ Empfänger
b511=PBSB
01=DD erstes Byte aus den Nutzdaten, das zusätzlich noch zur Identifikation verwendet wird.

Somit sind alle Bytes des Master Teils "verbraucht" und die Nutzdaten des Slave Teils werden für die Dekodierung verwendet (bei Dir 6665500eff5b0000ff).
Dazwischen sind noch Protokoll-Teile wie CRC, ACK, und Längenbytes, die für die Nutzdaten keine Rolle spielen.
Siehe auch hier: https://github.com/john30/ebusd/wiki/eBUS-background

Zitat von: Cruiser79 am 12 September 2017, 08:44:07
Mode Nachricht
In welchem Byte steht denn hier der Mode, der 1 (=standby) sein müsste?
Hier sind die Nutzdaten auch im Slave Teil (drittletztes Byte).
author of ebusd

john30

Zitat von: Peter1984 am 15 September 2017, 18:45:47
@John30: Ich habe nochmal eine Frage zur 3.0. Wird hier nicht mehr angezeigt, welche CSVs geladen werden?
Läuft ebusd mit "--scanconfig"?

Zitat von: Peter1984 am 15 September 2017, 18:45:47
Lasse ich mir mit pi@raspberrypiebusd:~ $ ebusctl find -r -F circuit,name,comment die zur Verfügung stehenden Befehle ausgeben, finde ich eine lange gesuchte / gewünschte Einstellmöglichkeit für die Frostschutzverzögerung (am liebsten würde ich die komplett abschalten, brauche keinen Frostschutz im Haus).

Ergebnis ist aber:
pi@raspberrypiebusd:~ $ ebusctl r -f FrostOverRideTime
ERR: invalid position in decode

Mach doch mal "ebusctl hex 15b509030d2e00" und poste das Ergebnis.
author of ebusd

Peter1984

Zitat von: john30 am 16 September 2017, 10:50:43
Läuft ebusd mit "--scanconfig"?
Mach doch mal "ebusctl hex 15b509030d2e00" und poste das Ergebnis.

pi@raspberrypiebusd:~ $ ebusctl hex 15b509030d2e00
ERR: command not enabled


pi@raspberrypiebusd:~ $ sudo service ebusd start --scanconfig
pi@raspberrypiebusd:~ $ ebusctl i
version: ebusd 3.0.595c7c0
signal: acquired
symbol rate: 36
max symbol rate: 131
reconnects: 0
masters: 3
messages: 1029
conditional: 152
poll: 3
update: 56
address 03: master #11
address 08: slave #11
address 10: master #2
address 15: slave #2
address 23: slave
address 25: slave
address 31: master #8, ebusd
address 36: slave #8, ebusd
address 50: slave
address e0: slave

john30

Zitat von: Peter1984 am 16 September 2017, 11:21:01
pi@raspberrypiebusd:~ $ sudo service ebusd start --scanconfig
So funktioniert das nicht. "--scanconfig" muss in die /etc/default/ebusd mit rein. Hast Du evtl. das etwas kaputte Release von neulich installiert? Dann bitte nochmal das deb Package runterladen (wurde inzwischen korrigiert) und nochmal installieren bzw. aktualisieren. Dann sollte ebusd automatisch im "--scanconfig" Modus starten, ohne dass Du noch etwas anpassen musst.

Zitat von: Peter1984 am 16 September 2017, 11:21:01
pi@raspberrypiebusd:~ $ ebusctl hex 15b509030d2e00
ERR: command not enabled


Ach ja, um hex Kommandos absetzen zu können, muss in /etc/default/ebusd noch "--enablehex" als zusätzlicher Parameter z.B. hinter "--scanconfig " eingetragen werden.
author of ebusd

Peter1984

Ich habe jetzt nochmal die Version neu kompiliert, bislang habe ich immer aus dem Package geladen.
Jetzt habe ich auch eine andere Version:

pi@raspberrypiebusd:~ $ ebusd -V
ebusd 3.0.v3.0-9-gb9c69f0


Die Config-Files habe ich gelöscht und auch nochmal neu von Github geholt. --enablehex habe ich angefügt und dann den Dienst gestartet. Ergebnis ist immer noch das gleiche, keine Hex-Werte, und ich sehe auch nicht, welche CSVs eingelesen werden.

Irgendwas mache ich hier grundlegend falsch, ich könnte auch eine Teamviewer-Session anbieten :-)