Neues Modul: 22_HOMEMODE.pm - grundlegende Automationen und mehr

Begonnen von DeeSPe, 07 Januar 2017, 15:59:43

Vorheriges Thema - Nächstes Thema

der-Lolo

Hallo DeeSPe,
darf ich Dich hierauf nochmal aufmerksam machen?
Kannst Du mir vielleicht eine Tip geben? Oder ist der confirm Modus für mich nicht brauchbar?




Zitat von: der-Lolo am 09 Juni 2020, 10:21:41
Wenn ich confirm richtig verstehe wechselt der Zustand automatisch zu armaway, kann ich dort auch ein triggerndes Device angeben?

Wenn ich beim Haus verlassen meinen iButton Reader betätige würde ich auf confirm wechseln, sobald ich auf confirm bin würde ich gerne offene Fenster via Telegram melden. Erst wenn die Haustür dann abgeschlossen wird möchte ich auf armaway wechseln.

Edit: Und automatisch wechseln (von confirm zu armaway) - also per Timer möchte ich gar nicht. Kann man das abschalten?

pjakobs

Zitat von: DeeSPe am 15 Juli 2020, 08:57:52
Hallo pj,

HomeAutoPresenceSuppressState wird definitiv nicht ignoriert.
Es wirkt aber nur in den definierten Zuständen um nicht auf "absent" gesetzt zu werden. Es geht bei dem Attribut darum dass man nicht auf "absent" gesetzt wird nur weil man (nachts?) evtl. BT oder WLAN ausschaltet und somit eigentlich auf "absent" gesetzt würde.

Gruß
Dan
Moin Dan,

dann frage ich mich aber, wie ich mein Problem löse.
Offenbar habe ich im OG ein Problem mit der Präsenzerkennung per WLAN und BT und es kommt immer mal wieder vor, dass der Zustand kippt.
Wenn er auch nicht auf "absent" gesetzt wird, dann wird er doch, wenn das Gerät wieder erkannt wird, wieder auf "present" gesetzt und das triggert dann eben den Gesamtzustand "home" - was bei mir dann blöderweise die Lichter einschaltet. Das macht eine Nacht u.U. recht unbequem.

Wäre es nicht sinnvoll, da eine Statemachine zu implementieren, die absent/present Flips einfach ignoriert? Ich gestehe, das könnte ggf. Probleme geben, wenn man dann morgens aufwacht, vielleicht bräuchte man dann einen extra Zustand "waking up".

pj

DeeSPe

Zitat von: pjakobs am 15 Juli 2020, 10:00:10
Moin Dan,

dann frage ich mich aber, wie ich mein Problem löse.
Offenbar habe ich im OG ein Problem mit der Präsenzerkennung per WLAN und BT und es kommt immer mal wieder vor, dass der Zustand kippt.
Wenn er auch nicht auf "absent" gesetzt wird, dann wird er doch, wenn das Gerät wieder erkannt wird, wieder auf "present" gesetzt und das triggert dann eben den Gesamtzustand "home" - was bei mir dann blöderweise die Lichter einschaltet. Das macht eine Nacht u.U. recht unbequem.

Wäre es nicht sinnvoll, da eine Statemachine zu implementieren, die absent/present Flips einfach ignoriert? Ich gestehe, das könnte ggf. Probleme geben, wenn man dann morgens aufwacht, vielleicht bräuchte man dann einen extra Zustand "waking up".

pj

Hast Du das Attribut "event-on-change-reading" entsprechend bei RESIDENT/ROMMATE/GUEST gesetzt? Wenn ja dürfte es doch gar kein erneutes "present" Event geben.

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

pjakobs

Zitat von: DeeSPe am 17 Juli 2020, 14:14:34
Hast Du das Attribut "event-on-change-reading" entsprechend bei RESIDENT/ROMMATE/GUEST gesetzt? Wenn ja dürfte es doch gar kein erneutes "present" Event geben.

Gruß
Dan

ich bin mir nicht sicher, ob ich Dich verstehe.

ich will doch, dass vom Resident die Events durch kommen (auch wenn sie hier, sporadisch, falsch sind) und nur vermeiden, dass "gotosleep" durch presence/absence überschrieben wird.

Aber möglicherweise fehlt mir da ein Stück Information.

pj

dk3572

#1159
Hallo,

ich möchte mit HomeCMDpresence-absent ein Device schalten, aber erst nach 15 Min Abwesenheit.
Wenn innerhalb der 15 Min wieder jemand anwesend ist, soll der Vorgang abgebrochen werden.

Wie definiere ich das in HomeCMDpresence-absent am besten?

Danke für Hilfe und VG Dieter


Edit: Würde das funktionieren?

if (ReadingsVal("Bewohner","lastDurAbsence","0") >00:15:00)

Oder besser so?

if (ReadingsAge('Bewohner','presence',0) >900)

kjmEjfu

Zitat von: dk3572 am 18 Juli 2020, 16:42:23
Hallo,

ich möchte mit HomeCMDpresence-absent ein Device schalten, aber erst nach 15 Min Abwesenheit.
Wenn innerhalb der 15 Min wieder jemand anwesend ist, soll der Vorgang abgebrochen werden.

Wie definiere ich das in HomeCMDpresence-absent am besten?

im HomeCMDpresence-absent ein relatives AT anlegen.
im HomeCMDpresence-present das relative AT löschen, so es noch existiert.
Migriere derzeit zu Home Assistant

dk3572

Zitat von: kjmEjfu am 18 Juli 2020, 17:13:43
im HomeCMDpresence-absent ein relatives AT anlegen.
im HomeCMDpresence-present das relative AT löschen, so es noch existiert.

Hallo,

ja, ist wohl die bessere und einfachere Variante.

Vielen Dank und Gruß
Dieter

EinEinfach

Hallo zusammen,

gibt es eine Möglichkeit bestimmte HomeCMD... über den Anwesendheitsstatus zu sperren bzw. freizugeben.

Konkret möchte ich die Twilightabhängige CMDs nur ausführen, wenn auch jemand zu Hause ist.

Gruß
Alexander
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

guhu

FHEM 5.9 auf Synology DS918+ (in Docker), HM-CFG-USB2 mit hmlan, HM-CC-RT-DN, HM-SEC-SC-2, nanoCUL,a-culfw,deCONZ,Brennenstuhl-Steckdosen,-FB
Module:ENIGMA2,SONOS,FRITZBOX,FB_CALLLIST,WDT_TIMER,VCONTROL300,WITHINGS

EinEinfach

Zitat.. macht man gemeinhin mit "If ...." ...

etwas genauer bitte
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

guhu

#1165
Angenommen, Dein Residents-Device heisst "Residents". Du möchstest eine Aktion nur ausführen, wenn jemand zu Hause ist:

{ if ( Value("Residents") eq "home") {
mache irgendwas}
}

bzw. in fhem ohne Perl:

IF ([Residents] eq "home") (mache irgendwas)
FHEM 5.9 auf Synology DS918+ (in Docker), HM-CFG-USB2 mit hmlan, HM-CC-RT-DN, HM-SEC-SC-2, nanoCUL,a-culfw,deCONZ,Brennenstuhl-Steckdosen,-FB
Module:ENIGMA2,SONOS,FRITZBOX,FB_CALLLIST,WDT_TIMER,VCONTROL300,WITHINGS

EinEinfach

Ah ok, ich schreibe dann direkt den Perlcode in den HomeCMD Attribut. Korrekt?
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

guhu

Zitat von: EinEinfach am 07 Oktober 2020, 19:01:07
Ah ok, ich schreibe dann direkt den Perlcode in den HomeCMD Attribut. Korrekt?
Ja, entweder Perl in Klammern oder eben fhem
FHEM 5.9 auf Synology DS918+ (in Docker), HM-CFG-USB2 mit hmlan, HM-CC-RT-DN, HM-SEC-SC-2, nanoCUL,a-culfw,deCONZ,Brennenstuhl-Steckdosen,-FB
Module:ENIGMA2,SONOS,FRITZBOX,FB_CALLLIST,WDT_TIMER,VCONTROL300,WITHINGS

Pr3mut05

Wie hinterlege ich denn für ein
HomeCMDpresence-absent
am besten einen Timer?

Also das ich auch mal schnell mal das Smartphone neu starten kann oder den Müll rausbringen, ohne das alles abgeschaltet wird.

kjmEjfu

Zitat von: Pr3mut05 am 11 Oktober 2020, 19:53:45
Wie hinterlege ich denn für ein
HomeCMDpresence-absent
am besten einen Timer?

Also das ich auch mal schnell mal das Smartphone neu starten kann oder den Müll rausbringen, ohne das alles abgeschaltet wird.

Variante 1: du legst per defmod ein AT an, in welchem du dann die entsprechenden Befehle hinterlegst. Nicht vergessen, dass du im -present dann das AT löschen musst.
Variante 2: du lässt unabhängig vom Homemode den Absent-Status erst später herstellen (z.B. erst nach Abwesenheit von 5 Minuten)
Migriere derzeit zu Home Assistant