Regenmeldung - Wie kann ich die Dauerwarnung abschalten?

Begonnen von Multimaniac, 26 August 2013, 19:14:36

Vorheriges Thema - Nächstes Thema

Multimaniac

Huhu zusammen,

ich tue mich ja mit teilweise mit der Logik in fhem noch schwer.
Deshalb frag ich mal hier :)

Ich konnte mir den Kauf einer Wetterstation sparen, weil ich die meines Nachbarn komplett empfange ;)
Jetzt würde ich gern, bei einsetzendem Regen eine akustische Meldung erfolgen lassen. Das klappt soweit auch.
(da es gerade nicht regnet und ich nicht mit der Gießkanne auf den Balkon des Nachbarn komme: nur mit einem umgekehrten notify getestet ;) )
In den Readings gibt es nur "total-rain". Daher dachte ich mir, "total-rain" soll alle 5 Minuten auf Änderung geprüft werden - wenn der neue Wert in total-rain
größer ist als der vorherige, soll die meldung durch mpg321 erfolgen. Ich möchte aber nicht während es regnet alle 5 Minuten daran erinnert werden, dass es regnet!
Und an der Stelle kommt ihr ins Spiel :D

Ich bin schon arg froh, dass ich es ohne Plan von Perl überhaupt soweit geschafft habe. Wenn mir jetzt noch jemand erklärt, wie ich die Dauermeldung abstellen kann, bin ich fürs Erste glücklich :) Ich fänd's ganz gut, wenn eine erneute Regenwarnung erst stattfindet, wenn es zuvor mindestens 1 Stunde lang nicht geregnet hat.

define Regenmeldung dummy
define notify_Regen_start notify Regenmeldung:on "mpg321 /home/pi/media/046_es_regnet.mp3"
define Regencheck at +*00:05:00 { if (ReadingsVal("Regensensor","total_rain","%") > "%") { fhem("set Regenmeldung on") } else { fhem("set Regenmeldung off") } }


Anbei einmal die Internals / Readings des Sensors.

Multimaniac

ok, nach einem Brötchen stelle ich fest, "event-on-change-reading state" hat schon mal gefehlt ^^
jetzt fehlt mir im grunde nur noch die erzwungene pause zwischen dem OFF und dem nächsten erlaubten ON.

define Regenmeldung dummy
attr Regenmeldung event-on-change-reading state
attr Regenmeldung room TRX_WEATHER

define notify_Regen_start notify Regenmeldung:on "mpg321 /home/pi/media/046_es_regnet.mp3"

define Regencheck at +*00:05:00 { if (ReadingsVal("Regensensor","total_rain","%") > "%") { fhem("set Regenmeldung on") } else { fhem("set Regenmeldung off") }

Multimaniac

Ich hab mir echt die Finger blutig gegooglet, hab den Schnipsel aus http://www.fhemwiki.de/wiki/Licht_bei_Bedingungen_einschalten in alle mir logisch erscheinenden Richtungen umgeschrieben, aber irgendwas ist immer falsch. Im Zweifelsfall ist das Problem vielleicht, dass ich keine Ahnung hab, wie ich aus Perl heraus fhem dazu bringe einen Shell-Befehl auszuführen.

Hatte gehofft, wenn ich { fhem (""mpg321........mp3"") } versuche klappts vielleicht, aber Pustekuchen :(

10 Ausprobieren
20 Verzweifeln
30 GOTO 10

rudolfkoenig

Das ist aber "plain" perl, und hat mit fhem nichts zu tun. Es geht mit system("befehl.sh&"); oder `befehl.sh&`.