Skip to content

hcan4mqttpc [ENTWURF]

RealMerlin edited this page Nov 28, 2019 · 2 revisions

[ENTWURF] hcan4mqttpc - MQTT Bridge [ENTWURF]

was ist MQTT?

MQTT ist ein Protokoll ueber das verschiedenen Dienste/Programme Informationen austauschen koennen.
Es gibt so genannte "Topics". Ueber die man bestimmte Geraete/Aktionen logisch zusammenfassen kann.
hcan4mqttpc benutzt die Topics "cb<" und "cb>". cb steht fuer CAN BUS.
"cb<" bedeutet diese Meldung wird ueber dem CAN BUS verschickt.
"cb>" bedeutet diese Meldung kam ueber den CAN BUS.

hcan4mqttpc leitet nur bestimmte CAN Frames an MQTT weiter. das sind aktuell:

HCAN_HES_POWER_GROUP_STATE_REPLAY
HCAN_HES_POWER_GROUP_STATE_INFO
HCAN_HES_ROLLADEN_POSITION_REPLAY
HCAN_HES_ROLLADEN_POSITION_CHANGED_INFO
HCAN_HES_1WIRE_TEMPERATURE
HCAN_HES_1WIRE_TEMPERATURE_REPLAY
HCAN_HES_REEDKONTAKT_STATE_REPLAY
HCAN_HES_REEDKONTAKT_STATE_CHANGE
HCAN_HES_HEIZUNG_MODE_OFF_DETAILS
HCAN_HES_HEIZUNG_MODE_MANUAL_DETAILS
HCAN_HES_HEIZUNG_MODE_THERMOSTAT_DETAILS
HCAN_HES_HEIZUNG_MODE_AUTOMATIK_DETAILS
HCAN_HES_HEIZUNG_TIST_REPLAY

Desweiteren nimmt hcan4mqttpc folgende "Kommandos" unter dem Topic "cb<" an:

Powerport:
ON/123
OFF/123

Rollladen:
Ro/123/200
Ro/123/201
Ro/123/202
Ro/123/<Position in %>

Heizung:
H/aus/123
H/therm/<Temperatur>/<Dauer in h>
H/auto/123

Temperatur (noch in Arbeit):
T/123/<Temperatur>

Luftfeuchtigkeit (noch in Arbeit):
LF/123/<Luftfeuchtigkeit>

fuer was braucht man MQTT im zusammenhang mit hcan?

Ueber hcan4mqttpc kann man CAN Frames aus anderen Anwendungen/Geraeten "erzeugen" oder auf CAN Frames anderweitig reagieren.

ein paar (theoretische) Beispiele

Man kann sich z.B. per Shell Script Wetterdaten aus dem Internet laden und dann in dieser Form XXX an das Topic "cb<" schicken. Darauf hin generiert hcan4mqttpc einen 1WIRE Temperatur Frame mit dem entsprechenden Inhalt.

Man kann sich z.B. per Shell Script an das Topic "cb>" "ranheften" und dann bei einer bestimmten Message eine Aktion ausfuehren die so per HCAN nicht moeglich waere.

ein paar (pratische) Beispiele

Clone this wiki locally