[vz-users] get1wire.pl

joekokker at epios.eu joekokker at epios.eu
Mi Jan 15 21:21:38 CET 2020


Hallo Brucki,

das Problem ist, dass der Wert den du vergleichen möchtest ein String 
ist und deshalb kleiner gleich nicht funktioniert. Du musst den Wert 
zuerst in eine Zahl umwandeln und dann kannst du vergleichen.

Kann selber kein Perl und müsste selbst googlen.

Liebe Grüße
Joe



On 15.01.2020 09:40, Ralf Bruckmoser wrote:
 > Hallo Joe,
 >
 > meinen Sensoren werden über Vcc 3,3 V und Pull up Widerstand versorgt.
 > Das System läuft auch oft über Tage stabil. Hin und wieder werden aber
 > falsche Werte in die Datenbank eingetragen.
 >
 > Mit Perl kenn ich mich nicht aus.
 >
 > Ich habe das Skript get1wire.pl von der Volkszähler Homepage verwendet:
 > https://wiki.volkszaehler.org/hardware/channels/sensors/1_wire
 >
 >
 > In dem Skript gibt es den Punkt #checken
 >
 > Hier habe die dritte Bedingung selbst eingefügt. Leider werden die Daten
 > unter 5 Grad nicht gelöscht.
 >
 > # checken
 > if ( !($sensor_temp =~ /\ YES/ ) ) {
 > delete$Daten{$name};
 > print"CRC == FALSE\n";
 > next; #wieder zu while hochspringen
 >    }
 > if ( ($sensor_temp =~ /85000/ ) ) {
 > # t=85000 ist der defaultwert ohne Wandlung
 > delete$Daten{$name};
 > print"t=85000\n";
 > next; #wieder zu while hochspringen
 >    }
 > if ( ($sensor_temp <~ /5000/ ) ) {
 > delete$Daten{$name};
 > print"Fehler\n";
 > next; #wieder zu while hochspringen
 >    }
 >
 > Wie heißt die Bedingung korrekt, dass alle Temperaturen unter 5 Grad
 > gelöscht werden.
 >
 > Vielen Dank.
 >
 > Grüße
 >
 > Brucki
 >
 >
 > Am 14.01.2020 um 21:14 schrieb joekokker at epios.eu:
 >> Hallo Brucki,
 >>
 >> ich kenne das Skript nicht. Vielleicht kannst du einen Link zum
 >> verwendeten Skript schicken.
 >>
 >> Hast du die Sensoren parasitär angeschlossen? Hast du einen Widerstand
 >> zwischen Vcc und GND.
 >>
 >> Ohne etwas näheres zu wissen, würde ich einfach ein if statement
 >> einfügen als Bedingung vor dem Pushen an den Middleware Server.
 >>
 >> http://www.tizag.com/perlT/perlif.php
 >>
 >> Ich glaube die Sensoren messen generell bis -55 Grad Celsius. Also
 >> hätte ein Statement, das prüft, ob der Wert kleiner als -55 ist,
 >> keinen Einfluss auf das Messergebnis.
 >>
 >> Generell würde ich aber eher das Problem lösen, welches die falschen
 >> Messwerte liefert.
 >>
 >> Joe
 >>
 >>
 >>
 >> On 14.01.2020 14:08, Brucki wrote:
 >>> Hallo Forummitglieder!
 >>>
 >>> Ich habe an meinem Raspberry am GPIO 4 insgesamt 12 Stück 1wire 
Sensoren
 >>> von Typ DS18D20 hängen. Diese lese ich einmal pro Minute über das 
Script
 >>> get1wire.pl aus. Das funktiontiert auch sehr gut. Leider wird alle paar
 >>> Tage von einem Sensor ein stark falsch negativer Werte wie z.B -512°
 >>> übermittelt. Dadurch wie die Skala auf der Volkszähler Website stark
 >>> verschoben.
 >>>
 >>> Welche Zeilen müsste ich in das Skript einfügen, um z. B. negative
 >>> Temperaturwerte nicht zu übermitteln?
 >>>
 >>> Danke schon mal.
 >>>
 >>> Grüße
 >>>
 >>> Brucki
 >>>
 >>>


More information about the volkszaehler-users mailing list