(Gelöst)Klingeltaster mit DOIF simulieren?

Begonnen von misux, 21 März 2018, 15:25:26

Vorheriges Thema - Nächstes Thema

misux

 ::) Hallo! Ich wieder... ;D

Ich komme nicht so recht weiter...

Ich habe eine Funkklingel im Garten die ich mit einem Funktaster klingeln lassen kann. Diesen Taster habe ich im FHEM eingelernt und als Klingeltaster eingelernt.

Internals:
   00         0000
   DEF        1527x8429e 0001 0000
   IODev      CULHat2
   NAME       KlingelTaster
   NR         75
   STATE      off
   TYPE       IT
   XMIT       d0f00ddf1d
   XMITdimdown 00
   XMITdimup  00
   XMITon     0001
   CODE:
     1          1527x8429e
   READINGS:
     2018-02-20 20:18:48   protocol        EV1527
     2018-03-21 14:44:23   state           off
Attributes:
   IODev      CULHat2
   devStateIcon on:Wecker.Wochentags off:Wecker.Wochentags
   room       Garten,IT
   webCmd     toggle


Wenn ich nun toggle im FHEM drücke klingelt die Klingel im Garten... Soweit so gut!

Nun möchte ich das die Klingel JEDESMAL kingelt wenn Mein dummy (GartenKlingel) "on" UND mein TorSensor (SENSOR_1_Tor) "open" ist.

Mit meinem Code klappt es nicht richtig weil es nur einmal klingelt und dann nicht mehr... Wo liegt mein Fehler?

Internals:
   CFGFN     
   DEF        ([GartenKlingel:"on"] and [SENSOR_1_Tor:"open"])
(set KlingelTaster on)
DOELSE
(set KlingelTaster off)
   NAME       DOIFGartenKlingel
   NR         14272
   NTFY_ORDER 50-DOIFGartenKlingel
   STATE      cmd_2
   TYPE       DOIF
   READINGS:
     2018-03-21 14:54:58   Device          GartenKlingel
     2018-03-21 14:44:24   cmd             2
     2018-03-21 14:44:24   cmd_event       SENSOR_1_Tor
     2018-03-21 14:44:24   cmd_nr          2
     2018-03-21 14:54:58   e_GartenKlingel_events off
     2018-03-21 14:44:50   e_SENSOR_1_Tor_events basicSet: closed
     2018-03-21 14:38:18   mode            enabled
     2018-03-21 14:44:24   state           cmd_2
   Regex:
   condition:
     0          EventDoIf('GartenKlingel',$hash,'on',1) and EventDoIf('SENSOR_1_Tor',$hash,'open',1)
   devices:
     0           GartenKlingel SENSOR_1_Tor
     all         GartenKlingel SENSOR_1_Tor
   do:
     0:
       0          set KlingelTaster on
     1:
       0          set KlingelTaster off
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      off
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   GartenKlingel
     timerevent off
     triggerDev GartenKlingel
     timerevents:
       off
     timereventsState:
       state: off
     triggerEvents:
       off
     triggerEventsState:
       state: off
   internals:
   itimer:
   readings:
   trigger:
     all         GartenKlingel SENSOR_1_Tor
   uiState:
   uiTable:
Attributes:
   room       2 DOIF,Garten

 

Otto123

Hallo misux,

ich denke da sind ev. zwei Probleme:
1. Du triggerst auf zweimal Event mit UND - das kann eigentlich nicht funktionieren. Beide Events müssten zur gleichen Zeit kommen!

ich würde es so machen (ein Event, ein State nur Abfrage):
([GartenKlingel:"on"] and [?SENSOR_1_Tor] eq "open")

2. Es könnte noch sein, Du brauchst do always  :-X

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

misux

 ;D Mensch Otto123 , falls ich dir irgendwann mal auf der Straße begegne nehme ich dich in Arm! Also einen Männlichen Drücker! Nix falsch verstehen... ;D
VIELEN Dank!

Das do always hat den echten Erfolg gebracht... habe den Code jetzt angepasst der mit die klingel klingeln lässt wenn das Tor auf geht und GartenKlingel ON ist!


([GartenKlingel] eq "on" and [SENSOR_1_Tor] eq "open")
(set KlingelTaster toggle)


Eine Frage noch:

Kann ich nachdem einmal set KlingelTaster toggle gesetzt wurde 2min warten lassen bevor es wieder klingelt?

Otto123

cmdPause ?

Mein Code Beispiel hat nicht funktioniert? Jetzt triggerst Du zweimal auf Zustandsänderung - ich sags nur. Das ist unter Umständen was völlig anderes.

Oder Du wolltest mit dem Tor klingeln und nicht mit der Klingel? Dann hätte ich das vorgeschlagen:  ;)
([SENSOR_1_Tor:"open"] and [?GartenKlingel] eq "on")

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

misux

Jau, hab mich etwas unkonkret ausgedrückt... ::)

Mit dem SENSOR_1_Tor soll geklingelt werden ABER nur wenn GartenKlingel "on" ist!

GartenKlingel ist ein dummy der den status on/off bestizt und das Klingeln aktiviert oder deaktiviert.

Bei deinem code  klappt das mit dem Fragezeichen irgendwie nicht...

Otto123

ZitatZeitintervalle, Readings und Status ohne Trigger   back

Angaben in eckigen Klammern, die mit einem Fragezeichen beginnen, führen zu keiner Triggerung des Moduls, sie dienen lediglich der Abfrage.

Anwendungsbeispiel: Licht soll zwischen 06:00 und 10:00 angehen, getriggert wird nur durch den Taster nicht um 06:00 bzw. 10:00 Uhr und nicht durch das Device Home

define di_motion DOIF ([?06:00-10:00] and [button] and [?Home] eq "present")(set lamp on-for-timer 600)
attr di_motion do always
Was meinst Du mit klappt nicht? Fehler oder funktioniert nicht?
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

misux

Ups, sorry wollte nicht ignorieren... Hab es übersehen...

Nee, es funktioniert doch, hatte wieder mal einen Fehler beim abtippen...

Es lüüpptt nu!

Vielen Dank!