Schlagwort-Archive: REGEX

Kostal Wechselrichter in OpenHAB einbinden

1
0

Warum überhaupt Wechselrichter und OpenHAB?

…weil es einfach cool ist in seiner OpenHAB App auch gleich den Ertrag zu sehen. Nein im Ernst: Es tut gut zu wissen, ob der Wechselrichter läuft oder ob es eine Fehlfunktion gibt. Zum anderen ist es immer spannend zu sehen wie der Ertrag ist, so bekommt man ein gewissen Gefühl für seine Anlage.

Den Wechselrichter kann man direkt ansurfen, da er eine interne Seite bereit stellt auf der man die Daten auslesen kann, weiter kann er automatisch seine Daten auf eine Webseite hochladen. Weiter zeigt er im Display alternierend die Werte an. Aber nur um mal eben schnell … eine meiner Lieblings (hass-)redewendungen… den Wechselrichter auszulesen ist mir das zu aufwendig. Zudem habe ich OpenHAB ja eh am Laufen, warum also sollte ich dies nicht nutzen?

Kostal Wechselrichter in OpenHAB einbinden weiterlesen

1
0

DS18B20 mit Openhab am Raspberry Pi: Von Bash zu Python

1
0

Stand der Dinge:

Nachdem ich mittlerweile alles ziemlich gut im Griff hatte, gab es immer wieder Punkte, die mich gestört haben. Zum Beispiel hatte ich die Onewire (1-Wire)-Sensoren vom Typ DS18B20 immer über ein Shellscript aufgerufen. Der im Netz zu findende Aufruf ist im Prinzip immer ähnlich und es gibt nur feine Nuancen die sich ändern. Das „klassische“ Beispiel ist folgende onewire.sh:

#Temperatur des Sensors auslesen
INPUT=`cat /sys/bus/w1/devices/$1/w1_slave | tail -n1 | cut -d '=' -f2`
TEMP=`echo "scale=2; $INPUT / 1000" | bc`

#INPUT=$(cat "/sys/bus/w1/devices/$1/w1_slave" |tail -n1 |cut -d\"=\" -f2)
#TEMP=$(echo "scale=2; $INPUT / 1000" | bc)

# Wert ausgeben
echo $TEMP

Erläuterung des klassischen Skripts:

Dabei wird per CAT-Befehl die Datei aufgerufen, in der derDS18B20- Sensor seinen Temperaturwert ablegt. Um das Skript nicht für jeden Sensor neu auflegen zu müssen wird die Sensornummer über einen Aufrufparameter an das Skript übergeben. Da jeder Sensor sein eigenes Verzeichnis hat kann der Übergabeparameter (im Skript ‚$1‘) also einfach in den Pfad eingefügt werden, die Datei mit dem Gewünschten Inhalt ist die „w1_slave“. Mit dem „tail“ Befehl wird die letzte Zeile der Datei ausgewählt und mit „cut“ Befehl alles nach dem „=“ Zeichen Ausgeschnitten und an die Variable „Input“ übergeben. Im nächsten Schritt wird die Zahl mit „scale“ und „bc“ noch etwas zurechtgestutzt, weil sie mehrstellig ist, aber der tatsächliche °C-Wert erst durch die Division mit 1000 erzeugt wird. Mit dem Echo wird das Ergebnis letztendlich ausgegeben.

Was das Problem ist:

So weit so gut. Aber dieses Shellskript hat einen kleinen Haken: Auf vielen Installationen von Openhab, besonders auf dem Raspberry Pi oft anzutreffen, liefert dieses Skript kein Ergebnis! Warum das so ist, liegt an den Dateirechten, die man nach jedem Neustart von Openhab neu setzen müsste. Das wäre zwar mit einer Zeile Code geregelt, aber was wenn man das mal Vergisst? Oder man möchte einfach das System so einfach wie möglich halten ohne zu viele kleine Anpassungen und Skripte zu schreiben, die dann bei einer Neuinstallation neu gelernt und erinnert werden müssen?

DS18B20 mit Openhab am Raspberry Pi: Von Bash zu Python weiterlesen

1
0