mir wurde ein hb-rf-eth POE Bausatz zur Verfügung gestellt und ich muss sagen die Hardware und Software des hb-rf-eth ist genial!
Ich habe meinen RPI 3b im Charly Bausatz einfach durch den Adapter ersetzt, das Firmware Update des Gateways war auch sehr einfach.
Aber die Installation unter einem aktuellen Proxmox LXC Container hat weder mit debian noch ubuntu geklappt, weil ich die Kernel Module einfach nicht geladen bekam. Eine Vollvirtualisiertes Debian (QEMU) hatte aber keine Probleme und es läuft soweit auch gut.
Ein größeres Manko ist aber das sich der hb-rf-eth nach einem neustart nicht mehr richtig mit der debmatic verbindet, alle Versuche durch neu starten von einzelnen Services haben zu keinem Erfolg geführt einizig der neustart des debmacti Services selbst bringt das Gateway wieder online.
Ich habe nun zwei bash scripts geschrieben die zum einen eine filesystemwatcher auf das /sys/class/hb-rf-eth/hb-rf-eth/is_connected file setzen und wenn dies auf 0 geht ein weiteres aufruft welches dann prüft ob das Gateway im Netzwerk erreichbar ist und wenn ja prüft ob es mit einer CCU Verbunden ist, wenn nicht startet es den debmatic dienst neu.
Damit ist mein Gateway nun nach einem Stromausfall desselben, sofort wieder erreichbar wenn es am Netzwerk auftaucht und die debmaic verbindet sich wieder.
Hier der zweite Teil des scripts welches prüft ob das Gateway wieder da ist:
Code: Alles auswählen
# Install depencities
#
# apt install jq
# get IP Address of hb-rf-eth module
ip_eth=$(/usr/bin/cat /etc/default/hb_rf_eth | /usr/bin/cut -d "=" -f 2 | /usr/bin/sed -r 's/"//g')
# check if hb-rf-eth is reachable on port 80
/usr/bin/nc -z -v -G5 $ip_eth 80 &> /dev/null
ETH_NW=$?
if [[ $ETH_NW -gt 0 ]]
then
/usr/bin/echo "hm-rf-eth on ip $ip_eth is reachable through port 80"
# check if hb-rf-eth is connected to debmatic instance, restart it if not
ETH=$(/usr/bin/wget -q -O - "http://$ip_eth/sysinfo.json"|/usr/bin/jq '.sysInfo.rawUartRemoteAddress'| /usr/bin/sed -r 's/"//g')
if [[ ${#ETH} -gt 0 ]]
then
/usr/bin/echo "hm-rf-eth connected with debmatic instance"
else
/usr/bin/echo "hm-rf-eth not connected with debmatic instance!"
/usr/bin/echo "hm-rf-eth was offline, restart debmatic.service"
/usr/bin/systemctl restart debmatic.service
fi
fi
Viel schöner wäre es wenn so etwas wie meine Zeilen oben machen, direkt in den debmatic-monitor-hb-rf-eth.service Integriert werden würde. Und es vielleicht auch mit weniger heftigen Mitteln als dem kompletten neustart der debmatic wieder zu einer Verbindung zu bringen könnte.