ABwesenheitslicht als Abschreckung für Diebe mit PRESENCE

Begonnen von aqua_chris, 05 Dezember 2013, 23:13:49

Vorheriges Thema - Nächstes Thema

aqua_chris

Hallo zusammen,

ich möchte in unserer Abwesenheit vordeffinierte Lichter zur Abschreckung evtl. Langfinger schalten.
Ziel ist es in der Zeit zwischen 16:30 und 21 Uhr bei "absent" zwei Lichter einzuschalten und eine Pushover Message zu verschicken.

Bisher habe ich es für ganze Stunden wie folgt umgesetzt...

define Abwesenheitslicht_AN notify test_abwesenheitslicht_iPhone_Christian:off { if ($hour ~~ [16..21]) { fhem ("set Licht_EZ on;; set Pushover1 msg 'TEST' 'Abwesenheitslicht AN' '' 0 ''") }}


Funktioniert, sofern ich im Zeitraum von 16-21 Uhr auf "absent" gehe.
Funktioniert NICHT, wenn ich bereits vor 16 Uhr "absent" bin. Ich habe dann etwsa mit dem watchdog aus der veröffentlichten Abwesenheitsautomatisierung experimentiert. Leider jedoch nur mit dem Erfolg das der Code immer grösser wird und ich es trotzdem nicht hin bekomme.

Ferner ist $hour ~~ [16..21] wohl nur mit ganzen Stunden möglich, mir jedoch eigentlich zu ungenau.

--- noch gewünschte Erweiterung ---
Wäre es von zwei pder mehr Handy´s abhängig zu machen. Wenn also wirklich alle Familienmitglieder ausser Haus sind. Derzeit habe ich einen Abwesenheitserkennung mit PRESENCE für mich und meine Frau laufen...

Leider geht mit dieser gewünschten Erweiterung einher, dass ich gerne auch bei Alle_Handys:absent eine vordeffinierte Anzahl von Lampen/Verbrauchern ausschalten will. Ich habe dies mit "structure" umgesetzt, aber leider nur mit dem Erfolg, dass bei jedem "Auslösen" nur eine Lampe der HM-Komponenten, keine Lampe der ELRO´s-Steckdosen abgeschalten wird. Beim erneuten "Auslösen" geht dann die nächste HM-Komponente aus, wieder keine ELRO usw.
Ich habe hierzu alte Beiträge mir der 0.3 Verzögerung gefunden, aber offensichtlich sollte das bereits seit Anfang 2012 gefixed sein und somit die Frage was ich hier falsch macht.
Hier der Code, den ich als letztes getestet hatte:
define Alles_AUS structure Alle_Lichter_aus Licht_Backlight_TV Licht_Deko_Esszimmerfenster Licht_Deko_Terrassentuere Licht_Deko_WZ_Fenster Licht_Vitriene Licht_Deko_Maria_und_Josef Licht_Eingang Licht_EZ Licht_WZ
attr Alles_AUS room Haus

Ich habe das "Auslösen" über das fhem Webinterface gemacht, da ich mit dem PRESENCE aller Handys hier noch das obige Problem habe.
Hoffe Ihr könnt mir helfen.

Gruss
Chris

aqua_chris

Hallo nochmal,

vielleicht ein bischen viel auf einmal gewesen :(

Also mein Problem ist, dass
define Abwesenheitslicht_AN notify test_abwesenheitslicht_iPhone_Christian:off { if ($hour ~~ [16..21]) { fhem ("set Licht_EZ on;; set Pushover1 msg 'TEST' 'Abwesenheitslicht AN' '' 0 ''") }}

nur dann funktioniert wenn ich zwischen 16 und 21 vom Status "present" -> "absent" wechsle.

Wie bekomme ich es hin, dass die Aktion auch ausgeführt wird, wenn ich um 16 Uhr bereits "absent" bin?

Hoffe so ist es klarer und mir kann jemand helfen. Danke.

Gruss
Chris

Dietmar63

Du musst per notify die Anwesenheit der Familien Mitglieder tracken. wenn der trackvalue zwischen 16 und 21 Uhr dann 0 wird oder ist, schaltest du das Licht an.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

aqua_chris

Hallo Dietmar,

danke für den Tipp, leider binge ich es nicht hin. Ich denke es hackt an meinem Verständnis fürs notify...

Folgendes habe ich probiert...

###
define Alle_Handys_anwesend dummy
attr Alle_Handys_anwesend room System
define Alle_Handys_anwesend_On notify iPhone_Christian on|off { if ($iPhone_Christian:on) { fhem ("set Alle_Handys_anwesend on") } elsif ($iPhone_Iris:on) { fhem ("set Alle_Handys_anwesend on") } else { fhem ("set Alle_Handys_anwesend off") }}
define Alle_Handys_anwesend_On notify iPhone_Iris on|off { if ($iPhone_Christian:on) { fhem ("set Alle_Handys_anwesend on") } elsif ($iPhone_Iris:on) { fhem ("set Alle_Handys_anwesend on") } else { fhem ("set Alle_Handys_anwesend off") }}

####
define Min_ein_Handy_anwesend dummy
attr Min_ein_Handy_anwesend room System
define Handy1_anwesend_On notify iPhone_Christian on|off { if ($iPhone_Christian:on) &&  ($iPhone_Iris:on) { fhem ("set Min_ein_Handy_anwesend on") } else { fhem ("set Min_ein_Handy_anwesend off") }}
define Handy2_anwesend_On notify iPhone_Iris on|off { if ($iPhone_Christian:on) &&  ($iPhone_Iris:on) { fhem ("set Min_ein_Handy_anwesend on") } else { fhem ("set Min_ein_Handy_anwesend off") }}

#####
define Min_ein_Handy_anwesend dummy
attr Min_ein_Handy_anwesend room System
define Handy1_anwesend_On notify iPhone_Christian on|off { if ($iPhone_Christian:on) { fhem ("set Min_ein_Handy_anwesend on") } elsif ($iPhone_Iris:on) { fhem ("set Min_ein_Handy_anwesend on") } else { fhem ("set Min_ein_Handy_anwesend off") }}
define Handy2_anwesend_On notify iPhone_Iris on|off { if ($iPhone_Christian:on) { fhem ("set Min_ein_Handy_anwesend on") } elsif ($iPhone_Iris:on) { fhem ("set Min_ein_Handy_anwesend on") } else { fhem ("set Min_ein_Handy_anwesend off") }}


Hm, Licht für ich ? :(

Gruss
Chris

Puschel74

#4
Hallo,

erstmal so:

define Alle_Handys_anwesend_On notify iPhone_Christian:(on|off) { if (Value("iPhone_Christian") eq "on") ...

(Ich hoffe das mit der Klammer stimmt so)  8)

Ich glaub das mit dem notify übe ich noch etwas  :o
Vergiss den Blödsinn von mir - klappt auch nicht.

Ein bischen Geduld bitte aber evtl. ist ja jemand anders schneller.

Grüße

Edith: So. Das klappt zumindest mit meinen Dummys:
define Alle_Handys_anwesend_On notify iPhone_.*:(on|off) {
  if ((Value("iPhone_Christian") eq "on") && (Value("iPhone_Iris") eq "on)) {
    fhem("set Alle_Handys_anwesend on");
  }
  else {
    fhem("set Alle_Handys_anwesend off");
  }
}
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.

aqua_chris

Hallo Puschel,

ich bekomme beim Eintrag von
define Alle_Handys_anwesend dummy
attr Alle_Handys_anwesend room System
define Alle_Handys_anwesend_On notify iPhone_.*:(on|off) {
  if ((Value("iPhone_Christian") eq "on") && (Value("iPhone_Iris") eq "on)) {
    fhem("set Alle_Handys_anwesend on");
  }
  else {
    fhem("set Alle_Handys_anwesend off");
  }
}

die Ausgabe:
Unknown command if, try help. Unknown command fhem("set, try help. Unknown command }, try help. Unknown command else, try help. Unknown command fhem("set, try help. Unknown command }, try help. Unknown command }, try help.

rereadcfg gibt:

Unknown command if, try help.
Unknown command fhem("set, try help.
Unknown command }, try help.
Unknown command else, try help.
Unknown command fhem("set, try help.
Unknown command }, try help.
Unknown command }, try help.

Gruss
Chris

Puschel74

Hallo,

hier fehlt ein "

if ((Value("iPhone_Christian") eq "on") && (Value("iPhone_Iris") eq "on"))

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.

Dietmar63

fehlen nicht auch die \ um anzudeuten, dass eine Fortsetzungszeile folgt?
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

aqua_chris

#8
Hallo,

define Alle_Handys_anwesend dummy
attr Alle_Handys_anwesend room System
define Alle_Handys_anwesend_On notify iPhone_.*:(on|off) {
  if ((Value("iPhone_Christian") eq "on") && (Value("iPhone_Iris") eq "on")) {
    fhem("set Alle_Handys_anwesend on");
  }
  else {
    fhem("set Alle_Handys_anwesend off");
  }
}


bekomme ich ->

Unknown command if, try help. Unknown command fhem("set, try help. Unknown command }, try help. Unknown command else, try help. Unknown command fhem("set, try help. Unknown command }, try help. Unknown command }, try help.

Edit:
\ setzen habe ich auch versucht, bekomme dann unterschiedliche Fehlermeldungen, aber leider nicht alle weg "}" Fehler bleibt mir 3x....

Puschel74

Hallo,

schreibst du das direkt in die fhem.cfg?

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.

Dietmar63

so etwa müßte es aussehen - bitte die entsprechende doku ansehen.

define Alle_Handys_anwesend dummy
attr Alle_Handys_anwesend room System
define Alle_Handys_anwesend_On notify iPhone_.*:(on|off) {\
  if ((Value("iPhone_Christian") eq "on") && (Value("iPhone_Iris") eq "on")) {\
    fhem("set Alle_Handys_anwesend on");\
  }\
  else {\
    fhem("set Alle_Handys_anwesend off");\
  }\
}
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Puschel74

#11
Hallo,

oder sich nicht um Zeilenenden, -abschlüsse und Verdoppelungen kümmern und ausschliesslich das DEF eines notify bearbeiten.

Grüße

Edith:

define Alle_Handys_anwesend_On notify iPhone_.*:(on|off) {\
  if ((Value("iPhone_Christian") eq "on") && (Value("iPhone_Iris") eq "on")) {\
    fhem("set Alle_Handys_anwesend on");;\
  }\
  else {\
    fhem("set Alle_Handys_anwesend off");;\
  }\
}

So sollte der Code auch direkt in der fhem.cfg funktionieren - die ; mussten noch verdoppelt werden
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.

Strippenzieher

#12
Ich hatte ein ähnliches Problem mal und habe es aber mit einer structure gemacht die Status present hatte, wenn eines der "Presences" on war, dass schöne daran ist, dass man nur die Structure vergrößert mit mehr Presences und nicht die komplette watchdog Funktion ändern muss, dabei hatte ich vergessen die beiden watchdog on und off wieder auf defined zurück zu setzen, sprich watchdog_off setzt watchdog_on wieder auf defined und umgekehrt, dadurch waren irgendwann beide watchdog triggered und hatten ihre Arbeit beendet. Vllt. muss der Befehl bei dir auch mit integriert werden ...

Habe den Code selbst gerade nicht zur Hand aber wenn ich wieder zuhause bin such ich den mal raus, wenn Interesse besteht.

MFG Chris

aqua_chris

Zitat von: Puschel74 am 11 Dezember 2013, 15:00:56
Hallo,

schreibst du das direkt in die fhem.cfg?

Grüße

Hallo,

ja, derzeit schon, bin mir noch unschlüssig für alle "Bereiche" eine eigene Datei mit einzulesen, aber ich erkenne auch das es bereits jetzt sehr unübersichtlich wird. Wie macht Ihr denn das, oder was ist die Empfehlung?

Gruss
Chris

aqua_chris

Zitat von: Strippenzieher am 11 Dezember 2013, 16:27:08
Ich hatte ein ähnliches Problem mal und habe es aber mit einer structure gemacht die Status present hatte, wenn eines der "Presences" on war, dass schöne daran ist, dass man nur die Structure vergrößert mit mehr Presences und nicht die komplette watchdog Funktion ändern muss, dabei hatte ich vergessen die beiden watchdog on und off wieder auf defined zurück zu setzen, sprich watchdog_off setzt watchdog_on wieder auf defined und umgekehrt, dadurch waren irgendwann beide watchdog triggered und hatten ihre Arbeit beendet. Vllt. muss der Befehl bei dir auch mit integriert werden ...

Habe den Code selbst gerade nicht zur Hand aber wenn ich wieder zuhause bin such ich den mal raus, wenn Interesse besteht.

MFG Chris

...klar, lass mal sehen, ich lerne gerne dazu ...