FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: maddinthebrain am 11 Januar 2018, 16:11:11

Titel: Blitze zählen mit Gewitterwarner GW1
Beitrag von: maddinthebrain am 11 Januar 2018, 16:11:11
Hallo zusammen,
Ich möchte mit dem bekannten Gewitterwarner GW1 u.a. Blitze zählen.
Ich werte das Blitzereignis über einen Interrupt vom GPIO das Raspi aus.
So nun zu meiner Frage kann ich einfach folgendes machen:
fhem "set reading $dev Blitzereignis Blitzereignis+1"

einfach hochzählen?

Grüße Martin
Titel: Antw:Blitze zählen mit Gewitterwarner GW1
Beitrag von: viegener am 11 Januar 2018, 17:34:30
Kurze Antwort: Nein

der Befehl, den Du verwenden willst, heisst "setreading"

Aber dann würde immer noch der Wert "Blitzereignis+1" als Text darinstehen  :(

um einen Wert hochzuzählen müsstest Du erste den aktuellen Wert abfragen, dazu gibt es verschiedene Möglichkeiten in perl solltest Du mal nach ReadingsVal im Forum oder in commandref suchen

Titel: Antw:Blitze zählen mit Gewitterwarner GW1
Beitrag von: viegener am 11 Januar 2018, 17:36:16
In FHEM solltest Du aber vielleicht auch mal das Modul RPI_GPIO anschauen, vielleicht kann das ja Deine Blitzereignisse direkt in FHEM zur Verfügung stellen?
Titel: Antw:Blitze zählen mit Gewitterwarner GW1
Beitrag von: maddinthebrain am 11 Januar 2018, 19:35:42
Ja ich Werte die Flanken am Gpio als Interrupt zusammen mit Wiringpi aus. Dann möchte ich in einem Dummy die Blitze zählen. Statistik also Tag, Woche,  Monat,  Jahr macht ja das Statistik Modul.


Internals:
   DEF        19
   GPIO_Basedir /sys/class/gpio
   GPIO_Nr    19
   NAME       GW1_Blitzereignis
   NR         82
   STATE      ???
   TYPE       RPI_GPIO
   WiringPi_gpio /usr/local/bin/gpio
   filehandle
   READINGS:
     Pinlevel:
       TIME       2018-01-11 19:28:28
       VAL       
   fhem:
     interfaces switch
Attributes:
   direction  input
   interrupt  falling
   pud_resistor up
   room       Wetter


Wie kann ich das mit dem Zählen am sinnvollsten machen?

Grüße Martin
Titel: Antw:Blitze zählen mit Gewitterwarner GW1
Beitrag von: dev0 am 11 Januar 2018, 19:56:19
Schrieb viegener doch: setreading, ReadingsVal. Ohne _konkrete_ Frage erweckst Du den Eindruck, dass Du keine Lust hast Dich einzuarbeiten...
Titel: Antw:Blitze zählen mit Gewitterwarner GW1
Beitrag von: maddinthebrain am 11 Januar 2018, 20:48:15
Zitat von: dev0 am 11 Januar 2018, 19:56:19
Schrieb viegener doch: setreading, ReadingsVal. Ohne _konkrete_ Frage erweckst Du den Eindruck, dass Du keine Lust hast Dich einzuarbeiten...
Ja das mit setreading hab ich anderer Stelle schon am Laufen. Das ist klar.

Also ich würde das mal so machen

my $dev = "Blitzzaehler";
my $varread = ReadingsVal("$dev","Blitzereignis",0) + 1;
fhem "setreading $dev Blitzereignis $varread";


Und als Funktion in myUtils anlegen und dann entsprechend über ein Notify aufrufen.

Das mit dem ReadingsVal ist leider nicht schön dokumentiert, es steht mal hier mal da was. Aber zur Syntax findet man wenig. Es ist nicht so dass ich mich nicht damit nicht auseinander setzen möchte
Titel: Antw:Blitze zählen mit Gewitterwarner GW1
Beitrag von: viegener am 12 Januar 2018, 14:32:57
Du brauchst nicht mal wirklich eine eigene Funktioni in myUtils, denn auch der kurze perl code lässt sich direkt im notify unterbringen, auchd dazu gibt es Beispiele in der commandref. Ich denke es wäre nützlich zu sehen, welche Information zu ReadingsVal Dir gefehlt haben, da kann man shene wie man die Doku verbessert.

Wenn aber das entsprechende FHEM GPIO modul funktioniert gibt es auch wieder andere Module oder Lösungen die das Zählen erledigen würden.

In FHEM kann man das Rad natürlich selber neu erfinden, aber existierende Module sind in vielen Fällen der einfachere Weg
(Einfacher zu nutzen in FHEM, Kombinierbar mit anderen Teilen, Hilfe von anderen Nutzern, kein Aufwand sich mit parallelität/realtime/etc zu befassen)