hardware:channels:heating_control:gastherme_junkers_can_bus
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste ÜberarbeitungBeide Seiten der Revision | |||
hardware:channels:heating_control:gastherme_junkers_can_bus [2020/04/27 18:48] – angelegt trabant | hardware:channels:heating_control:gastherme_junkers_can_bus [2020/05/15 20:12] – Updated trabant | ||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
Die Modelle mit //Heatronic 2// wurden zwischen Ende der 90er Jahre und 2010 gebaut und haben meist die Typenbezeichnung -5 oder -6, z.B. also //ZWR 18-6//. | Die Modelle mit //Heatronic 2// wurden zwischen Ende der 90er Jahre und 2010 gebaut und haben meist die Typenbezeichnung -5 oder -6, z.B. also //ZWR 18-6//. | ||
- | Diese Modelle können mit einem Can-Bus-fähigen Regler ausgestattet werden. Dieser Bus ist nicht zu verwechseln mit dem der [[hardware: | + | Diese Modelle können mit einem Can-Bus-fähigen Regler ausgestattet werden. Dieser Bus ist nicht zu verwechseln mit dem der [[hardware: |
Zu Hardware und der Junkers-spezifischen Implementierung des Can-Protokolles siehe: [[https:// | Zu Hardware und der Junkers-spezifischen Implementierung des Can-Protokolles siehe: [[https:// | ||
Zeile 31: | Zeile 31: | ||
</ | </ | ||
- | Die Bitrate ist wichtig (muss zum Gegenüber passen!), der Parameter // | + | <note important> |
< | < | ||
ifconfig can0 | ifconfig can0 | ||
Zeile 39: | Zeile 39: | ||
candump can0 | candump can0 | ||
</ | </ | ||
- | sollte nun die eingehenden Datenpakete | + | sollte nun die eingehenden Datenpakete |
{{: | {{: | ||
- | ausgewertet und via Skript an die VZ Middleware übergeben werden können. Beispielhaft dazu folgende Zeilen, die nur als Vorlage dienen können: | + | ausgewertet und via Skript an die VZ [[software: |
<code shell can-vz.sh> | <code shell can-vz.sh> | ||
#!/bin/bash | #!/bin/bash | ||
+ | # calling the script with " | ||
+ | |||
export PATH=/ | export PATH=/ | ||
echo " | echo " | ||
Zeile 52: | Zeile 54: | ||
CANDUMP_IN[1]=" | CANDUMP_IN[1]=" | ||
HUMAN_INFO[1]=" | HUMAN_INFO[1]=" | ||
- | VZ_UUIDFOR[1]=" | + | VZ_UUIDFOR[1]=" |
CANDUMP_IN[2]=" | CANDUMP_IN[2]=" | ||
HUMAN_INFO[2]=" | HUMAN_INFO[2]=" | ||
- | VZ_UUIDFOR[2]=" | + | VZ_UUIDFOR[2]=" |
CANDUMP_IN[3]=" | CANDUMP_IN[3]=" | ||
HUMAN_INFO[3]=" | HUMAN_INFO[3]=" | ||
- | VZ_UUIDFOR[3]=" | + | VZ_UUIDFOR[3]=" |
CANDUMP_IN[4]=" | CANDUMP_IN[4]=" | ||
HUMAN_INFO[4]=" | HUMAN_INFO[4]=" | ||
- | VZ_UUIDFOR[4]=" | + | VZ_UUIDFOR[4]=" |
CANDUMP_IN[5]=" | CANDUMP_IN[5]=" | ||
HUMAN_INFO[5]=" | HUMAN_INFO[5]=" | ||
- | VZ_UUIDFOR[5]=" | + | VZ_UUIDFOR[5]=" |
CANDUMP_IN[6]=" | CANDUMP_IN[6]=" | ||
HUMAN_INFO[6]=" | HUMAN_INFO[6]=" | ||
- | VZ_UUIDFOR[6]=" | + | VZ_UUIDFOR[6]=" |
- | VZ_UUIDFORBS=" | + | VZ_UUIDFORBS=" |
typeset -i MAXP=6 | typeset -i MAXP=6 | ||
Zeile 75: | Zeile 77: | ||
typeset -i BR=0 | typeset -i BR=0 | ||
- | ########### | + | ############ M A I N |
- | | + | while read LINE |
+ | do | ||
+ | while [[ ${P} -le ${MAXP} ]] | ||
do | do | ||
- | | + | |
- | | + | |
- | if [[ "$( echo -e " | + | VAL="$( echo -e "ibase=16; |
+ | if [[ ( " | ||
+ | then | ||
+ | VALUE=${VAL} | ||
+ | elif [[ ( "${CANDUMP_IN[${P}]}" | ||
+ | then | ||
+ | VALUE=${VAL} | ||
+ | if [[ ( " | ||
then | then | ||
- | | + | |
- | VAL="$( echo -e " | + | if [[ "${1}" == " |
- | if [[ ( "${CANDUMP_IN[${P}]}" == 20A ) ]] | + | |
then | then | ||
- | | + | echo -e "$( date " |
- | elif [[ ( " | + | |
- | then | + | |
- | VALUE=${VAL} | + | |
- | if [[ ( " | + | |
- | then | + | |
- | BR=1 | + | |
- | if [[ " | + | |
- | then | + | |
- | echo -e "$( date " | + | |
- | else | + | |
- | | + | |
- | fi | + | |
- | elif [[ ( " | + | |
- | then | + | |
- | BR=0 | + | |
- | fi | + | |
else | else | ||
- | | + | |
fi | fi | ||
- | if [[ "${1}" == " | + | elif [[ ( "${VAL}" == 0 ) ]] |
then | then | ||
- | | + | BR=0 |
- | elif [[ $(echo " | + | fi |
- | then | + | else |
- | echo -e "$( date " | + | VALUE=" |
- | else | + | fi |
- | # Send the value to volkszaehler | + | if [[ " |
- | | + | then |
- | fi | + | |
+ | elif [[ $(echo " | ||
+ | then | ||
+ | echo -e "$( date " | ||
+ | else | ||
+ | RESPONSE=" | ||
fi | fi | ||
- | | + | fi |
- | done | + | |
- | P=1 | + | done |
- | done < <( ${CANDUMPER} ) | + | P=1 |
+ | done < <( ${CANDUMPER} ) | ||
</ | </ | ||
- | Starten kann man das Ganze dann automatisch mittels systemd-service: | + | Starten kann man das Ganze dann automatisch mittels |
<code text canlogger.service> | <code text canlogger.service> | ||
[Unit] | [Unit] | ||
Zeile 141: | Zeile 141: | ||
WantedBy=multi-user.target | WantedBy=multi-user.target | ||
</ | </ | ||
+ | Dann sollte sich der Dienst per '' | ||
- | Last not least ein Bild des Frontends, was den Erfolg und auch die verwendeten Kanaltypen zeigt: | + | Last not least ein Bild des [[software: |
{{ : | {{ : | ||
+ | |||
+ | <note important> |
hardware/channels/heating_control/gastherme_junkers_can_bus.txt · Zuletzt geändert: 2024/01/09 19:45 von trabant