Prowl auslösen wenn Bewegung im Zimmer

Begonnen von Sascha, 22 Dezember 2013, 22:02:08

Vorheriges Thema - Nächstes Thema

Sascha

# Prowl Bewegung Wintergarten
Hallo Leute,
ich habe im Wintergarten einen HM-SEC-MDIR. Dieser Schaltet wenn es dunkel ist eine Funksteckdose für vier Minuten an. Das funktioniert problemlos. Nachdem ich jetzt testweise einen Prowl für meinen HM-WDS10-TH-O erstellt habe (warnt, wenn temperatur unter 3 Grad geht - gemacht nach Anleitung http://www.meintechblog.de/2013/11/howto-mit-fhem-push-nachrichten-aufs-iphone-schicken/) wollte ich einen entsprechenden Prowl für meinen Bewegungssensor im Wintergarten erstellen - nur leider will der nicht. Jemand eine Ahnung woran das liegen kann?

Und: kann mir jemand einfach erklären, wie das mit dem notify funktioniert bzw. wo ich herausfinden kann, welche Variablen ein bestimmtes Device hat und welche Werte diese annehmen können? Ich versuch das mal am Beispiel meines notify - so wie ich das sehe:

- define -> brauche ich um den notify anzulegen
- WGMotnIndicatorMotion -> der Name des notify den ich frei vergeben kann (bei mir WG = WinterGarten)
- notify -> das eigentliche notify Kommando
- BewegMeld_Wintergarten_01 -> das Gerät dessen Zustand ich abfragen will
- :motion.* -> schon nicht mehr ganz so klar - was bedeutet das? - hab das analog zu meinem Temperaturmess Prowl gemacht - was bedeutet . und was *?
- fhem -> bedeutet dass fhem Code folgt?
- {bedeutet dass perl code folgt?
- set WG.MotnIndicator on -> hier wird ein Wert in den dummy geschrieben - aber welcher on? Motion?
- if(ReadingsVal("BewegMeld_Wintergarten_01","on" -> was bedeutet das? bzw. was muss dahin?
- im Prowl Teil: was bedeutet das >>define WG.MotnIndicatorMotionNotify notify WGMotnIndicatorMotion:motion {prowl("Es ist jemand im Wintergarten","Grillecke","1")}<< speziell, was bedeutet das ,"1" Ich denke, dass "Grillecke" so "geprowlt" wird, genau wie  "Es ist jemand im Wintergarten" - aber warum schreibt man das nicht einfach in ein "..."


#Dummy
define WG.MotnIndicator dummy
attr WG.MotnIndicator event-on-change-reading state
attr WG.MotnIndicator room Wintergarten

#WG.MotnIndicator
define WGMotnIndicatorMotion notify BewegMeld_Wintergarten_01:motion.* {fhem("set WG.MotnIndicator on")if(ReadingsVal("BewegMeld_Wintergarten_01","on"}

#Prowl Notify
define WG.MotnIndicatorMotionNotify notify WGMotnIndicatorMotion:motion {prowl("Es ist jemand im Wintergarten","Grillecke","1")}

Oh mein Gott-  habe heute schon über zehn Stunden mit fhem verbracht - meine bessere Hälfte killt mich garantiert  ;D

Puschel74

Hallo,

Zitatkann mir jemand einfach erklären, wie das mit dem notify funktioniert

das hier http://forum.fhem.de/index.php/topic,17715.0.html

durchlesen.
Dort ist erklärt wie das mit notify funktioniert.

Zitatwelche Variablen ein bestimmtes Device hat und welche Werte diese annehmen können?
Äh. Schon mal die Detailansicht eines Device angeschaut?
Was fehlt dir dort? Beispiel ein S300TH.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Sascha

Hallo,
danke für den Link - aber solche Posts hab ich schon eine Menge gefunden - das Problem ist, dass sie für einen Anfänger wie mich bereits zu komplex sind - vor 15 Jahren hätte das noch anders ausgesehen  - damals war ich recht gut in einigen Programmiersprachen. Nur jetzt bin ich halt draussen - und muss mich erst mal in Perl, ... einfinden.

Wenn ich das alles mal verstanden habe, würde ich gerne Anleitungen für Newbies wie mich schreiben ... Schade, dass es keine Kurse gibt an denen man teilnehmen kann (gerne gegen Bezahlung) und dann sozusagen "fit" gemacht wird ....

Nur die Werte der Readings helfen halt oft nicht weiter - in einem anderen Post hatte ich das Problem, dass die IODev sich bei Geräten bei mir dauernd geändert hat - und lies sich nicht dauerhaft umstellen. Martin sagte dann, das können nur passieren, wenn der HMLAN im pairing Modus sei - ich soll mal nachsehen, ob hmPair=1 -> ich hab ewige Zeit investiert um dieses Reading zu finden - nur um dann irgendwann von einem anderen Nutzer zu erfahren, dass hmPair=1 NUR in den Readings ist, wenn der HMLAN im Pairing Modus ist (Für erfahrene Nutzer mag das selbstverständlich sein - für mich leider nicht) - ich hätte von der Logik her erwartet, dass dann hmPair=0 da steht

Meine Lösung war dann ALLE Geräte die an HMLAN1 gepaired sind direkt unter HMLAN1 in der fhem.cfg dann der Eintrag für HMLAN2 und darunter alle Geräte die mit diesem zusammenhängen - soll angeblich keinen Einfluss haben - bei mir funktioniert seither alles problemlos - vielleicht hilft dieser Post dann einem anderen Nutzer mit ähnlichen Problemen weiter ....

Und so dachte ich, wäre doch ganz gut mal an meinem Beispiel erklärt zu bekommen wie der notify funktioniert, damit andere dann hier nachlesen können ....


naja, werd ich halt auf den Prowl verzichten ... geht die Welt nicht von unter - ist jetzt viertel vor 11 und ich seit über 12h vor dem Rechner - muss mal Schluss machen  :)

Wünsche allen die Ruhe der Nacht

Sascha


Sascha

so, habs hinbekommen - hat mir keine Ruhe gelassen - und ist im Prinzip recht einfach - wenn man es nicht so komplex aufbaut wie in vielen Beispielen die ich gefunden habe. Wenn daher mal jemand nach sowas sucht, hier meine Lösung (in rot das, was in fhem.cfg steht, in blau meine Erklärung - hoffe die stimmt so - falls nicht bitte Kommentare - dann ändere ich es):

#Dummy
define WG.MotnIndicator dummy
                                                             
hier einen Dummy (Name frei wählbar - bei mir WG.MotnIndicator) definiert der anschließend als virtuelles Gerät den Zustand des Bewegungsmelders speichert

# attr WG.MotnIndicator event-on-update-reading
hier hatte ich außerdem event-on-change-reading probiert => ohne Erfolg - erst nachdem ich ausmarkiert hatte, hat es funktioniert


attr WG.MotnIndicator room Wintergarten
hier den Dummy dem Raum zugewiesen in dem der Bewegungsmelder ist

#WG.MotnIndicator
define WG.MotnIndicatorMotion_Notify notify BewegMeld_Wintergarten_01:motion set WG.MotnIndicator on

zuerst den notify definiert (Name frei wählbar - bei mir WG.MotnIndicatorMotion_Notify, dann der fhem Befehl "notify", dann das Gerät welches den zu prüfenden Wert liefert (bei mir BewegMeld_Wintergarten_01, dann den Wert des Bewegungsmelders ausgelesen - bei mir motion (da ich ja einen prowl bei Bewegung absetzen will, abschließend einen beliebigen Wert in den dummy WG.MotnIndicator geschrieben (da ich anschließend nur überprüfe ob der Dummy diesen Wert hat und dann ein Prowl auslöse, ich hätte dort auch set WG.MotnIndicator christkind hinschreiben können)                       

attr WG.MotnIndicatorMotion_Notify room Wintergarten
den notify dem Wintergarten zugeordnet, damit ich alles an einer Stelle hatte bei der Fehlersuche - braucht man aber nicht

#Prowl Notify
define WG.MotnIndicMotionProwl notify WG.MotnIndicator:on {prowl("Es ist jemand im Wintergarten","Wintergarten","1")}

wieder einen notify angelegt - dieser überprüft ob der dummy auf "on" steht (oder auf christkind ;-)) - falls dem so ist, wird ein prowl ausgelöst - dieser hat auf meinem IPad dann die Überschrift "Wintergarten" und in der nächsten Zeile steht dann "Es ist jemand im Wintergarten"

attr WG.MotnIndicMotionProwl room Wintergarten
den Prowl wieder dem Raum Wintergarten zugeordnet

Bei mir hat es so funktioniert - vielleicht hilft es ja dem ein oder anderen. Ob das System realiabel ist, werden die nächsten Tage zeigen.

Wünsche allen die Ruhe der Nacht!

Sascha