HarmonyHUB in watchdog einbauen

Begonnen von Michi240281, 05 August 2015, 13:07:53

Vorheriges Thema - Nächstes Thema

Michi240281

Hallo zusammen,

aktuell nutze ich folgende Funktion, um beim Heimkommen abends verschiedene Dinge zu erledigen:

Haustuer:offen 00:15:00 DM500HD.*:an IF (($hms gt "21:00" or $hms lt "04:00")  and [DM500HD:power] eq "off" and [Anlage_Status:state] eq "unscharf") (set Anlage_Scharf ein, set Flurlicht pct 40 180, set Alle_Steckdosen_EG aus, setstate Alarmanlage_auto_intern_nachts_an_nach_Abwesenheit defined) ELSE (setstate Alarmanlage_auto_intern_nachts_an_nach_Abwesenheit defined)

Meine Frage nun:

Wie müsste ich das regexp nach der Zeitangabe umändern, damit auf den HarmonyHUB geschaut wird? Der HarmonyHUB hat 3 activities:

Dreambox
FireTV
PS3

und dann natürlich noch "PowerOff". Kann ich das regexp irgendwie so schreiben, dass es "ne PowerOff" als Trigger nimmt?

Besten Dank für Eure Tipps!
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Paul

Warum willst Du auf den HUB schauen? Willst ihn starten?
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

Michi240281

Weil es ja sein kann, dass ich z.B. am FireTV schaue! Dann soll die Anweisung ja nicht durchgeführt werden.

Bezwecken will ich mit dem watchdog ja folgendes:

Bislang:

Wenn man abends heim kommt (Tür offen) und man nicht innerhalb von 15 Minuten die Dreambox startet, wird quasi erkannt, dass man direkt ins Bett gehen wird. Dann folgt die Aktivierung der Alarmanlage etc.!

Da das ganze ja nur funktioniert hat, wenn die Dreambox eingeschaltet wurde (oder auch nicht) und ich seit ner Weile den HarmonyHUB habe, kann ich damit ja auch auf die Geräte FireTV und PS3 schauen.
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Paul

Zitat von: Michi240281 am 05 August 2015, 13:07:53

Kann ich das regexp irgendwie so schreiben, dass es "ne PowerOff" als Trigger nimmt?


genau so würde cích es dann machen.
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

Michi240281

FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

volschin

Trigger heißt immer eine Zustandsänderung. Wenn also dein Hub schon auf PowerOff steht, tut sich da nichts. Du könntest also einfach .* nehmen und wenn Du noch irgendwas schaltest, zieht es.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

Wuppi68

habe mal meinen DEF Part aus dem DOIF angehängt, so kann man die Activities abfragen


([harmony.hub.1:currentActivity] eq "TV" or [harmony.hub.1:currentActivity] eq "NETZWERKPLAYER" or [harmony.hub.1:currentActivity] eq "BLUE RAY" or [harmony.hub.1:currentActivity] eq "DVD" or [harmony.hub.1:currentActivity] eq "ONLINE RADIO") (set lw12.tv on, set lw12.tv rgb 544E03) DOELSE ( set lw12.tv off)
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

Michi240281

Danke für Eure Rückmeldungen! Das mit den DOIF Abfragen kenne ich, nutze ich in zahlreichen DOIFs, aber ich wollte ja an sich das ganze in dem watchdog einbauen! Aber ich glaube das ist nicht so einfach und dann werde ich das ganze einfach mit DOIF umsetzen und dann Timer setzen!
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Damian

Zitat von: Michi240281 am 09 August 2015, 13:08:04
Danke für Eure Rückmeldungen! Das mit den DOIF Abfragen kenne ich, nutze ich in zahlreichen DOIFs, aber ich wollte ja an sich das ganze in dem watchdog einbauen! Aber ich glaube das ist nicht so einfach und dann werde ich das ganze einfach mit DOIF umsetzen und dann Timer setzen!

Ein Wait in einem DOIF-Modul ersetzt einen Watchdog. Die Verzögerung wird automatisch gelöscht, wenn eine andere Bedingung zuschlägt.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Michi240281

#9
Mein DI sieht so aus:

Internals:
   DEF        ([Haustuer:state] eq "open" and [?HarmonyHUB:activity] eq "PowerOff" and [?21:00-04:00] and [Anlage_Status:state] eq "unscharf") (set Anlage_Scharf ein, set Flurlicht pct 40 180, set Alle_Steckdosen_EG aus)
   NAME       Alarmanlage_auto_nachts_an_nach_Abwesenheit
   NR         958
   NTFY_ORDER 50-Alarmanlage_auto_nachts_an_nach_Abwesenheit
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2015-08-03 00:33:55   cmd_event       Anlage_Status
     2015-08-03 00:33:55   cmd_nr          2
     2015-08-10 07:30:11   e_Anlage_Status_state unscharf
     2015-08-10 10:44:59   e_Haustuer_state closed
     2015-08-03 00:33:55   state           cmd_2
     2015-08-09 21:00:00   timer_1_c1      10.08.2015 21:00:00
     2015-08-10 04:00:00   timer_2_c1      11.08.2015 04:00:00
     2015-08-09 01:37:59   wait_timer      no timer
   Condition:
     0          ReadingValDoIf('Haustuer','state','') eq "open" and ReadingValDoIf('HarmonyHUB','activity','') eq "PowerOff" and DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and ReadingValDoIf('Anlage_Status','state','') eq "unscharf"
   Days:
   Devices:
     0           Haustuer Anlage_Status
     all         Haustuer Anlage_Status
   Do:
     0          set Anlage_Scharf ein, set Flurlicht pct 40 180, set Alle_Steckdosen_EG aus
   Helper:
     last_timer 2
     sleepdevice Anlage_Status
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           Haustuer:state Anlage_Status:state
     all         Haustuer:state Anlage_Status:state
   Realtime:
     0          21:00:00
     1          04:00:00
   State:
   Time:
     0          21:00:00
     1          04:00:00
   Timecond:
     0          0
     1          0
   Timer:
     0          0
     1          0
   Timerfunc:
   Timers:
   Trigger:
Attributes:
   group      Alarmanlage
   room       Haus
   wait       900


Problem ist nur, dass wenn die Haustür open wird, ist die Anlage noch nicht unscharf und wenn die Anlage unscharf ist, ist die Tür bereits wieder closed. Daher löst das DI nie aus! Werd mal schauen ob es geht, wenn ich nur die Haustür triggern lasse!

EDIT: Ne, das tuts nicht, weil die Haustür ja nicht 900s lang geöffnet ist, sondern nur kurz geöffnet wird. Gibts nen Attribut, oder sonstiges Helferlein, durch das ich es hinbiegen kann, dass die Haustür nur triggert und danach nicht mehr abgeprüft wird? Ansonsten müsste ich die Haustür wohl nur ein neues DEF anlegen lassen und dort dann den wait-timer setzen?!?
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Damian

#10
Zitat von: Michi240281 am 10 August 2015, 17:11:22
Mein DI sieht so aus:

Internals:
   DEF        ([Haustuer:state] eq "open" and [?HarmonyHUB:activity] eq "PowerOff" and [?21:00-04:00] and [Anlage_Status:state] eq "unscharf") (set Anlage_Scharf ein, set Flurlicht pct 40 180, set Alle_Steckdosen_EG aus)



Dann eher:

DOIF ([Haustuer:state] eq "open" and [?21:00-04:00])
  (set Anlage_Scharf ein, set Flurlicht pct 40 180, set Alle_Steckdosen_EG aus)
DOELSEIF ([HarmonyHUB:activity] eq "PowerOff" and [?21:00-04:00])

wait 900


Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Michi240281

Ne das ist ja ne ganz andere Logik! Habs jetzt denke ich hinbekommen, mit 1 zusätzlichen DI und einem Dummy!
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Damian

Zitat von: Michi240281 am 10 August 2015, 23:08:50
Ne das ist ja ne ganz andere Logik! Habs jetzt denke ich hinbekommen, mit 1 zusätzlichen DI und einem Dummy!

Mein Code-Vorschlag entspricht aber genau deiner Anforderung hier:

ZitatWenn man abends heim kommt (Tür offen) und man nicht innerhalb von 15 Minuten die Dreambox startet, wird quasi erkannt, dass man direkt ins Bett gehen wird. Dann folgt die Aktivierung der Alarmanlage etc.!

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Michi240281

Zitat von: Damian am 11 August 2015, 07:09:32
Mein Code-Vorschlag entspricht aber genau deiner Anforderung hier:

Gruß

Damian

Biste sicher?
Ich verstehe deinen Code-Vorschlag so:

Wenn Haustür abends geöffnet wird (Bedingung 1) oder wenn HarmonyHUB abends aus ist (Bedingung 2) wird das Kommando ausgeführt. Das ist ja was anderes als ich will!

Ich will wenn man abends heim kommt anhand des HarmonyHUB erkennen, ob noch unten ferngesehen oder gespielt wird. Wenn das nicht innerhalb 15 Minuten passiert, beabsichtigt man wohl, ins Bett zu gehn.

Ich habe es jetzt mit folgendem umgesetzt und sollte funktionieren:

define Tuerstatus_heimkommen dummy
attr Tuerstatus_heimkommen group Alarmanlage
attr Tuerstatus_heimkommen room Haus

define Tuerstatus_heimkommen_DI DOIF ([Haustuer:state] eq "open" and [?21:00-04:00]) (set Tuerstatus_heimkommen offen) DOELSE (set Tuerstatus_heimkommen geschlossen)
attr Tuerstatus_heimkommen_DI group Alarmanlage
attr Tuerstatus_heimkommen_DI room Haus
attr Tuerstatus_heimkommen_DI wait 0:1800

define Nachtschaltung_nach_heimkommen DOIF ([Tuerstatus_heimkommen:state] eq "offen" and [HarmonyHUB:activity] eq "PowerOff") (set Anlage_Scharf ein, set Flurlicht 40 180, set Alle_Steckdosen_EG:FILTER=STATE!=aus aus, set Spark_One an)
attr Nachtschaltung_nach_heimkommen group Alarmanlage
attr Nachtschaltung_nach_heimkommen room Haus
attr Nachtschaltung_nach_heimkommen wait 900
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Damian

Zitat von: Michi240281 am 11 August 2015, 09:49:24
Biste sicher?
Ich verstehe deinen Code-Vorschlag so:

Wenn Haustür abends geöffnet wird (Bedingung 1) oder wenn HarmonyHUB abends aus ist (Bedingung 2) wird das Kommando ausgeführt. Das ist ja was anderes als ich will!

Dann hast du den Code falsch verstanden. Es bedeutet: wenn die Tür aufgeht werden 15 Minuten später die Kommandos ausgeführt. Wenn innerhalb der 15 Minuten allerdings [HarmonyHUB:activity] eq "PowerOff" zutrifft, geht das Modul in den zweiten Zustand, der erste (der sich noch im Wartezustand befand) wird unterbrochen und es passiert gar nichts.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF