Läuft: Heizung mit eBus-Schnittstelle

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

Vorheriges Thema - Nächstes Thema

Jojo11

#45
Vielen Dank! Ich denke dass ich auf dieser Basis etwas systematischer vorgehen kann.

[Nachtrag]
Kurze Rückmeldung:
Von den Broadcast Parametern funktionieren OutsideTempB, DateTimeB und StatusHC.
Weiterhin funktioniert das Auslesen von RoomTemp, HolidayRoomSetTemp und LcdContrast. Das ist immerhin schon ein guter Anfang.
Bei vielen anderen Parametern erhalte ich als Fehlermeldung "<<< ERR: invalid position. Segmentation fault". Manchmal gibt es dazu noch einen (falschen) numerischen Wert: "<<< -1616.00;ERR: invalid position. Segmentation fault.
Bei OperatingMode z.B. erhalte ich als Fehlermeldung "<<< ERR: read timeout. Segmentation fault".

Weiterhin ist mir aufgefallen, dass der Daemon jedesmal beendet wird, wenn ich per telnet einen Wert mit read auslese (feature?).

schöne Grüße
Jo

estege

@JoJo11:
"It's not a feature, it's a bug"  ;)

Ich habe die 0.3er Version des eBus-Daemons seit einigen Monate im Einsatz und bin damit sehr zufrieden. Hab mir gestern auch mal die aktuelle 0.5-Beta heruntergeladen, dabei die gleichen Probleme festgestellt und an Roland, den super engagierten Entwickler von ebusd zurückgemeldet. In der Thread-Verwaltung für die expliziten ebus-Anfragen knallt es zumindest noch bei mir (compiliert auf dem RPI),

Wenn Du also erste Erfahrungen sammeln möchtest, empfehle ich eher noch eine der Vorgängerversionen.

Am Besten erst einmal den ebus scannen, damit Du siehst, welche Komponenten anliegen und welche Kommando-Dateien eingesetzt werden können (ebusctrl scan). Das Ergebnis sieht dann ungefähr so aus:

06:   'Joh. Vaillant GmbH & Co.'   ident: 'PMS00'   sw: '01.07' hw: '43.02'   s/n: '21122100301069873190005119N1'   item: '0020061355'
08:   'Joh. Vaillant GmbH & Co.'   ident: 'EHP00'   sw: '04.16' hw: '72.01'   s/n: '21114700100090700007125407N2'   item: '0010004560'

Für diese Komponenten findest Du im Contrib-Ordner https://github.com/yuhu-/ebusd-configuration vielleicht schon die entsprechende Referenz. Eine Garantie gibt es allerdings nicht. Inbesondere bei den "set"-Befehlen (ab 0.5 heißen diese "write") sollte man sich hüten diese ahnungslos durchzuprobieren. Man weiß nie, welche Register man damit eventuell verstellt.

Jojo11

Danke. Ich würde mich halt ungern in eine "alte" Version einarbeiten, die andere Befehle verwendet.
Den scan werde ich mal durchführen. Die Beispiel-Dateien habe ich schon durchgetestet, komme aber damit nicht sehr weit. Set-Befehle werde ich natürlich bis auf Weiteres nicht testen  :o

schöne Grüße
Jo

Prof. Dr. Peter Henning

Kann ich nicht nachvollziehen.

Zum Testen von Befehlen nutze ich immer ebusctl direkt auf dem Raspberry - telnet ist da viel zu instabil.

Telnet wird allerdings vom EBUS-Device benutzt, und da bemerke ich keinerlei Abbrüche.

LG

pah

heikoh81

Mein ebus-USB-Wandler ist eingetroffen.
Allerdings scheitere ich schon an der Installation von ebusd - ich finde keine Schritt-für-Schritt-Anleitung, die funktioniert.

Könnte jemand die Schritte posten, inkl. holen der Dateien aus dem Repository & Kompilieren?

Vielen Dank.

Prof. Dr. Peter Henning


Jojo11

#51
Zitat von: Prof. Dr. Peter Henning am 23 Dezember 2014, 13:52:52
[...]
Zum Testen von Befehlen nutze ich immer ebusctl direkt auf dem Raspberry - telnet ist da viel zu instabil.
[...]

Hab's gerade mal mit ebusctl getestet. Ich erhalte identische Fehlermeldungen und je nachdem auch Abbrüche des Dämons.
Werde nun erstmal den scan durchlaufen lassen.

@heikoh81
Ich musste autoconf noch installieren:

sudo modprobe -v ftdi_sio
sudo apt-get install autoconf
sudo wget https://github.com/yuhu-/ebusd/archive/master.zip
sudo unzip master.zip
cd ebusd-master
sudo ./autogen.sh
sudo make
sudo make install


schöne Grüße
Jo

heikoh81

#52
Danke für die schnelle Antwort. Das make hat geklappt.

Zunächst musste ich aber noch folgende Pakete installieren:

apt-get install automake
apt-get install subversion


Ein kleiner Fehler in der Anleitung von pah war noch, es muss heißen:
./autogen.sh

Und wie rufe ich den ebusd dann auf?
Die gängigen Befehle scheitern leider:

/usr/bin/ebusd/ebusd -f -l ALL -d /dev/ttyUSB0 -p 7777 -s
/etc/init.d/ebusd

Prof. Dr. Peter Henning

Was heißt "scheitern" ? Muss doch eine Fehlermeldung da sein.

Wichtig:
Verzeichnis /etc/ebusd muss mindestens die Datei _templates.csv enthalten, in /etc/default/ebusd steht bei mir

# Default settings for ebusd. This file is sourced by /bin/sh from
# /etc/init.d/ebusd.
# Options to pass to ebusd
EBUSD_OPTS="-l All -d /dev/ttyUSB0"


Die Konfigurationsbeispiele bekommt man mit

svn co https://github.com/yuhu-/ebusd-configuration

LG

pah

UweH

Oder nur damit auf der Konsole ebusd -f -l ALL -d /dev/ttyUSB0 -p 7777

heikoh81

#55
Befehl von UweH liefert:

root@fhemALT:~# ebusd -f -l ALL -d /dev/ttyUSB0 -p 7777
2014-12-23 17:37:01.382 [bas event] ebusd started
2014-12-23 17:37:01.384 [bas trace] path to ebus configuration files: /etc/ebusd
2014-12-23 17:37:01.384 [bas error] error reading templates: ERR: file/element n                                                                                                                                                             ot found or not readable
2014-12-23 17:37:01.385 [bas error] error reading config files: ERR: file/elemen                                                                                                                                                             t not found or not readable
2014-12-23 17:37:01.385 [bas event] message DB: 0
2014-12-23 17:37:01.385 [bas event] updates DB: 0
2014-12-23 17:37:01.385 [bas event] polling DB: 0


/etc/init.d/ebusd liefert leider:

-bash: /etc/init.d/ebusd: No such file or directory


Update:
Die Anzeige oben aktualisiert leider nichts.
Am Ebus-Wandler USB blinkt die orangene LED ca. 1x je Sekunde, manchmal flackert sie auch.
Also Daten vom Ebus scheinen anzukommen, Befehle vom Parallel geschalteten Calormatic 470 werden sofort an der Therme umgesetzt.

estege

Als erstes den ebus-Daemon starten, je nachdem wo dieser installiert ist, zum Beispiel

sudo /usr/local/bin/ebusd

Für die ersten Schritte würde ich den Daemon aber im Vordergrund laufen lassen, damit man das Prinzip besser versteht:

sudo /usr/local/bin/ebusd -f

Mit der Option -h kann man sich die anderen Optionen anschauen, welche ohne explizite Angabe mit sinnvollen Standardwerten vorbelegt sind.

Insbesondere die Option --checkconfig in der neuen Version 0.5 ist hierbei sehr sinnvoll. Sie sollte nach erfolgter Installation und dem Einspielen der csv-Kommandodateien genutzt werden, um die konsistente Konfiguration zu prüfen.

Nach erfolgreichem Start protokolliert der Daemon den gesamten "erspähten" eBus-Datenverkehr entweder zum Terminal (wenn Option -f) oder in das Logfile (zum Beispiel /var/log/ebusd.log).

Entweder via Telnet (oder in der neuesten 0.5er Version auch via Hilfsprogramm ebusctrl), kann man Kommandos beim ebus-Daemon absetzen.

Hierzu einfach mal das Wiki anschauen (https://github.com/yuhu-/ebusd/wiki/Daemon-Commands).

BTW: Ich habe einen von den kommerziell vertriebenen ebus-Kopplern. Bevor dieser überhaupt Werte ausspuckt, muss dieser zuvor noch kalibriert werden. Sollte ebusd stumm bleiben, lohnt es such, hier mit der Fehlersuche zu beginnen.

heikoh81

#57
@estege:
ich habe auch den kommerziellen USB-Wandler von eservice-online.
Ich sehe auf dem Hutschienen-Gehäuse aber keinen Poti oder dergleichen - wie also kalibrieren?

Update:
Manchmal sollte man doch in den Beipackzettel gucken.
Poti ist neben den Anschlussklemmen vorhanden. Wenn ich drehe, blinkt die Bus-LED fast durchgehend.
Leider ändert das am Output aber nichts, der steht so wie oben beschrieben.

Würde die Kommandozeile auch Rohdaten ausspucken, wenn keine Config-Dateien hinterlegt sind?

estege

Heikoh81:

Wenn das Teilt blinkt, werden Daten empfangen. Ansonsten wurde doch ein kleiner Schraubendreher dazu geliefert, mit dem man an einer Stelle (verdeckt) den Poti einstellen kann.

Deine Installation scheint nicht vollständig zu sein (siehe Fehlermeldung beim Starten). Du solltest noch die csv-Konfigdateien herunterladen und den configcheck durchführen.

heikoh81

Poti habe ich gefunden.

Ich habe jetzt mal den Pfad
/etc/ebusd (merkwürdig, dass es den noch nicht gab?)
erstellt und dort eininge .csv abgelegt

Configcheck mache ich wie?