Notify / IF / Value / pushover leider ein Problem

Begonnen von Trebor5, 16 September 2014, 20:20:30

Vorheriges Thema - Nächstes Thema

Trebor5

Hallo alle zusammen,

ich bekomme bei diesem code einfach keine Push Nachricht.

define act_on_ALARM1 notify ANLAGE_STATUS:scharf { if ( Value ("Haustuer") eq "open"){{ system ("curl -s -F 'token=4711' -F 'user=4711' -F 'message=ES WURDE ALARM VON DER HAUSTUER AUSGELÖST' https://api.pushover.net/1/messages.json")} {fhem("set Flurlicht on ;; set Hupe on ;; define verzoegert_Flurlicht_ALA1 at +00:05:00 set Flurlicht off ")}}}


kann mir jemand einen Stupser geben wo da der Fehler ist ?

Wenn die erste aufgabe mal gelöst ist würde ich gerne beide Abfragen zu einer generieren aber da hörts dann einfach bei mir auf.

2te Abfrage
define act_on_ALARM2 notify ANLAGE_STATUS:scharf { if ( Value ("FENSTER.*") eq "open"){{ system ("curl -s -F 'token=4711' -F 'user=4711' -F 'message=ES WURDE EIN ALARM VON EINEM FENSTER AUSGELÖST' https://api.pushover.net/1/messages.json")} {fhem("set Flurlicht on ;; define verzoegert_Flurlicht_ALA2 at +00:05:00 set Flurlicht off ")}}}


Natürlich könnte nur eine Nachricht als Text ala "Alarm wurde ausgelöst" oder so gesendet werden

Währe um echte Hilfe sehr dankbar da ich an diesem Problem schon länger hänge.


Odroid N2,Hauptsensoren Homematic + 1 Wire + 8Kanal Homematic auf Relay Schaltung. Forum Beiträge sind meine letzte Hoffnung nach Stundenlangen erfolglosen suchen und probieren.

Jaydee

Hi Trebor5,

ich hab gerade leider nicht die Zeit/Ruhe mich durch die Klammern zu wühlen, daher pack ich einfach mal meine Lösung dafür dran - in der Hoffnung, dass dir das auch wqeiterhilft.

Allem voran: es gibt ein Pushover-Modul, welches das Ganze erheblich übersichtlicher macht (sofern nichts in deiner Konfiguration (Fritzbox??) gegen die Verwendung spricht.


define HaustuerNTFY notify TK_Haustuer:open {\
  \
  if(ReadingsVal("Twilight","light","6") < 4 && Value("HM_DSD01_1") eq "off"){\
    fhem("set HM_DSD01_1 on-for-timer 120");;\
  }\
  \
  \
  my $ort=ReadingsVal("Ort","state","unbekannt");;\
  if($ort =~ m/(zuhause|ganznah)/){\
      fhem("set HUEDevice1 blink 3 1");;\
  }\
  else {\
      fhem("set Pushover msg 'Tueralarm' 'Haustuer wurde in Abwesenheit geoeffnet' 'iPhone5' 1 'alien' ");;\
  }\
}



Das Ganze tut folgendes:
Wenn die Haustür geöffnet wird, wird zunächst via Twilight geprüft, wie hell es noch ist. Wenn es dunkel ist, wird eine Art "Willkommens-Licht" für 2 Minuten eingeschaltet.

Dann wird geprüft, ob die Tür wohl von mir selbst geöffnet wurde - der Dummy "Ort" wird geprüft, ob ich als zuhause oder ganz in der Nähe gemeldet bin.
Wenn dies der Fall ist, bekomme ich (z. Zt. noch als Test-Feedback) ein dreimaliges Blinken einer Hue-Lampe.

Wenn ich nicht in der Nähe meiner Wohnung bin wird stattdessen eine Pushover-Meldung an mein Handy versendet (über o.g. Pushover-Modul).

Ich hoffe, dass dies für Dich irgendwie hilfreich ist.

LG
Jan

fhainz

#2
Hallo!

Ich hab mal dein notify kopiert und dann im DEF Zeilenumbrüche eingefügt damit das ganze übersichtlicher wird. Dann fällt auch schnell auf das du zu viele { } verwendet hast.

So sieht das mit Zeilenumbrüche aus:

ANLAGE_STATUS:scharf {
  if ( Value ("Haustuer") eq "open")
  {
    {
      system ("curl -s -F 'token=4711' -F 'user=4711' -F 'message=ES WURDE ALARM VON DER HAUSTUER AUSGELÖST' https://api.pushover.net/1/messages.json")
    }
    {
      fhem("set Flurlicht on ; set Hupe on ; define verzoegert_Flurlicht_ALA1 at +00:05:00 set Flurlicht off ")
    }
  }



So sieht das für mich richtig aus (wieder im DEF):
ANLAGE_STATUS:scharf {
  if ( Value ("Haustuer") eq "open")
  {
    system ("curl -s -F 'token=4711' -F 'user=4711' -F 'message=ES WURDE ALARM VON DER HAUSTUER AUSGELÖST' https://api.pushover.net/1/messages.json");
    fhem("set Flurlicht on ; set Hupe on ; define verzoegert_Flurlicht_ALA1 at +00:05:00 set Flurlicht off ");
  }
}


Aber wie schon jaydee erwähnt hat gibt es ein Pushover Modul mit dem das viel einfacher geht aber ob das auf einer Fritzbox funktioniert weiß ich nicht. Musst du versuchen.

Edit:
Bist du dir sicher das dein notify mit dem regexp ANLAGE_STATUS:scharf überhaupt triggert? Das siehst du im STATE des notifys da sollte dann die Zeit drin stehen.

Grüße