Wie kann ich precence zu einer bestimmten Zeit schalten lassen

Begonnen von Intruder1956, 04 März 2015, 18:18:59

Vorheriges Thema - Nächstes Thema

Intruder1956

Hallo Fhem-Gemeinde,
ich beschäftige mich seit Wochen mit meinem neuen Raspberry B+,Fhem mit Busware CUL 433 und 868 Mhz
Ich habe sehr viel gelesen, aber nicht wirklich viel verstanden :-) liegt vielleicht am Alter, aber ich übe ja noch fleissig

Ich habe es geschaft meine Uralt Intertechno Funksteckdosen in Fhem zu integrieren.
Es funktioniert über Handy-App als auch Fhem oder auch Fernbedienung (IT TMT-2100). Fhem erkennt alle On/Off Befehle.
Mein ESA2000 läuft noch nicht wirklich, er bekommt  sehr unregelmässig Daten in Fhem, seit gestern nicht einmal.
Aber dafür mein heute neu installierte LD382 mit Wifilight inkl. Farbwechsel funktioniert prima

Ich habe auch eine Handy-Wlan-Ping Precence installiert :-)

Das ist auch mein eigendliches Problem (Bin ja noch Anfänger)

also wenn mein Handy als present gemeldet wird, soll im Wohnzimmer WZ_Couch ON gehen (klappt sogar) auch bei Tageslicht und Sonnenschein :-)

Nur habe ich das Problem, dass ich es nicht schaffe das WZ_Couch ON erst ab 19:00-23:30 schaltet wenn Handy von absent auf present schaltet.

Ich habe mir so viele Beispiele angesehen im Wiki oder Codeschnipsel aber nicht wirklich was passendes gefunden.

Könnte mir jemand bei diesem Problem behilflich sein und mir die Sequenz übermitteln

Vielen Dank im Voraus
Zotac CI547 32GB RAM 500GB SSD,ESXI 6.5, VM-Fhem5.8, VM-ioBroker, Cul 868Mhz;Cul 433Mhz = Busware, LGW, HM-MOD-RPI-PCB, Uniroll, IT YCR-100 TMT2100,ITR-1500, LD382 mit Wifilight, ESA 2000 + SENSOR WZ SET,FS20 TFK, HM-Sec-SC, HM-CC-RT-DN,PCA301,

nesges

Um das umzusetzen gibt es mehrere Möglichkeiten. Ich nehme an du benutzt derzeit ein notify zum schalten. Das kannst du per at zu einer bestimmten Zeit disablen und später wieder enablen. Sieh dir dazu http://fhem.de/commandref.html#disable an (dort ist von Callmonitor die Rede, ist aber in notify genauso implementiert). Alternativ kannst du die Aufgabe auch mit DOIF (http://fhem.de/commandref.html#DOIF) oder IF lösen.

elfrinjo

#2
Bei mir sieht die Lösung so aus...

Es gibt zwei Punkte die mir dabei noch nicht so richtig gefallen:
. Funktioniert nur für ein Präsenzmodul
. mit den IP-Reset der FB morgens um 5 wird die Präsenz manchmal abwesend gemeldet, was - wenn es anschließend wieder funktioniert - das Licht einschaltet.


define pr_je PRESENCE shellscript local/pr_je.sh 60
attr pr_je room Präsenz

define wd_leaving watchdog pr_je:absent 00:15 pr_je:present \
  setstate wd_returning defined ;;\
  set lgt_.* off ;; \
  set ht_.* desiredTemperature eco ;;\
  set sw_.* off
attr wd_leaving regexp1WontReactivate 1

define wd_returning watchdog pr_je:present 00:00 pr_je:absent \
  {fhem('set lgt_wz_slSofa on') unless isday() } ;; \
  set ht_.* desiredTemperature auto ;; \
  setstate wd_leaving defined
attr wd_returning regexp1WontReactivate 1



EDIT:
Damit isday() funktioniert müssen

attr global latitude 51.0000000
attr global longitude 7.0000000


gesetzt sein (natürlich mit den richtigen Koordinaten)

Pfriemler

Ich möchte als glühender Fan des DOIF selbiges in die Runde werfen.  Einfach mal das deutsche (!) Kapitel in der commandref lesen.  Ist im Vergleich zu notify und watchdog wie eine Hochsprache ... Gerade die Kombination aus ereignis- und bedingungsgesteuerter Verarbeitung mit watchdogartigen Verzögerungen hat mir das FHEM-Leben sehr vereinfacht.

Gesendet von meinem SM-G900F mit Tapatalk

"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Pfriemler

#4
Zitat von: Intruder1956 am 04 März 2015, 18:18:59
also wenn mein Handy als present gemeldet wird, soll im Wohnzimmer WZ_Couch ON gehen (klappt sogar) auch bei Tageslicht und Sonnenschein :-)
Nur habe ich das Problem, dass ich es nicht schaffe das WZ_Couch ON erst ab 19:00-23:30 schaltet wenn Handy von absent auf present schaltet.

Soll die Lampe von 19-23:30 nur angehen, wenn das Handy im Haus ist, oder soll in der Zeit zwischen 19 und 23:30 die Lampe angehen, wenn das Handy nach Hause kommt? Beides sind zwei unterschiedliche Aufgaben und müssen vermutlich auch getrennt bearbeitet werden. Ich interpretiere letzteres (also das Licht soll angehen, wenn das Handy sich anwesend meldet und es zwischen 19 und 23:30 Uhr ist)

define di_WZ_Couch_evening_if_present DOIF ([Handy] eq "present" and [?19-23:30] and [?WZ_Couch] ne "ON") (set WZ_Couch ON)

Ist es richtig, dass WZ_Couch mit ON (und nicht mit on) aktiviert wird?
Beachte, dass der Schaltvorgang nur einmal durchgeführt wird, wenn der Status des Handys von "absent" auf "present" wechselt. Soll das Licht immer an sein, solange sich das Handy in Reichweite befindet, setze attr di_WZ_Couch_evening_if_present do always und lösche ein evtl. event-on-change-reading state beim Presence des Handys - so wird das DOIF jedesmal getriggert, wenn das Presence das Handy in Reichweite hat.
Die Abfrage des Schaltzustands in den Bedingungen des DOIF verhindert, dass der Einschaltbefehl gesendet wird, wenn die Lampe bereits an ist, egal wie und wodurch. Das vermeidet Funklast. Voraussetzung ist, dass WZ_Couch auch einen echten Status liefert...

edit: ? in der Statusabfrage von WZ_Couch erforderlich!
Im Falle einer ständigen Überwachtung ginge es auch so weiter:
define di_WZ_Couch_evening_if_present DOIF ([Handy] eq "present" and [?19-23:30] and [?WZ_Couch] ne "ON") (set WZ_Couch ON) DOELSEIF  ([Handy] eq "absent" and [?WZ_Couch] eq "ON")(set WZ_Couch OFF)
attr di_WZ_Couch_evening_if_present wait 0:1200

schaltet das Licht 20 min (=1200s), nachdem PRESENCE den Kontakt zum Handy verloren hat, das Licht aus. Und zwar zu allen Zeiten.

Mit einer weiteren DOELSEIF-Zeile kannst Du ein Einschalten um 19 Uhr bewirken, wenn das Handy zu Hause ist ...

Wenn das PRESENCE nur aggressiv pingt, wenn es keinen Kontakt hat, hält sich die Belastung des Handyakkus auch in Grenzen (ich arbeite mit 15 und 300). Diese fünf Minuten kämen zur Ausschaltverzögerung noch dazu.

"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Intruder1956

Guten morgen,
vielen dank für die antworten ;D
ich habe jetzt die Lösung von Pfriemler eingetragen und mal sehen wie es heute Abend klappt. (ich könnte natürlich die Uhrzeit verstellen um es jetzt zu testen)
Mir raucht seit fast 8 Wochen der Kopf, weil ich sehr viel gelesen und auch ausprobiert habe. noch habe ich Urlaub
Dabei zweimal Fhem und Raspi neu aufgesetzt habe.
habe leider keine Ahnung von perl, Linux oder Programmierung obwohl ich schon ende der 70ger tagelang aus Zeitschriften Programme in meinen Sinclaer ZX80 eingehackt habe.
Es hat mir leider als blutiger Anfänger nichts gebracht, wenn ich auf die commandref oder wiki verwiesen werde, weil ich da noch immer nichts verstehe und Beispiele angezeigt die nicht unbedingt zu mir passen
Aber jetzt habe ich was von Pfriemler und kann darauf aufbauen weil ich es jetzt besser verstehe.

vielen dank nochmal

Gruß aus dem Westerwald
Zotac CI547 32GB RAM 500GB SSD,ESXI 6.5, VM-Fhem5.8, VM-ioBroker, Cul 868Mhz;Cul 433Mhz = Busware, LGW, HM-MOD-RPI-PCB, Uniroll, IT YCR-100 TMT2100,ITR-1500, LD382 mit Wifilight, ESA 2000 + SENSOR WZ SET,FS20 TFK, HM-Sec-SC, HM-CC-RT-DN,PCA301,

Pfriemler

Zitat von: Intruder1956 am 06 März 2015, 10:43:33
ich habe jetzt die Lösung von Pfriemler eingetragen und mal sehen wie es heute Abend klappt. (ich könnte natürlich die Uhrzeit verstellen um es jetzt zu testen)
Sei nicht enttäuscht, wenn es nicht (gleich) klappt ... ich habe die Beispiele aus der Theorie konstruiert und natürlich müssen die Bezeichnungen auch konkret angepasst werden, insbesondere auch die Frage, ob "ON" oder "on" - für Windowsianer ist die strenge Unterscheidung zwischen Groß- und Kleinschreibung teilweise ungewohnt, teilweise lästig. Vielleicht ist auch noch der eine oder andere Denkfehler enthalten...
FHEM verlangt wirklich viel von Anfängern. Ich war nicht nur einmal kurz davor, eine CCU2 zu kaufen, weil ich die Einstiegshürden satt hatte. Aber Geduld, auch mit sich selbst, zahlt sich hier letztlich aus. Trotzdem sind commandref, Wiki und das Forum immer noch unverzichtbare Tippgeber. FHEM bietet Dutzende Lösungsmöglichkeiten für eine Aufgabe, und jeder muss seinen eigenen Stil finden. Also: Viel Erfolg!
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Intruder1956

#7
hallo, ich muss noch mal fragen  :o
ich habe es ja wie oben beschrieben geschafft, das die Lampe ab 19.00 Uhr eingeschaltet wird wenn ich nach Hause komme und mein Handy present ist.
define di_WZ_Couch_evening_if_present DOIF ([Werner] eq "present" and [?19:00-23:00] and [?WZ_Couch] ne "on") (set WZ_Couch on)
attr di_WZ_Couch_evening_if_present do always
attr di_WZ_Couch_evening_if_present event-on-change-reading 1

und jetzt  kommt es :D
wenn ich aber schon zu Hause bin und in meinem Bastelzimmer sitze, muss ja nicht die WZ_Couch on schalten, reicht wenn bei mir die Lampe an geht wenn ich Fhem-Wiki, Forum lese.

Geht es auch über Befehle abzufragen "Der Typ sitzt schon zu Hause aber in einem anderen Zimmer, ignoriere WZ_Couch Licht an" ???
Es geht bestimmt aber meine Lampe ist noch zu dunkel als Anfänger.

Gruß Werner
Zotac CI547 32GB RAM 500GB SSD,ESXI 6.5, VM-Fhem5.8, VM-ioBroker, Cul 868Mhz;Cul 433Mhz = Busware, LGW, HM-MOD-RPI-PCB, Uniroll, IT YCR-100 TMT2100,ITR-1500, LD382 mit Wifilight, ESA 2000 + SENSOR WZ SET,FS20 TFK, HM-Sec-SC, HM-CC-RT-DN,PCA301,

Pfriemler

Also erstens: Mit event-on-change-reading beim PRESENCE erreichtst Du, dass es nur ein Event auslöst, wenn sich der Status des Handys ändert. Ist es nach 19 Uhr wenn Du nach Hause kommst, schaltet die Lampe. Bist Du schon zu Hause, wird die Lampe nicht schalten (so interpretiere ich es), es sei denn, dein Handy fällt zwischendurch aus dem LAN. Die vorgeschlagene Verzögerung vom 20 min hast Du nicht eingebaut?

Detaillierte raumbezogene Anwesenheitserfassung ist eine weite Baustelle für sich, der Aufwand steigt meist drastisch. Die kleinste Lösung wäre: wenn sich Dein FHEM-Server im Bastelzimmer befindet und dieses weit genug weg vom Wohnzimmer, dann könntest du zusätzlich ein bluetooth-basiertes PRESENCE definieren quasi als Ausnahme.

Sonst sehe ich nur noch einen Bewegungsmelder möglich mit genug Nachlaufzeit, unabhängig vom PRESENCE.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Otto123

Neben so schwierigen Dingen wie Blauzahn oder Bewegungsmelder (Denkpause im Bastelzimmer :) ) fällt mir noch eine Verbindung zum "Gerät" im Bastelzimmer ein. Also z.B. Rechner an, Lötkolben an - oder so.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz