[vz-users] DHT22 Bash Script optimieren

Christian Schnellrieder schnellrieder.cs at gmail.com
Thu Aug 13 12:44:13 CEST 2015


Danke Nils.

Das Puzzle wird nun immer klarer.

Gibt es in Bash die Möglichkeit den Wert zu Validieren?
> Also Luftfeuchte mus zwischen 1 und 100 liege und Temperatur zwischen -20
> und 50.



Ja einfach durch if abfragen.
Dazu muss man sagen. Bash kann nicht direkt mit Komma umgehen. Also würde
ich es einfach rauslöschen bei der Validierung. Aus 58.00 wird dann 5800
etc.


if [ "$(echo $Hum| sed 's/\.//g')" -gt "0" ] && [ "$(echo $Hum | sed
's/\.//g')" -lt "10000" ];then
wget  -O /dev/null "http://
<url>middleware.php/data/<id>.json?operation=add&value=$Hum"
fi


if [ "$(echo $Temp | sed 's/\.//g')" -gt "-2000" ] && [ "$(echo $Temp | sed
's/\.//g')" -lt "5000" ];then
wget  -O /dev/null "http://<url>/middleware.php/d
ata/<id>.json?operation=add&value=$Temp"
fi


Grüße


Am 13. August 2015 um 12:15 schrieb Nils op den Winkel <nils at kusemuckl.de>:

> Hallo Christian!
>
> Ich bin weder der bash- noch der c- guru. Aber Deiner logdatei entnehme
> ich, dass du loldht alle 5 Sekunden aufrufst. wenn loldht aber länger als 5
> Sekunden braucht, um einen Wert zu bekommen (es wird ja jede sekunde
> versucht), bricht der zweite Aufruf ab.Ich denke, deine Fehlenden Werte
> kommen, wenn loldht eigentlich "Lock file is in use, exiting..." ausgibt
> (dann liefert dein grep natürlich nix)
> Die falschen Werte erklärt das aber nicht.
>
> Du kannst ja dein Skript mal umbauen indem du
> a) prüfst, ob loldht noch läuft, bevor du es ein zweites mal aufrufst
> b) den Rückgabewert von loldht prüfst (nur bei 0 hat er ein Ergebnis
> geliefert)
> c) im Fehlerfall die komplette Ausgabe (oder zumindest die letzte Zeile
> oder so) in die Logdatei schreibst.
>
> Viel Erfolg
>
> Nils
>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20150813/650264ca/attachment.html>


More information about the volkszaehler-users mailing list