Hallo,
ich hab FHEM seit 6 Monaten aufm Raspi laufen.. Ich hab den Alexa Skill dank der hilfe hier im Forum zum laufen bekommen...Sämtliche Geräte sind eingebunden, selbst ein Notify habe ich, dank google, auch anlegen können. Die DOEIF´s sind mir als "nichtprogrammierer" dann doch zu heftig.. Besonders da ich an den Notify´s schon scheitere.. Ich habe im Board geschaut, mir die Wiki zu den Anfängerfragen ( Notify ) durchgelesen, bekomme es aber nicht hin...
Auf folgende Meldung im Event Monitor möchte ich gern eine Steckdose auf an schalten
2017-02-09 20:04:25 netatmo netatmo_C70_ee_50_17_19_11 event_type: movement
Eigentlich nicht schwer wenn man sich die ersten Schritte anschaut
define n_mySchalter1_on notify mySchalter1:on set myLampe1 on
Meine Variante davon sieht so aus ( dann würde ich es verstehen )
define EchoOn notify netatmo netatmo_C70_ee_50_17_19_11 event_type:movement set FBDECT_fbahahttp_08761_0277450 On;
geht aber nicht
Mir wurde empfohlen Sternchen als Platzhalter zu nehmen
define EchoOn notify netatmo netatmo_C70_ee_50_17_19_11.*event_type.*move fhem set FBDECT_fbahahttp_08761_0277450 on";
geht auch nicht..
Die einzige Notify die bis jetzt bei mir funktioniert ist diese hier ( in Verbindung mit einer Harmony Elite und der Steckdose )
define SteckdoseTVTaste notify HarmonyController:keypress.*Home set FBDECT_fbahahttp_08761_0277630 toggle;
Danach ( quasi als ich diesen Post geschrieben habe ) ist mir noch folgende Kombi eingefallen
define EchoOn notify netatmo netatmo_C70_ee_50_17_19_11:event_type.*movement set FBDECT_fbahahttp_08761_0277450 On;
geht auch nicht :-(
Bitte nicht falsch verstehen, möchte hier auch nicht nur die korrekte Bezeichnung haben.. Ich möchte es auch irgendwie verstehen was ich falsch gemacht habe ( was ich natürlich aus einem funktionierendem Code ableiten könnte :-) )
Die sauberste Lösung die ich gerne hätte wäre wohl nur mit einem DOIF hinzubekommen. Quasi wenn ein "move" stattgefunden hat prüfe ob Steckdose an ist, wenn nicht an schalten... Aber das geht ja wahrscheinlich nur per DOIF.
Kann mir jemand erklären was fehlt...Und vor allem warum?
Hallo, triggere das notify mal und schau dir im Event Monitor an wie das Event aussieht, danach kannst du dann dein notify bauen, so wie das aussieht willst du aber auf mehrere Bedingungen reagieren, dass geht so aber nicht.
VG
Frank
Hallo Hotbird,
deine Event sieht so aus:
2017-02-09 20:04:25 netatmo netatmo_C70_ee_50_17_19_11 event_type: movement
Wenn Du die commandref für notify (https://fhem.de/commandref_DE.html#notify)aufmerksam liest, steht da Gerätename:Event
netatmo_C70_ee_50_17_19_11 ist Dein Gerätename
event_type: movement ist Dein Event
beides musst Du mit Doppelpunkt (extra) zum trigger verbinden. Dein Event entält aber ein Leerzeichen, das geht so im regEx nicht, das muss man "ersetzen" -> ein Zeichen am einfachsten durch einen Punkt. Ein zusätzlicher Stern wären beliebig viele Zeichen.
netatmo_C70_ee_50_17_19_11:event_type:.movement wäre exakt
netatmo_C70_ee_50_17_19_11:event_type:.* da wäre egal was hinter even_type steht.
netatmo_C70_ee_50_17_19_11:.* da wäre egal was im Event steht.
netatmo_C70_ee_50_17_19_11 wäre auch egal was im Event steht, jeder Event auf das Gerät würde triggern.
Merke: Der zusätzliche ":" trennt Gerät und Event. Der ":" hinter event_type ist einfach Bestandteil des Events!
Eigentlich kannst Du im notify den regExp Wizard verwenden, ich bin mir nicht sicher bis zu welcher "Tiefe" der bei Deinem Event mitgeht.
Alles klar?
Gruß Otto
Hallo Otto123
so langsam fange ich an es zu verstehen... Also merke erst einmal Leerzeichen sind ganz schlecht :-) Was mich nur ein wenig stutzig macht ist, dass im Event Monitor 2x netatmo steht. Quasi netatmo netatmo. Ist aber auch bei meinen DECT Steckdosen so. Hier steht FBDECT FBDECT_blabla . Das würde also heissen, dass Fhem sich nicht die Bezeichnung des "Gerätes" wie im Event Monitor zieht, sondern schon nur das direkte Gerät..
dann wäre mein richtiger Notify Code also
define EchoOn notify netatmo_C70_ee_50_17_19_11:event_type:.movement set FBDECT_fbahahttp_08761_0277450 On;
(geht auch nicht )
oder muss ich das "trigger Commando" auch noch in { setzen ?
define EchoOn notify netatmo_C70_ee_50_17_19_11:event_type:.movement {Fhem "set FBDECT_fbahahttp_08761_0277450 On"};
Nach der Eingabe muss man es speichern.. Sollte man nach jedem mal speichern auch einen shutdown restart durchführen?
Hi,
funktioniert denn set FBDECT_fbahahttp_08761_0277450 On
in der Kommandozeile?
Wozu ist das ; am Ende? Es könnte sein das stört im notify, bin mir nicht sicher
Nein, die {} brauchst Du im notify nicht.
Wenn Du am Ausführungsteil zweifelst dann schreibe dort einfach { Log 1, "Hello"}
Merke da müssen {} sein!
Auch diesen Befehl kannst Du direkt in der Kommandozeile testen.
Zweimal netatmo ist deswegen weil das Modul netatmo heisst und dein Gerät netatmo_bla heisst. Du kannst Dein Gerät auch Willi nennen. Autocreate erzeugt eben einen Namen nach seiner "Logik" und ein netatmo Gerät netatmo_bla zu nennen ist erstmal nicht unlogisch ;D
Gruß Otto
Müsste es nicht on statt On sein??
VG
Frank
Krass.. Ihr habt beide den entscheidenden Tip gegeben :-)
set FBDECT_fbahahttp_08761_0277450 On
funktionierte nicht...
Bevor Franky08 geschrieben hat habe ich dann mal "on" anstatt "On" eingegeben. Danach hat er geschaltet :-)
der richtige Befehl ist also
define EchoOn notify netatmo_C70_ee_50_17_19_11:event_type:.movement set FBDECT_fbahahttp_08761_0277450 on
damit funktioniert es :-) endlich :-)
Da muss man auch erstmal drauf kommen... erstens auf das :. und dann noch auf die groß und Kleinschreibung des Befehls...
Ich werde jetzt noch ein wenig testen bezüglich der Schaltung wenn es schon an ist ( was dann passiert :-) ) Hoffentlich nichts.. An ist ja an :-)
Vielen vielen lieben Dank für die Geduld und das Erklären! Ich hab echt schon fast verzweifelt! Glaube nach dem großen O hätte ich noch Tage gesucht....
Wenn Du den set Befehl mit On eingibst bekommst eine Fehlermeldung. Im Auswahlmenü bei deinem Gerät bekommst Du On nicht angeboten und im Log hast Du auch eine Fehlermeldung. Die enthalten in vielen Fällen wirklich den Fehler 8)
Gruß Otto