FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: EnderPhilipp am 04 Januar 2017, 23:50:43

Titel: Notify geht nicht
Beitrag von: EnderPhilipp am 04 Januar 2017, 23:50:43
Hi Liebe FHEM-Community,

ich habe mir folgendes Notify erstellt, um FHEM per Whatsapp zu steuern:


#Whatsappempfänger
define Whatsappempfaenger notify iPhone:message.* {\
    if ($EVTPART1 eq 'Licht') {\
        if ($EVENT =~ 'an') {\
            fhem("set Stehlampe on");;\
            fhem("set LEDStreifen on");;\
            fhem("set Deckenlampe on");;\
            fhem("sleep 1.0 ;; set Tischlampe on");;\
            fhem("");;\
            fhem("set iPhone send Licht ist nun eingeschaltet ...");;\
        }\
        elsif ($EVENT =~ 'aus') {\
            fhem("set Stehlampe off");;\
            fhem("set LEDStreifen off");;\
            fhem("set Deckenlampe off");;\
            fhem("sleep 1.0 ;; set Tischlampe off");;\
            fhem("set iPhone send Licht ist nun ausgeschaltet ...");;        }\
    }\
    elsif ($EVTPART1 eq 'Zocken') {\
        fhem("set Computer on");;\
        fhem("set Monitor on");;\
        fhem("set LEDStreifen off");;\
        fhem("set Tischlampe off");;\
        fhem("set Radio off");;\
        fhem("sleep 1.0 ;; set Stehlampe off");;\
    }\
    elsif ($EVTPART1 eq 'GTA') {\
        fhem("set GTA on");;\
        fhem("set Monitor on");;\
        fhem("set $NAME send GTA wurde gestartet");;\
    }\
    elsif ($EVTPART1 eq 'Aussentemperatur') {\
        my $temperature = ReadingsVal("Aussensensor", "temperature", "");;\
        fhem("set $NAME send Aussentemperatur: $temperature");;\
    }\
elsif ($EVTPART1 eq 'Heizung') {\
        fhem("set Heizung_Clima desired-temp $EVTPART2");;\
        fhem("set iPhone send Heizung wurde auf $EVTPART2 °C gestellt.");;\
}\
elsif ($EVTPART1 eq 'Stehlampe') {\
        fhem("set $EVTPART1 on");;\
        fhem("set iPhone send $EVPART1 wurde eingeschaltet.");;\
}\
    else {\
        fhem("set $NAME send Befehl nicht bekannt");;\
    }\
}


Nur irgendwie passiert nichts, wo liegt der Fehler ?  :o

Mfg
Philipp ;D
Titel: Antw:Notify geht nicht
Beitrag von: Otto123 am 05 Januar 2017, 00:43:41
Hallo Phillip,

die Frage: beim notify passiert nichts, wo liegt der Fehler? ist immer wieder gleich zu beantworten:
Entweder am Ausführungsteil, kann man meist separat testen.
Oder an der Bedingung, die kannst Du im Eventmonitor prüfen.

Also wo liegt Dein Problem, an der Bedingung oder im Ausführungsteil?  ???

Gruß Otto
Titel: Antw:Notify geht nicht
Beitrag von: CoolTux am 05 Januar 2017, 07:45:34
Ein list des Notify wäre hilfreich gewesen. Geraten. Probiere mal

define Whatsappempfaenger notify iPhone.message:.*
Titel: Antw:Notify geht nicht
Beitrag von: EnderPhilipp am 05 Januar 2017, 08:30:43
Erstmal danke für eure Antworten. :D

Ich habe mal geguckt was passiert, wenn ich die Nachricht ""Aussentemperatur" an FHEM schicke.

Im Eventmonitor steht:
2017-01-05 08:15:08 yowsup iPhone chatstate: received
2017-01-05 08:15:08 yowsup iPhone message: Aussentemperatur


Im Log steht:
2017.01.05 08:13:57 3: iPhone: commands not allowed
2017.01.05 08:14:15 3: iPhone: commands not allowed


Zum Whatsappempfänger steht Folgendes im Log:

Whatsappempfaenger return value: Global symbol "$EVTPART2" requires explicit package name at (eval 74937) line 36.
Global symbol "$EVTPART2" requires explicit package name at (eval 74937) line 37.
Global symbol "$EVPART1" requires explicit package name at (eval 74937) line 41.


Was kann ich daraus schließen?  :o


Mfg
Philipp  ;D
Titel: Antw:Notify geht nicht
Beitrag von: Brice am 05 Januar 2017, 08:47:38
Commands not allowed kommt, wenn das Notify fehlerhaft ist. Könnte das an den sleeps liegen?

Ich würde so vorgehen, dass ich das notify zunächst auf das Notwendigste abspecke, teste und dann schrittweise wieder aufbaue.

#Whatsappempfänger
define Whatsappempfaenger notify iPhone:message.* {\
    if ($EVTPART1 eq 'Licht') {\
        if ($EVENT =~ 'an') {\
            fhem("set Stehlampe on");;\
            fhem("set iPhone send Licht ist nun eingeschaltet ...");;\
        }\
        elsif ($EVENT =~ 'aus') {\
            fhem("set Stehlampe off");;\
            fhem("set iPhone send Licht ist nun ausgeschaltet ...");;        }\
    }\
    elsif ($EVTPART1 eq 'Zocken') {\
        fhem("set Computer on");;\
    }\
    else {\
        fhem("set $NAME send Befehl nicht bekannt");;\
    }\
}


Edit: stelle gerade fest, dass ich die Meldung auch im Log habe, obwohl das Notify korrekt ausgeführt wird:

2017.01.05 08:51:10 3: WhatsAppFHEM: commands not allowed
2017.01.05 08:51:10 3: WhatsAppFHEM: sending /message send 49171xxxxxxx 'SetTopBox/TV ist: absent'
2017.01.05 08:51:10 3: WhatsAppFHEM: sending /message send 49171xxxxxxx 'XXXX ist: present'
2017.01.05 08:51:10 3: WhatsAppFHEM: sending /message send 49171xxxxxxx 'YYYY ist: absent'
Titel: Antw:Notify geht nicht
Beitrag von: EnderPhilipp am 05 Januar 2017, 09:10:36
Danke!
Dieses Notify geht, dann werde ich darauf aufbauen.  8)
Titel: Antw:Notify geht nicht
Beitrag von: Otto123 am 05 Januar 2017, 09:46:54
Zitat von: EnderPhilipp am 05 Januar 2017, 08:30:43
Im Eventmonitor steht:
2017-01-05 08:15:08 yowsup iPhone chatstate: received
2017-01-05 08:15:08 yowsup iPhone message: Aussentemperatur

Was kann ich daraus schließen?  :o
Moin Philip,

naja jetzt einfach in die Commandref schauen was da zum notify steht
ZitatFührt eine oder mehrere Anweisungen aus, wenn ein Event generiert wurde, was dem <Suchmuster> (Gerätename oder Gerätename:Event) entspricht.
Gerätename -> iPhone
Event -> message: Aussentemperatur

Dein Suchmuster war also nicht verkehrt. Beachte! Der Doppelpunkt hinter iPhone trennt Gerät vom Event, der Doppelpunkt hinter message ist Teil des Events!

Ich würde Dir raten den umfangreichen Perl Code in 99_myUtils zu packen und im notfy nur einen Funktionsaufruf zu machen. Damit kannst Du auch besser testen.
Ein simpler Log Eintrag im Ausführungsteil zeigt Dir ob der Event auch ankommt -> { Log 1, "Hello"}

Gruß Otto
Titel: Antw:Notify geht nicht
Beitrag von: EnderPhilipp am 07 Januar 2017, 22:57:44
Habe bisher noch nicht mit der 99_myUtils gearbeitet, wie müsste die denn dann aussehen ? ???
Titel: Antw:Notify geht nicht
Beitrag von: Puschel74 am 07 Januar 2017, 23:01:41
So wie im Wiki beschrieben  ;)
Dafür gibt es ja das Wiki  8)
Titel: Antw:Notify geht nicht
Beitrag von: EnderPhilipp am 07 Januar 2017, 23:06:48
Und wie kann ich dann das in der 99 myUtils Erstellte dann in Fhem aufrufen ?  :o
Titel: Antw:Notify geht nicht
Beitrag von: Puschel74 am 07 Januar 2017, 23:19:41
So wie im Wiki beschrieben  ::)
Ich such mal für dich - einen Moment Bitte.

Edith: Gefunden
https://wiki.fhem.de/wiki/99_myUtils_anlegen (https://wiki.fhem.de/wiki/99_myUtils_anlegen)
Alles weitere sollter sich per SuFu im Forum finden lassen.
Titel: Antw:Notify geht nicht
Beitrag von: Benni am 08 Januar 2017, 08:54:18
Über den Wiki-Eintrag zum notify (https://wiki.fhem.de/wiki/Notify) (liegt ja evtl. nahe, in diesem Zusammenhang dort auch mal reinzuschauen) kommt man übrigens (unter Hinweise) auch noch auf folgenden wertvollen Beitrag: https://forum.fhem.de/index.php/topic,38520.msg307325.html#msg307325

Ansonsten mal sowas hier versuchen: https://www.google.de/search?q=site%3Aforum.fhem.de&rct=j#q=site:forum.fhem.de+notify+99_myutils