Triggern von 4 FACH DOIF & fhem löst nicht aus

Begonnen von Trebor5, 09 April 2018, 21:07:02

Vorheriges Thema - Nächstes Thema

Trebor5

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 ?
Odroid N2,Hauptsensoren Homematic + 1 Wire + 8Kanal Homematic auf Relay Schaltung. Forum Beiträge sind meine letzte Hoffnung nach Stundenlangen erfolglosen suchen und probieren.

KernSani

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
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Trebor5

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.
Odroid N2,Hauptsensoren Homematic + 1 Wire + 8Kanal Homematic auf Relay Schaltung. Forum Beiträge sind meine letzte Hoffnung nach Stundenlangen erfolglosen suchen und probieren.

Otto123

Hi,

ist das zulässiger Syntax? Hier 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
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

Ellert

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

CoolTux

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)
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net