[vz-users] DHT22 Bash Script optimieren

Christian Meckler christian at meckler.org
Fri Aug 14 10:55:35 CEST 2015


Hallo zusammen,

also das Script wird nur 1 Mal pro Stunde ausgeführt, zum Test hatte ich 
es alle 5 Minuten ausgeführt.
Dabei gab es tatsächlich Probleme das das alte Script noch nicht fertig 
war und das nächste schon anfing.
Werde irgendwann bei Gelegenheit mal das Oszi anschließen um mal zu 
zuschauen was aufm Bus los ist.
vermutlich falscher PullUp widerstand oder schlechte Lötstellen...

auf jedenfall bin ich bisher zufrieden.
Mit der Validierung gibt es keine utopische 1000°C mehr in der DB.
hab direkt einen Thread im WIKI erstellt:

*http://wiki.volkszaehler.org/dht22*

Ich hab leider einen BUG dabei,_keine Zeilenumbrüche._
Kann das mal jemand fixen?
mir wäre wichtig das das für die Nachwelt dokumentiert wird.

Gruß
Chris
und Danke an alle für die Unterstützung.


Am 13.08.2015 um 14:33 schrieb Viper:
> Das Fehlen und die falschen Werte können auch in der relativ schnellen 
> Wiederabfrage liegen.
> Der DHT22 braucht eine gewisse Zeit damit er wieder abgefragt werden 
> kann. Und da weder Temperatur noch Luftfeuchtigkeit sich schnell 
> ändern solltest du mal versuchen nur jede Minute oder noch Länger 
> einen Wert abzufragen.
>
> Gruß Andre
>
> Am 13. August 2015 12:44:13 MESZ, schrieb Christian Schnellrieder 
> <schnellrieder.cs at gmail.com>:
>
>     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/data/<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 <mailto: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*
>         *
>         *
>         *​*
>         **
>
>     *
>     *
>     **
>
> *
> -- 
> Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail 
> gesendet. *

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20150814/8e8bce0a/attachment.html>


More information about the volkszaehler-users mailing list