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

Wow,

ruhig Blut... Die Unterstützung hier im Forum ist Klasse und wenn man mir indirekt "unterstellen" mag nicht ausreichend gesucht zu haben, okay. Wenn Ihr meint, dann ist das so. Die Beiträge habe ich alle gelesen und unterschiedliche Vorgehensweisen zur Bearbeitung zu "erahnen" ist nicht mein Ding. Auf Grund der Tatsache das ich auch fam. mehr als andere eingebunden bin und nicht denke etwas falsch gemacht zu haben war das mein letzter Beitrag. Will nicht das sich hier jemand wegen mir aufregen muss.

Danke an all die, die mich so kräftig unterstützt haben. Toll von Euch.

Und den Andere. (Sätze fängt man nicht mit UND an) , trotzdem danke, Ihr seid sicherlich auch in Eurer Gemeinschaft die Besten. Danke das Ihr Euch die Mühe gemacht habt meinen ..... zu lesen.

Einen letzten Gruss
Chris

Strippenzieher

#31
Ich denk nicht, dass hier irgendwo Blutwurst gekocht wird, ich unterstelle jemanden auch nicht er habe nicht ausreichend Informationen gesammelt, das ging eher in Richtung, dass es wirklich nicht einfach ist, in dem ganzen Überfluss an Informationen hier, den richtigen oder einen geeigneten Weg zu finden. Das Kommentar von Puschel hat mich wohl auf dem falschen Fuß erwischt, wahrscheinlich auch weil er ja eigentlich auch recht hat ...  Wenn man es nicht über FhemWEB gemacht hätte sondern gleich in FHEM.cfg eingetragen hätte, wär der Fehler vielleicht nicht aufgetreten da ja nach dem speichern beide defines gleich fertig gewesen wären. Aber viel interessanter wäre eigentlich, ob denn jetzt alles auch so geht wie du dir es vorgestellt hast? Das mit dem State "ON" verstehe ich nicht ganz normal steht bei mir defined oder triggered ...

MFG Chris

Puschel74

Hallo,

hier kocht keine Wurst  ;D
Keine Panik.

Zitatund wenn man mir indirekt "unterstellen" mag nicht ausreichend gesucht zu haben, okay.
Ich denke mal das ich nicht damit gemeint bin.
Ich "unterstelle" hier niemandem etwas.

ZitatDie Beiträge habe ich alle gelesen und unterschiedliche Vorgehensweisen zur Bearbeitung zu "erahnen" ist nicht mein Ding.
Da bist du nicht alleine.

ZitatWill nicht das sich hier jemand wegen mir aufregen muss.
Ummrührn  8)
Hier regt sie niemand auf.

Zitat(Sätze fängt man nicht mit UND an)
Ok. Waren einige UND drinnen.
Ich versuch mich zu bessern   ::)

Aber ich bin auch schon dran eine Beschreibung in Form eines Tutorial - wie man FHEM ohne Hardware kennen lernen kann - zusammen zu stellen.
Erstmal FHEM kennen lernen - vor allem das Logfile, der Event Monitor kommt dann im zweiten Teil  ;)
Und wie man erstmal mit 2 Dummy ein notify auslösen kann.
Das ganze dann noch gewürzt mit at und etwas sunset/sunrise und im Anschluss und im Anschluss der Weekdaytimer.
Die 99_myUtils kommt dann in Teil 4  ;D
Dazwischen fällt mir schon noch was ein.

Aber da auch ich familiär nicht als Single in einer 2 Zimmer-Wohnung hänge (nix gegen Singels in 2 Zimmer-Wohnungen) und auch beruflich kurz vor den Feiertagen noch gut was um die Ohren hab macht sich das leider auch nicht grad so eben neben her.
Ich brauch noch ein bischen Zeit aber wenn ich dann ab Freitag endlich mal 3 Wochen Urlaub hab werd ich hoffentlich was vorwärts bringen.

Auch wenn es für den einen oder anderen zu spät kommen mag - sorry.

Also mal nicht alles gleich so persönlich nehmen.

Grüße

P.S.: Ich verfogle den Beitrag nicht weil ich "jemandem was unterstellen" möchte sondern weil ich hoffe etwas zu lernen.
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.

Mitch

Wollte mich mal kurz einklinken, weil ich auch vor einem ähnlichen Problem stand.

ich habe das einfach mit einem einzigen Notify gelöst, ich denke das "belastet" das System weniger:
define act_on_Nachtlicht_an notify Nachtlicht:on { fhem "define Securitylicht at *{sunset('REAL',0,'16:00','23:00')} set FS20_4eb100 on-till 23:00" }

Zum Hintergrund, Nachtlich kann manuel eingeschalten werden, wird aber auch über das Presence Modul gesteuert.
FHEM im Proxmox Container

aqua_chris

Hallo,

Danke, ja ich habe es jetzt auch etwas anders umgesetzt. Für mich war die größte Hürde drauf zu kommen das ich mit mehreren Statis auf ein zu generierendes Ereignis mit Aktion komme.

Also "Anwesenheit", "Zeitintervall", etc. auf den gleichen State bringen, zusammen zu fassen in einem "Gruppenstate" und dann per watchdog überwachen und schalten.

Mitch

#35
Damit habe ich auch ziemlich lange gekämpft  ;)

Vor allem, weil ich die Handies per BT und WLAN tracke.
Schlussendlich habe ich aber einen "relativ" einfachen und kurzen Code hinbekommen.

Von der Logic schaut PRESENCE nach den Hadies, ein watchdog setzt einen Dummy und das Nachtlicht.

Wenn noch Interesse besteht, poste ich gerne ein paar Codeschnipsel dazu.
FHEM im Proxmox Container

Strippenzieher

Also ich würde mich jedenfalls freuen, wenn ich eure Umsetzungen mal mit meiner Vergleichen könnte.
Da ich jetzt auch wieder in Deutschland bin und damit auch wieder an meinem Fhem experimentieren kann ...
Vielleicht lern ich ja dadurch noch etwas dazu  ;D

Mitch

#37
Hier mal meine Umsetzung:

Anweseheitscheck:
define AlleWeg dummy
attr AlleWeg alias Anwesenheit
attr AlleWeg fm_order 6
attr AlleWeg group Info
attr AlleWeg icon user_unknown
attr AlleWeg room Zentrale,Anwesend
attr AlleWeg setList ja nein
attr AlleWeg verbose 1

##Markus##

define AT.Markus dummy
attr AT.Markus alias Markus iPhone
attr AT.Markus group Handy
attr AT.Markus room Anwesend
attr AT.Markus setList present absent

define BT.Markus PRESENCE local-bluetooth xx:xx:xx:xx:xx:xx 30 60
attr BT.Markus event-on-change-reading state
attr BT.Markus verbose 0

define WLAN.Markus PRESENCE lan-ping xxx.xxx.xxx.xxx
attr WLAN.Markus event-on-change-reading state
attr WLAN.Markus verbose 0

define AT.Markus.Check at +*00:01 {\
  if (ReadingsVal("BT.Markus", "state", "") eq "present" || ReadingsVal("WLAN.Markus", "state", "") eq  "present") {\
    fhem("set AT.Markus present");;\
  }\
  else {\
    fhem("set AT.Markus absent");;\
  }\
}


so werden drei iPhone getrackt und der Dummy AlleWeg auf ja oder nein geschalten.

Anhand von AlleWeg schalte ich einige andere Dinge, wie Nachtlicht, Mail bei Tür auf, etc.

und hier noch die Nachtlichtschlatung:
define Nachtlicht FS20 1111 03
attr Nachtlicht comment Nachtlicht abends an
attr Nachtlicht dummy 1
attr Nachtlicht fm_order 11
attr Nachtlicht fm_view 0,0
attr Nachtlicht group Info
attr Nachtlicht icon day_night
attr Nachtlicht model fs20st
attr Nachtlicht room Zentrale
attr Nachtlicht sortby 6

define act_on_Nachtlicht_an notify Nachtlicht:on { fhem "define Securitylicht at *{sunset('REAL',0,'16:00','23:00')} set FS20_4eb100 on-till 23:00" }
define act_on_Nachtlicht_aus notify Nachtlicht:off { fhem "delete FS20_4eb100_till ;; delete Securitylicht" }
FHEM im Proxmox Container

Strippenzieher

#38
Auf jeden fall erstmal Danke, dass du/ihr die Codes gepostet hast/habt. So hat man mal die Möglichkeit, das Ganze mal aus einer anderen Perspektive zu betrachten.

Hmm ... Mal abgesehen davon, dass ich einige Attribute nachher mal nachschlagen muss ...

Die Dummys setzt du noch für was anderes ein oder sind die für dich einfach nur besser zu Händeln als Strukturen?
Ich grüble nämlich gerade, ob es Vorteile bringt, wenn statt einer presence structure für jedes presence bzw. Handy ein Dummy erstellt wird. Setlist ist die Liste der möglichen States?
Ich frage mich dabei nämlich gerade warum ich das in meinen Strukturen nicht festlegen musste, da habe ich ja nur das attr für clientstate_behavior und clientstate_priority festgelegt,
vielleicht war das ja auch einer der Fehler bei meinen Codes, den Aqua-Chris beschrieben hatte (STATE:ON) ...

Ich bin mir auch nicht ganz im klaren darüber, ob event-on-change-reading beim abmelden eines der Handy-Presences (BT/WLAN) nicht für eine Minute, oder zumindest  für den Bruchteil einer Sekunde
oder Millisekunde den State auf absent setzt auch wenn andere Handy-Presences noch da sind? Aber es funktioniert bei dir ja, dann kann man es anscheinend vernachlässigen.
Mal abgesehen davon, weiß ich auch nicht ob es in Fhem Prioritäten oder Einstufungen der Befehle und Module gibt.

Ich sehe ja, dass du die Dummys einer Gruppe zuweist, nen Icon setzt und in einem Raum anzeigst. Ich bin mir gerade nicht ganz sicher,
aber kann man das mit Strukturen nicht auch machen? Das wäre dann schon mal ein Vorteil für Dummys.
Ja an sowas habe ich dabei gar nicht gedacht, ist dann wahrscheinlich von Interesse, wenn man über Fernzugriff checken will ob und wer zuhause ist ...
AT.Markus.Check ist dann wohl deine Form eines Watchdogs, der prüft dann alle 60 sec. ob sich der Status von BT.Markus und/oder WLAN.Markus ändert.
Durch das "*" beim at ist es ja dann auch nicht nötig irgendwas zurück zusetzen, so wie es beim watchdog der Fall ist (defined/triggered). Ich weiß jetzt nicht, ob es ein direktes reset Attribut gibt,
daher hatte ich es mit setstate defined gelöst, so stand es auch in meinen Bezugsquellen (das waren übrigens zum Teil Internals und keine Befehlsketten für Fhem.cfg oder FhemWeb),
nur dass ich stattdessen den einen watchdog sagte er soll den anderen watchdog zurücksetzen. Was anderes fiel mir nicht ein, da das Treppenlicht sonst immer an gewesen wäre,
wenn eines unserer Handys present gewesen wär. Wenn man das dann aber Zeile für Zeile direkt in FhemWeb so nachher rein schreibt, meckert Fhem und es kommt eine Fehlermeldung,
dass setstate defined auf ein noch nicht definiertes Gerät zugreifen will und man möge das Gerät doch vorher definieren. Das hatte ich bloß schon wieder vergessen,
als ich den Code hier gepostet hatte ...

Durch den Vergleich kann man ziemlich gut erkennen, dass es scheinbar eine sehr verwirrende Vielzahl an Möglichkeiten gibt zu dem selben/gleichen Ergebnis zu gelangen.
Ich könnte jetzt fragen wieso man das "Modul" watchdog überhaupt geschrieben hat, aber das hat denke ich mal mit FhemWeb zu tun, was ich momentan hauptsächlich nutze,
da man alles erst nochmal testen kann bevor man es abspeichert. Den Code für AT.Markus.Check könnte man, so wie es aussieht, zumindest nicht über FhemWeb schreiben ...
Ich habe bisher noch nicht nachgeschaut ob watchdog für andere Anwendungsbereiche noch weitere Funktionen hat.

In dem einen Post von mir habe ich ja auch schon festgestellt, dass man bei dem einen Code das AGAINST_THIEFS/Nachtlicht auch mit notify statt mit watchdog hätte lösen können (so wie in dem Code von Mitch z.B.),
zumindest wenn ich Puschel richtig verstanden habe und notify löst immer sofort aus, wenn sich der Status SecurityLight ändert, watchdog braucht dafür immer einen Zeitwert wie z.B. 00:00:01,
also 1 Sekunde absent/present bevor der "Wachhund" anfängt zu bellen.

OFFTOPIC:

Ich mache momentan halt noch viel mit try & learn (mein Schweizer Kollege sagt immer: "studiere beim schaffe"), ich beschäftige mich mit Fhem zwar schon seit über 2 Jahren,
aber Fhem zu konfigurieren probiere ich erst seit etwa einem halben Jahr, da mir vorher noch die Entscheidung schwer fiel, welche Hardware ich zum Einsatz bringen möchte (fällt mir eigentlich immer noch schwer),
daher ist das imaginäre Wörterbuch Perl<->Deutsch in meinem Oberstübchen auch noch ziemlich klein ...
Die Codes von mir hier in dem Thread habe ich alle aus dem Gedächtnis heraus für Aqua-Chris erweitert und konnte sie nicht vorher testen, da ich zu dem Zeitpunkt 1000Km von meinem Fhem entfernt war
und meine Fritzbox auch jetzt noch weder über MyFritz!, noch über VPN erreichbar ist. 
Ich selber hatte bisher nur vereinzelt zu Testzwecken mit Dummys zutun und da ich vor einem Monat erst Presence mit Structure benutzt hatte damit das Licht im Haus automatisch aus geht,
wenn wir außer Haus gehen und uns nicht auf die Fresse packen, wenn wir bei dieser Jahreszeit die Treppen im dunkeln hoch stolpern müssten, ging mein Lösungsansatz halt auch eher in die Richtung.

MFG Chris




Jan Hertel

Hallo,
habe mich auch in der Anwesenheitssteuerung versucht, hier meine config:

###Handy Anwesenheit
define Jojos_Handy PRESENCE fritzbox Jojos-Handy
attr Jojos_Handy BT_Homestatus Handys
attr Jojos_Handy Jannis_Handy Handys
attr Jojos_Handy content Jojos_Handy Jannis_Handy Martinas_Handy
attr Jojos_Handy room Technik
define Jannis_Handy PRESENCE fritzbox Jannis-Handy
attr Jannis_Handy BT_Homestatus Handys
attr Jannis_Handy content Jojos_Handy Jannis_Handy Martinas_Handy
attr Jannis_Handy room Technik
define Martinas_Handy PRESENCE fritzbox Martinas-Handy
attr Martinas_Handy BT_Homestatus Handys
attr Martinas_Handy Jannis_Handy Handys
attr Martinas_Handy content Jojos_Handy Jannis_Handy Martinas_Handy
attr Martinas_Handy room Technik

####Handy Sammelabwesenheit
define Handys structure BT_Homestatus Jojos_Handy Jannis_Handy Martinas_Handy
attr Handys clientstate_behavior relative
attr Handys clientstate_priority present absent
attr Handys content Jojos_Handy Jannis_Handy Martinas_Handy
attr Handys room Technik

####Abwesenheitssteuerung
define watchdog_Abwesenheit watchdog Handys:absent 00:10:00 Handys:present set Verreist ja
attr watchdog_Abwesenheit regexp1WontReactivate 1
attr watchdog_Abwesenheit room Technik

####Anwesenheitssteuerung
define watchdog_Anwesenheit watchdog Handys:present 00:00:02 Handys:absent set Verreist nein
attr watchdog_Anwesenheit regexp1WontReactivate 1
attr watchdog_Anwesenheit room Technik

leider gehen die An- und Abwesenheitssteuerung nur einmal, dann kommt der Status triggered und der watchdog schaltet den Verreist Status nicht mehr.

Strippenzieher

#40
du mußt die watchdog wieder auf zurücksetzen wenn du einen bestimmten pesesence erreicht hast (setstate defined) ... ich schaue mir deinen Code nochmal in ruhe an .. evtl. findest du die Lösung aber auch in den vorigen Posts des Threads ...

Beispiel:
define watchdog_Anwesenheit watchdog Handy:absent 00:15 Handy:present set Gesamte_Wohnung off ; setstate watchdog_Anwesenheit defined

Jan Hertel

Habe den Fehler gefunden,

der entsprechende Abschnitt muss so aussehen:

####Abwesenheitssteuerung
define watchdog_Abwesenheit watchdog Handys:absent 00:15:00 Handys:present set Verreist ja ;; setstate watchdog_Abwesenheit defined
attr watchdog_Abwesenheit regexp1WontReactivate 1

attr watchdog_Abwesenheit room Technik

####Anwesenheitssteuerung
define watchdog_Anwesenheit watchdog Handys:present 00:00:01 Handys:absent set Verreist nein ;; setstate watchdog_Anwesenheit defined
attr watchdog_Abwesenheit regexp1WontReactivate 1
attr watchdog_Anwesenheit room Technik

wichtig sind die 2 Semikolon hintereinander, sonst geht es nicht.

Danke für den Tip