FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Trebor5 am 09 April 2018, 21:07:02

Titel: Triggern von 4 FACH DOIF & fhem löst nicht aus
Beitrag von: Trebor5 am 09 April 2018, 21:07:02
Hallo Fhem Gemeinde,
ich habe ein DOIF geschrieben welches nicht auslöst. Leider finde ich den Fehler nichr selber.
define ALARM_BM_Flur_unten_Flur_oben_Extern DOIF ([BM_Alarm_Flur_unten_STATUS] eq "Bewegung_erkannt" and [BM_Alarm_Flur_OG_Treppe_STATUS] eq "Bewegung_erkannt" and [Bewegung_bei_Scharfschaltung] eq "AN" and [ANLAGE_STATUS_EXTERN] eq "scharf") ("set Alarm1 An,set Alarm2 An,set Flurlicht AN,define verzoegert_ALARM_BM_Flur_unten_Flur_oben_Extern at +00:05:00 set Flurlicht AUS,set Alarm1 Aus,set Alarm2 Aus,delete verzoegert_ALARM_BM_Flur_unten_Flur_oben_Extern")
Es soll halt nur auslösen wenn die 4 Bedingungen zutreffen und na ch 5 Minuten alles wieder abschalten.
Es sind 2 Bewegungsmelder und 2 Dummys.
Würde es gerne ohne die 4 Schalter immer wieder zu schalten triggern, allerdings komme ich damit nicht wirklich klar.
Hat jemand einen Tip für mich ?
Titel: Antw:Triggern von 4 FACH DOIF & fhem löst nicht aus
Beitrag von: KernSani am 09 April 2018, 21:18:54
Hi,

gib mal
list ALARM_BM_Flur_unten_Flur_oben_Extern in die Kommandozeile ein und poste den output hier.
Wie lange stehen die Bewegungsmelder denn im Zustand "Bewegung_erkannt"? (ist das überhaupt ein zulässiger "state"?) Sind sie gleichzeitig in diesem Zustand?
Warum verwendest du nicht on-for-timer, statt dir ein AT zu definieren?

Grüße,

Oli
Titel: Antw:Triggern von 4 FACH DOIF & fhem löst nicht aus
Beitrag von: Trebor5 am 23 April 2018, 13:36:32
Hallo KernSani,

die Ausgabe hat folgendes ergeben.
Internals:
   DEF        ([BM_Alarm_Flur_unten_STATUS] eq "Bewegung_erkannt" and [BM_Alarm_Flur_OG_Treppe_STATUS] eq "Bewegung_erkannt" and [Bewegung_bei_Scharfschaltung] eq "AN" and [ANLAGE_STATUS_EXTERN] eq "scharf") ("set Alarm1 An,set Alarm2 An,set Flurlicht AN,define verzoegert_ALARM_BM_Flur_unten_Flur_oben_Extern at +00:05:00 set Flurlicht AUS,set Alarm1 Aus,set Alarm2 Aus,delete verzoegert_ALARM_BM_Flur_unten_Flur_oben_Extern")
   MODEL      FHEM
   NAME       ALARM_BM_Flur_unten_Flur_oben_Extern
   NR         2680
   NTFY_ORDER 50-ALARM_BM_Flur_unten_Flur_oben_Extern
   STATE      cmd_2
   TYPE       DOIF
   READINGS:
     2018-04-23 13:30:14   Device          BM_Alarm_Flur_unten_STATUS
     2018-04-11 12:07:12   cmd             2
     2018-04-11 12:07:12   cmd_event       ANLAGE_STATUS_EXTERN
     2018-04-11 12:07:12   cmd_nr          2
     2018-04-21 13:22:24   e_ANLAGE_STATUS_EXTERN_STATE unscharf
     2018-04-23 13:24:19   e_BM_Alarm_Flur_OG_Treppe_STATUS_STATE Keine_Bewegung
     2018-04-23 13:30:14   e_BM_Alarm_Flur_unten_STATUS_STATE Keine_Bewegung
     2018-04-23 04:30:43   e_Bewegung_bei_Scharfschaltung_STATE AUS
     2018-04-09 20:30:49   mode            enabled
     2018-04-11 12:07:12   state           cmd_2
   Regex:
   condition:
     0          InternalDoIf($hash,'BM_Alarm_Flur_unten_STATUS','STATE') eq "Bewegung_erkannt" and InternalDoIf($hash,'BM_Alarm_Flur_OG_Treppe_STATUS','STATE') eq "Bewegung_erkannt" and InternalDoIf($hash,'Bewegung_bei_Scharfschaltung','STATE') eq "AN" and InternalDoIf($hash,'ANLAGE_STATUS_EXTERN','STATE') eq "scharf"
   devices:
     0           BM_Alarm_Flur_unten_STATUS BM_Alarm_Flur_OG_Treppe_STATUS Bewegung_bei_Scharfschaltung ANLAGE_STATUS_EXTERN
     all         BM_Alarm_Flur_unten_STATUS BM_Alarm_Flur_OG_Treppe_STATUS Bewegung_bei_Scharfschaltung ANLAGE_STATUS_EXTERN
   do:
     0:
       0          "set Alarm1 An,set Alarm2 An,set Flurlicht AN,define verzoegert_ALARM_BM_Flur_unten_Flur_oben_Extern at +00:05:00 set Flurlicht AUS,set Alarm1 Aus,set Alarm2 Aus,delete verzoegert_ALARM_BM_Flur_unten_Flur_oben_Extern"
     1:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      Keine_Bewegung
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   BM_Alarm_Flur_unten_STATUS
     timerevent Keine_Bewegung
     triggerDev BM_Alarm_Flur_unten_STATUS
     timerevents:
       Keine_Bewegung
     timereventsState:
       state: Keine_Bewegung
     triggerEvents:
       Keine_Bewegung
     triggerEventsState:
       state: Keine_Bewegung
   internals:
     0           BM_Alarm_Flur_unten_STATUS:STATE BM_Alarm_Flur_OG_Treppe_STATUS:STATE Bewegung_bei_Scharfschaltung:STATE ANLAGE_STATUS_EXTERN:STATE
     all         BM_Alarm_Flur_unten_STATUS:STATE BM_Alarm_Flur_OG_Treppe_STATUS:STATE Bewegung_bei_Scharfschaltung:STATE ANLAGE_STATUS_EXTERN:STATE
   itimer:
   perlblock:
   readings:
   trigger:
   uiState:
Attributes:
   room       DO_IF


On-for-timer löst im log immer sehr oft aus und deshalb benutze ich es selten.

Bewegung erkannt wird nach ca 4 Minuten wieder zurückgeschaltet .
Ich möchte halt unabhängig welcher zu erst auslöst den Alarm auslösen . Also wenn Melder a und melder b = Bewegung erkannt und die beiden Dummys den Status haben dann auslösen.
Titel: Antw:Triggern von 4 FACH DOIF & fhem löst nicht aus
Beitrag von: Otto123 am 23 April 2018, 13:51:32
Hi,

ist das zulässiger Syntax? Hier  (https://fhem.de/commandref_DE.html#DOIF)steht es zumindest nicht so.
DOIF ()("Befehl")?
Zitat("set Alarm1 An,set Alarm2 An,set Flurlicht AN,define verzoegert_ALARM_BM_Flur_unten_Flur_oben_Extern at +00:05:00 set Flurlicht AUS,set Alarm1 Aus,set Alarm2 Aus,delete verzoegert_ALARM_BM_Flur_unten_Flur_oben_Extern")

Und Du verwendest praktisch alle Varianten von an An AN  :o

Gruß Otto
Titel: Antw:Triggern von 4 FACH DOIF & fhem löst nicht aus
Beitrag von: Ellert am 23 April 2018, 13:53:18
Auf das at würde ich verzichten und wait nutzen, im Prinzip so

([BM_Alarm_Flur_unten_STATUS] eq "Bewegung_erkannt" and [BM_Alarm_Flur_OG_Treppe_STATUS] eq "Bewegung_erkannt" and [Bewegung_bei_Scharfschaltung] eq "AN" and [ANLAGE_STATUS_EXTERN] eq "scharf")
   (set ... an), (set ... aus)


mit
do always
wait 0,600
Titel: Antw:Triggern von 4 FACH DOIF & fhem löst nicht aus
Beitrag von: CoolTux am 23 April 2018, 13:59:55
Ich würde noch die Dummys nur abfragen.


([BM_Alarm_Flur_unten_STATUS] eq "Bewegung_erkannt" and [BM_Alarm_Flur_OG_Treppe_STATUS] eq "Bewegung_erkannt" and [?Bewegung_bei_Scharfschaltung] eq "AN" and [?ANLAGE_STATUS_EXTERN] eq "scharf")
   (set ... an), (set ... aus)