[ECMD] Multi-DHT mit dem AVR Net-IO: mehrere DHT-22 an einem Device

Begonnen von kpwg, 14 Juni 2014, 16:48:42

Vorheriges Thema - Nächstes Thema

kpwg

Es beginnt immer zum Monatsersten und verschwindet in den folgenden Tagen. Nur woher kommt es? Die Fehlermeldung ist eben leider nichtssagend   :(

Gernott

Na ja, man findet zumindest im Netz, daß es eine gängige Warnung des Perl-Interpreters ist. Vielleicht gibt er nach einiger Zeit einfach auf? Wäre ein menschlicher Zug. Ich habe auch eine classdef für Temperatursensoren hier aus dem Forum laufen, die von den Befehlen ziemlich ähnlich ist. Dort tritt das Problem nicht auf.

Gruß
G.

Patrick85

Hallo zusammen,
verwende das Modul zum Auslesen von mehrere DHT22 schon seit einigen Wochen und hatte auch das Problem mit der Warnung: Useless use of a variable in void context at (eval 31283) line 1.

Seitdem ich die Kommentare entfernt hatte, wurden auch die Einträge im Log nicht mehr angezeigt. Hat vermutlich keinen logischen Hintergrund, bei mir hat es aber geholfen.

Habe zudem noch eine kleine Änderung get DHT expect "-?\d+.\d\n" vorgenommen, da ansonsten bei Minustemperaturen einen Warnung im Log erscheint. 2014.12.27 11:55:32 1: AVR: unexpected answer "-2.4\n" received (wrote "dht temp 0\n", expected \d+.\d\n)

dht22m.classdef
params devID
get DHT cmd {"dht temp %devID\n\000dht humid %devID\n"}
get DHT expect"-?\d+.\d\n"
get DHT postproc {\
s/(.*)\n(.*)\n/T: $1 H: $2/;\
my $hash  = $defs{%NAME};\
my $temperature = $1;\
my $humidity = $2;\
my $state = $_;\
\
readingsSingleUpdate($hash, "temperature", $temperature, 1);\
readingsSingleUpdate($hash, "humidity", $humidity, 1);\
readingsSingleUpdate($hash, "state", $state, 1);\
\
}


lg
Patrick

Gernott

Zitat von: Patrick85 am 27 Dezember 2014, 12:12:20
Useless use of a variable in void context at (eval 31283) line 1.
Seitdem ich die Kommentare entfernt hatte, wurden auch die Einträge im Log nicht mehr angezeigt. Hat vermutlich keinen logischen Hintergrund, bei mir hat es aber geholfen.
Hallo Patrick

Das wäre fast zu einfach. Kannst Du das reproduzieren (Kommentar mal wieder einfügen und wieder löschen)?

Gruß
G.

Patrick85

Hallo Gernott,
du hast recht. Es hat nichts mit den Kommentaren zu tun, sondern mit dieser Zeile:

Original Code
s/(.*)\n(.*)\n/T: $1 H: $2/: $_;\

modifizierte Code
s/(.*)\n(.*)\n/T: $1 H: $2/;\

In meinem Code habe ich den String ": $_" entfernt. Sobald ich ihn wieder hinzufüge, erscheinen auch die Fehler wieder. Warum das so ist kann ich nicht genau sagen, da ich den Syntax auf die Schnelle nicht genau interpretieren kann. Vielleicht hat es damit zu tun, dass die DHT22 Sensore keinen Status sondern nur Werte zurückliefen.

dht temp 0
-2.7
dht humid 0
78.1


lg
Patrick

ag390734

Hallo zusammen

Ich bin auch sehr an dem Multi-DHT interessiert. Allerdings verzweifle ich gerade etwas mit dem Ethersex. Einen DHT hab ich seit geraumer Zeit am Laufen. Das pinning dafür hab ich in der .m4 Datei configuriert. Wie muss das jetzt aussehen? Ich nehme an, dass man jetzt nicht mehr um die dht_pinning.conf rum kommt. Aber was trägt man dann in der .m4 ein? Gar nichts mehr? Eine Anleitung dazu hab ich leider nicht gefunden.
Danke für eure Hilfe. Danach kann ich mich dann ans FHEM machen.

Viele Grüße
Andreas


kpwg

Zitat von: Patrick85 am 27 Dezember 2014, 15:29:45
In meinem Code habe ich den String ": $_" entfernt. Sobald ich ihn wieder hinzufüge, erscheinen auch die Fehler wieder. Warum das so ist kann ich nicht genau sagen, da ich den Syntax auf die Schnelle nicht genau interpretieren kann. Vielleicht hat es damit zu tun, dass die DHT22 Sensore keinen Status sondern nur Werte zurückliefen.

Seit einem bestimmten Update im letzten Jahr in FHEM wird die Sache angemeckert. Der Substitutionsoperator s/// arbeitet stets auf $_, sofern man ihm nix anderes beibringt. Wenn man jedoch $_ nochmals explizit mitgibt, ist das "nutzloses Benutzen".  ;D

Ich benutze Multi-DHT seit einigen Monaten recht intensiv mit der classdef aus dem ethersex Wiki (http://www.ethersex.de/index.php/Nutzung_in_FHEM_%28Deutsch%29#DHT22_Temperatur-.2FFeuchtesensoren). Eine recht ähnliche Art zum Auslesen mehrere Werte in einem Rutsch nutze ich für den BMP180.

Viele Grüße, Ricardo