Hunv / can2mqtt

A Linux or Windows service to forward CAN frames to MQTT messages. Optimized for Stiebel Eltron (at the Moment) but works for all.
MIT License
20 stars 11 forks source link

CAN Bus liefert nurWarmwasserwerte, und weitere Infos erst (!), wenn es am Display eingesehen wird #18

Closed aBua-MUC closed 9 months ago

aBua-MUC commented 11 months ago

Hallo zusammen,

wie der Titel schon andeutet, funktioniert can2mqtt tadellos und liefert auch Werte. Kontinuierlich empfange ich über MQTT die Warmwassertemperatur und den Volumenstrom. Zusätzliche Daten, wie die Vorlauf-/Rücklauftemperatur oder der Druck im Heizkreis, werden jedoch nur übertragen, wenn ich manuell durch das Informationsmenü der Wärmepumpe navigiere. In diesem Fall aktualisieren sich die Werte direkt auf den neuesten Stand. Zum Monitoring in Grafana ist das leider unbrauchbar.

Im Einsatz ist eine Tecalor THZ eco 5.5 die Baugleich ist mit der Stiebel LWZ 5.

Irgendjemand eine Idee?

Hunv commented 11 months ago

Moin, Per Standard liefert can2mqtt nur die Werte, die von sich aus über den CAN Bus laufen. Wenn du Werte abrufen möchtest, die nicht regelmäßig von alleine über den can Bus laufen, musst du die entsprechenden read Anfragen per MQTT senden, aus denen dann can2mqtt die Anforderung an den CAN Bus sendet und dieser somit dann ausgegeben wird. Siehe dazu die readme Seite und das Translation json für die derzeit verfügbaren Abfragen.

aBua-MUC commented 11 months ago

Danke für die schnelle und verständliche Rückmeldung!

Verstehe ich es so richtig, wenn ich den Wert vom Topic "heating/heatcircle/hc1/temperature/measured" lesen möchte, muss ich einen beliebigen Payload an "heating/heatcircle/hc1/temperature/measured/read" senden?

In der config.json muss ich dann noch "CanForwardRead": true setzen? Dann Neustart, aber leider bleibt die Abfrage via MQTT ergebnislos (ich sniffe mit MQTT.fx mit). Für weiter Tipps wäre ich sehr dankbar!

Hunv commented 10 months ago

Danke für die schnelle und verständliche Rückmeldung!

Verstehe ich es so richtig, wenn ich den Wert vom Topic "heating/heatcircle/hc1/temperature/measured" lesen möchte, muss ich einen beliebigen Payload an "heating/heatcircle/hc1/temperature/measured/read" senden?

In der config.json muss ich dann noch "CanForwardRead": true setzen? Dann Neustart, aber leider bleibt die Abfrage via MQTT ergebnislos (ich sniffe mit MQTT.fx mit). Für weiter Tipps wäre ich sehr dankbar!

Hi, Ja, und du musst dann in MQTT noch sowas schicken wie heating/heatcircle/hc1/temperature/measured/read. Dann wird das MQTT in CAN durch can2mqtt "übersetzt" und in den CAN Bus eine Aufforderung geschickt, den wert auszugeben. Die allermeisten Werte gibt es nur "auf Anfrage". D.h. irgendeine Komponente fragt "gib mir mal den Wert XYZ" und dann schickt der Teilnehmer am Bus den entsprechenden Wert, an den das addressiert war. Ich glaube selbst bei der Uhrzeit fragt irgendwas immer "gib mir mal die Minute" und dann schickt eine Komponente z.B. "48".