Pushbullet und Fensterkontakte richtig abfragen

Begonnen von t1me2die, 09 November 2016, 13:57:32

Vorheriges Thema - Nächstes Thema

t1me2die

Hallo liebe Community, ich habe drei Fensterkontakte bei mir zuhause im Einsatz und möchte diese gerne überwachen, dazu habe ich folgende Routine mir geschrieben:

Zitat
sub FensterCheck()
{
  if (Value("HM_4E5349") eq "open")
  {
    fhem "set Push_iPhone_Mathze message Das Fenster im Wohnzimmer ist offen! | Wohnzimmerfenster ist offen!"
  }
  elsif (Value("HM_4E5349") eq "closed")
  {
    fhem "set Push_iPhone_Mathze message Das Fenster im Wohnzimmer ist geschlossen! | Wohnzimmerfenster ist zu!"
  }
  elsif (Value("HM_4E3565") eq "open")
  {
    fhem "set Push_iPhone_Mathze message Das Fenster im Schlafzimmer ist offen! | Schlafzimmerfenster ist offen!"
  }
  elsif (Value("HM_4E4BCC") eq "open")
  {
    fhem "set Push_iPhone_Mathze message Das Fenster im Arbeitszimmer ist offen! | Arbeitszimmerfenster ist offen!"
  }
}

Nun habe ich noch 3 Notify's erstellt und diese auf das jeweilige Gerät gelegt, so z.B.:

Zitat
define Push_Fenster_AZ notify HM_4E4BCC:.* { FensterCheck() }

Aber irgendwie bekomme ich leider keine Nachrichten in / via Pushbullet.
Wenn ich die set-Befehle manuell ausführe, dann klappt es selbstverständlich, also muss ich irgendwo wohl einen Denkfehler haben  ::)

Danke für eure Hilfe.

Gruß
Mathias

DeeSPe

sub FensterCheck($$)
{
  my ($name,$event) = @_;
  if ($event eq "open")
  {
    fhem "set Push_iPhone_Mathze message Das ".AttrVal($name,"alias",$name)." ist offen!";
  }
  else
  {
    fhem "set Push_iPhone_Mathze message Das ".AttrVal($name,"alias",$name)." ist nun geschlossen!";
  }
}


notify:
define n_Fenster_check notify HM_4E5349|HM_4E3565|HM_4E4BCC:open|closed {Fenstercheck($NAME,$EVENT)}

So vielleicht?

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

DeeSPe

Eine ähnliche Funktion hatte ich auch schon einmal hier vorgestellt. Allerdings zum Prüfen aller Fenster beim Verlassen des Hauses.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

t1me2die

Hallo Dan, danke für deine Hilfe, so übersichtlich hätte ich den Code niemals hinbekommen  :D

Die HomeMatic Fensterkontakte, die ich habe kommunizieren spätestens alle 60Minuten (gefühlt) mit meinem Pi. Sprich ich müsste ungefähr alle 60Minuten eine Push Benachrichtigung erhalten, dass das Fenster zu ist.
Diese Benachrichtigung ist auch soeben eingetroffen, leider nicht 1x für das jeweilige Fenster, sondern anscheiend 5x?

Ich kann mir das leider nicht erklären.

Gruß
Mathias

DeeSPe

event-on-change-reading ist dein Freund!

Gruß
Dan

EDIT: Damit bekommst Du wirklich nur Nachrichten wenn sich der Fensterstatus ändert!
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

DeeSPe

Und es geht noch übersichtlicher wenn man es auf die Spitze treiben will!

sub FensterCheck($$)
{
  my ($name,$event) = @_;
  my $status = "ist offen";
  $status = "ist nun geschlossen" if ($event eq "closed");
  fhem "set Push_iPhone_Mathze message Das ".AttrVal($name,"alias",$name)." $status."!";
}


Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe