Schlagwort-Archive: Skript

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

VBS: Kleines Helferlein „Laufzeitberechnung“

0
0

Auf der Arbeit kommt es immer wieder mal vor, dass etwas eine gewisse Zeit dauert. Oft liegt die Angabe bei uns in Form von „Stunden“ vor und man – ich – tu mich manchmal schwer damit herauszufinden bis wann das geht. Wenn ich heute damit anfange, könnte es ja an einem Wochenende fertig sein. Oder zu einer anderen Uhrzeit. Daher hab ich ein kleines VBS-Skript geschrieben, was mir ganz einfach anzeigt, wann was fertig ist:


Option Explicit
dim vAktZeit
dim vLaufzeit
dim vNewDate
dim vStartzeit
vAktZeit=Now
vLaufzeit = InputBox("Bitte die Dauer der Aufgabe in Stunden eingeben","Laufzeit","110")
vStartzeit = InputBox("Bitte noch die Startzeit im Format tt.mm.yyyy hh:mm angeben","Startzeit",vAktZeit)
vNewDate = DateAdd("h",vLaufzeit,vStartzeit)
MsgBox vNewDate,0,"Laufzeitende"

Eingabe im Texteditor, aber als „.vbs“ abspeichern. Nach einem Doppelklick zum Ausführen wird man gefragt wie lange die Aufgabe dauern soll. Standardmäßig ist hier 110 Stunden eingestellt. Danach wird einfach die aktuelle Zeit plus die Anzahl Stunden gerechnet, zum heutigen Datum (und Uhrzeit) addiert und das Ergebnis ausgegeben. Vielleicht nicht immer optimal oder ein grosser Augenschmaus bei geringem Komfort, aber mir hilft es, weil ich dann nur noch im Kalender gucken muss, ob ich zu dem berechneten Endzeitpunkt auch auf der Arbeit oder gerade im Urlaub/Wochenende bin.

0
0