Hilfe bei EBus / EBusd Telegramm Übersetzung

Begonnen von c3rebro, 06 März 2020, 16:25:03

Vorheriges Thema - Nächstes Thema

c3rebro

Hallo liebe Community,

nachdem leider keine fertige EBus Platine mehr verfügbar war, habe ich mir letze Woche eine zusammengebaut nach dem V2.0 Schaltplan. Danke für den Schaltplan an der Stelle - Senden und Empfangen funktioniert - denke ich.

Nun habe ich leider ein Problem mit der korrekten Konfiguration eines Telegramms in Ebusd. Es handelt sich um das Telegramm eines SM2 Solarreglers der Fa Wolf. Ich möchte gern den 2. Solarfühler erfassen. Um das zu erreichen habe ich mit "ebusctl raw" folgendes Telegramm aufgezeichnet:

<0776502203fc35008e00024e029300

Zu dem Zeitpunkt hatte der Fühler 59,0 °C was dem Hexwert 24e entspricht. Sender ist mein BM (07) Empfänger mein SM2 (76). Also habe ich folgende Zeile in meiner 76.csv hinzugefügt:

r,SM2,SF2,Solarkollektorfühler,,76,5022,fc3500,fuehler1,,S3N,,°C,Solarfühler1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Das geschah unter der Annahme das der Wert 00024e wäre - also ein 3 Byte Signed Integer. Wenn ich jetzt versuche damit ein ebusctl r SF2 auszuführen bekomme ich folgenden Logeintrag:

[update error] unable to parse update-read SM2 SF2 from 0776502203fc3500 / 024e02: ERR: invalid position

(Falsch. Der Logeintrag ist wohl beim kontrollieren der Temperatur am BM entstanden.)

Daraufhin habe ich S3N in SIN geändert. Daraufhin erhalte ich dann ein

2020-03-05 21:53:09.297 [bus error] send to 76: ERR: read timeout, retry
2020-03-05 21:53:09.428 [bus error] send to 76: ERR: read timeout, retry
2020-03-05 21:53:09.559 [bus error] send to 76: ERR: read timeout, retry
2020-03-05 21:53:09.690 [bus error] send to 76: ERR: read timeout
2020-03-05 21:53:09.690 [bus error] send message part 0: ERR: read timeout

was in der raw log so aussieht:

2020-03-05 21:55:15.649 >3176502203fc3500b2<00023d023b
2020-03-05 21:55:15.780 >3176502203fc3500b2<00023d023b
2020-03-05 21:55:15.911 >3176502203fc3500b2<00023d023b
2020-03-05 21:55:16.042 >3176502203fc3500b2<00023d023b

Kann mir jemand helfen die korrekte Zeile für meine CSV Datei zu erstellen?

john30

Zitat von: c3rebro am 06 März 2020, 16:25:03
Hallo liebe Community,

nachdem leider keine fertige EBus Platine mehr verfügbar war, habe ich mir letze Woche eine zusammengebaut nach dem V2.0 Schaltplan. Danke für den Schaltplan an der Stelle - Senden und Empfangen funktioniert - denke ich.

Nun habe ich leider ein Problem mit der korrekten Konfiguration eines Telegramms in Ebusd. Es handelt sich um das Telegramm eines SM2 Solarreglers der Fa Wolf. Ich möchte gern den 2. Solarfühler erfassen. Um das zu erreichen habe ich mit "ebusctl raw" folgendes Telegramm aufgezeichnet:

<0776502203fc35008e00024e029300

Zu dem Zeitpunkt hatte der Fühler 59,0 °C was dem Hexwert 24e entspricht. Sender ist mein BM (07) Empfänger mein SM2 (76). Also habe ich folgende Zeile in meiner 76.csv hinzugefügt:

r,SM2,SF2,Solarkollektorfühler,,76,5022,fc3500,fuehler1,,S3N,,°C,Solarfühler1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
wenn du diese nachricht lediglich mitlesen willst (anstelle sie aktiv auslesen zu können), dann müsste die Definition dafür wie folgt lauten:
ur,SM2,SF2,Solarkollektorfühler,,76,5022,fc3500,fuehler1,,SIN,,°C,Solarfühler1

Somit also SIN (2 Byte) statt S3N, weil 93 die CRC ist und 00 das ACK.
Wenn Du das auch aktiv lesen willst, dann "r" statt "ur" verwenden.
author of ebusd

c3rebro

Es funktioniert jetzt - ohne weitere Veränderung mit SIN als Datentyp.

Ich muss die Nachricht aktiv auslesen können, da diese ansonsten scheinbar nicht oder zu selten über den Bus kommt. Komischerweise funktioniert das erst mit --latency=10000 obwohl es eine direktanbindung an den Raspi /dev/ttyebus ist.

@john30: Danke für die Rückmeldung.