[vz-users] DHT11
Peer Janssen
peer at pjk.de
Fri Jan 25 19:02:04 CET 2019
Moin!
Ich habe einen DHT11 am Raspi, der auch seine Werte liefert.
Genutzt habe ich die Anleitung nach
https://wiki.volkszaehler.org/_export/code/hardware/channels/sensors/dht22?codeblock=3,
allerdings das Script loldht durch die aktuellere Version des
"AdafruitDHT.py" ersetzt, das auch den DHT11 abfragen kann (außerdem
DHT22 und noch eine andere Type). Die Werte meines etwas veränderten
Scripts (aufgerufen durch cron) landen in einer Logdatei, die so aussieht:
2019-01-25_18:31 [DHT11] Temp=18.0* Humidity=16.0%
2019-01-25_18:32 [DHT11] Temp=18.0* Humidity=16.0%
2019-01-25_18:33 [DHT11] Temp=20.0* Humidity=23.0%
2019-01-25_18:34 [DHT11] Temp=18.0* Humidity=16.0%
Nun bin ich mit dem Beispielscript aber nicht zufrieden. Um diese zwei
Werte in die Middleware zu schicken, werden nacheinander folgende
Programme aufgerufen:
bash, loldht, grep, date, echo, awk, echo, awk, echo, sed, echo, sed,
echo, wget, echo, echo, sed, echo, sed, wget
Das sind 20 Programmaufrufe -- das sieht mir nach Overkill aus. Da ich
loldht nicht mehr verwende, sondern AdafruitDHT.py (das auch nur ein
wrapper um eine python-Library ist), kann ich die Werte auch direkt im
Python-Script formatieren wie gebraucht. Das wäre dann nur ein einziger
Script-Aufruf im cron-Job statt mehrerer anderer. Allerdings weiß ich
nicht, wie ich die Ausgabe formatieren müsste, sodass sie dann direkt,
ähnlich wie im Beispielscript, mit wget in die Middleware geschickt
werden kann, ohne x mal echo, sed und awk zu belästigen. Ich kenne
nämlich bash und deren (interne!) string-Dissektoren nicht gut genug
dafür. Hat da jemand eine Idee? Falls nicht, ließe sich die middleware
aber auch direkt im python-Script ansprechen.
Nun sehe ich aber, dass vzlogger so konfiguriert werden kann, dass ein
Script aufgerufen und anhand eines Formatstrings der Wert aus dessen
Rückgabewert entnommen wird. Ist damit die alte Lösung mit dem
Beispielscript im Grunde obsolet? Ich habe nämlich den Eindruck, dass
das VZ-Wiki in einem Status zwischen einer alten und einer neuen Version
ist, bei der mir nicht recht klar ist, ob da Altes schon Obsoletes
geworden ist. Nun weiß ich aber nicht, ob der Formatstring so angegeben
werden kann, dass ich die beiden Werte aus der Scriptausgabe extrahieren
kann. Falls nicht, erscheint mir doch ein cron-Job mit einem eigenen
Script in Python die bessere Lösung.
Tipps dazu?
Gruß, Peer
--
Peer Janssen - peer at pjk.de
More information about the volkszaehler-users
mailing list