[gelöst] Lampen Sunset mit DOIF Ansatz fehlt

Begonnen von Larusso, 20 April 2018, 11:13:52

Vorheriges Thema - Nächstes Thema

Larusso

Hallo zusammen,

ich bekomme einfach die Befehlszeile nicht zusammengestellt, vielleicht kann mir jemand auf die Sprünge helfen. Ich möchte wenn ich mein Garagentor auffahre meine Beleuchtung in der Einfahrt einschalten lassen. Ich habe am Garagentor einen Reedkontakt im ESP Modul eingebunden wenn der Switch mir das Signal off gibt soll die Lampe in der Einfahrt angehen. Dies habe ich im Moment mit festen Zeiten gesteuert, funktioniert auch. Bedingt durch den Jahreszeitenwechsel muss ich aber alle paar Monate die Zeiten ändern. Wie bekomme ich sunset nun in die def:

(([?21:00-7:00]) and ([ESPEasy_Garagentor:Switch] eq "off")) (set HUEDevice1 on)

Devicelist sieht so aus:

Internals:
   DEF        192.168.178.128 80 espBridge Garagentor
   ESP_BUILD  140
   ESP_SLEEP  0
   ESP_UNIT   0
   ESP_VERSION 9
   HOST       192.168.178.128
   IDENT      Garagentor
   INTERVAL   60
   IODev      espBridge
   LASTInputDev espBridge
   MSGCNT     2
   NAME       ESPEasy_Garagentor
   NOTIFYDEV  global
   NR         333
   NTFY_ORDER 50-ESPEasy_Garagentor
   PORT       80
   STATE      absent
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    1.38
   espBridge_MSGCNT 2
   espBridge_TIME 2018-04-20 10:43:48
   .attraggr:
   .attrminint:
   READINGS:
     2018-03-31 15:53:07   Sensor          off
     2018-04-20 10:43:48   Switch          on
     2018-04-20 11:13:08   presence        absent
     2018-04-20 11:13:08   state           absent
   helper:
     fpc        1524212673
     pm:
       Encode     1
       JSON       1
     received:
Attributes:
   IODev      espBridge
   Interval   60
   alias      Garagentor auf
   group      ESPEasy Device
   presenceCheck 1
   readingSwitchText 1
   room       ESPEasy
   setState   3


einfach die zeit tauschen funktioniert nicht. Bitte um Hilfe........danke Leute  ;)
nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,

CoolTux

Du musst doch nur die Commandref lesen


[+{sunset_rel(900,"17:00","21:00")}]



([?+{sunset_rel(900,"17:00","21:00")}] and [ESPEasy_Garagentor:Switch] eq "off") (set HUEDevice1 on)
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

Damian

Zitat von: CoolTux am 20 April 2018, 11:21:38
Du musst doch nur die Commandref lesen


[+{sunset_rel(900,"17:00","21:00")}]



([?+{sunset_rel(900,"17:00","21:00")}] and [ESPEasy_Garagentor:Switch] eq "off") (set HUEDevice1 on)


Neuerdings ist es besser mit absoluten Zeitangaben zu arbeiten, hier z. B.

[{sunset(900,"17:00","21:00")}]

Die aktuelle DOIF Version verhindert bei absoluten Zeitangaben (ohne Plus davor) mehrfaches Schalten pro Tag. Dieses Problem gab es immer wieder in Verbindung mit  sunset, sunrise, twilight und zufälliger Verzögerung.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Beta-User

Wenn es ganz ohne Zeitbegrenzung sein darf, kann man auch isday() nutzen, siehe das Beispiel aus
https://forum.fhem.de/index.php/topic,84883.msg772452.html#msg772452: define TuerAufRolloHoch notify Terrassentuer:open { fhem("set Rollo_Flur off") if !isday() }

(isday() kann auch zeitliche Begrenzungen, ich weiß schon).

Gruß, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Larusso

#4
Danke für die schnelle Hilfe, das werde ich am Wochenende mal testen, wenn es funzt gibt es natürlich noch eine Rückmeldung und ein [gelöst] im Header  ;D

Habe das gestern Abend gegen 20Uhr mal getestet leider ohne Erfolg, iergendwie schaltet die Lampe nicht ein. Genommen habe ich das Beispiel von Damian:

([?+{sunset_rel(900,"17:00","21:00")}] and [ESPEasy_Garagentor:Switch] eq "off") (set HUEDevice1 on)

nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,

Damian

Zitat von: Larusso am 20 April 2018, 12:30:14
Danke für die schnelle Hilfe, das werde ich am Wochenende mal testen, wenn es funzt gibt es natürlich noch eine Rückmeldung und ein [gelöst] im Header  ;D

Habe das gestern Abend gegen 20Uhr mal getestet leider ohne Erfolg, iergendwie schaltet die Lampe nicht ein. Genommen habe ich das Beispiel von Damian:

([?+{sunset_rel(900,"17:00","21:00")}] and [ESPEasy_Garagentor:Switch] eq "off") (set HUEDevice1 on)

na ja, so ganz ist das nicht mein Beispiel, deine Definition kann so nicht funktionieren, denn deine sunset-Definition ist nur ein Zeitpunkt und kein Zeitintervall, du wirst es nicht schaffen Garagentor auf off zu schalten, wenn gerade das Event von sunset kommt. ;)


([?{sunset(900,"17:00","21:00")}-07:00] and [ESPEasy_Garagentor:Switch] eq "off") (set HUEDevice1 on)

Du kannst genauso isday abfragen, der Nachteil ist allerdings, dass man nicht ohne weiteres, wie z. B. bei sunset die Zeitverschiebung nach seinen Wünschen angeben kann.




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

Larusso

Ähmmm so ganz verstehe ich das jetzt nicht:

Zitatna ja, so ganz ist das nicht mein Beispiel, deine Definition kann so nicht funktionieren, denn deine sunset-Definition ist nur ein Zeitpunkt und kein Zeitintervall, du wirst es nicht schaffen Garagentor auf off zu schalten, wenn gerade das Event von sunset kommt. ;)


Code: [Auswählen]
([?{sunset(900,"17:00","21:00")}-07:00] and [ESPEasy_Garagentor:Switch] eq "off") (set HUEDevice1 on)

Du kannst genauso isday abfragen, der Nachteil ist allerdings, dass man nicht ohne weiteres, wie z. B. bei sunset die Zeitverschiebung nach seinen Wünschen angeben kann.

meine Ziel ist es nicht in festgelegten Zeitraum zwischen 17 und 21 Uhr das Licht an zu machen wenn das Garagentor auf ist sonder ich möchte den Zeitraum variabel zum Sonnenuntergang haben, Heist wenn es um 17 Uhr noch nicht Sonnenuntergang ist soll das Licht wenn die Garage aufsteht auch nicht an gehen.
nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,

Damian

Zitat von: Larusso am 24 April 2018, 15:57:03
Ähmmm so ganz verstehe ich das jetzt nicht:

meine Ziel ist es nicht in festgelegten Zeitraum zwischen 17 und 21 Uhr das Licht an zu machen wenn das Garagentor auf ist sonder ich möchte den Zeitraum variabel zum Sonnenuntergang haben, Heist wenn es um 17 Uhr noch nicht Sonnenuntergang ist soll das Licht wenn die Garage aufsteht auch nicht an gehen.

Dann probiere es einfach aus und lies hier nach: https://fhem.de/commandref_DE.html#DOIF_Zeitintervalle_Readings_und_Status_ohne_Trigger
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Otto123

#8
Hi,

möchtest Du, dass das Licht angeht, wenn Sonnenuntergang eintritt und das Tor offen steht?
oder möchtest Du, dass das Licht angeht wenn das Tor aufgeht nach Sonnenuntergang?

Was Du gemacht hast bedeutet, wenn Du das Tor aufmachst und es ist zufällig exakt der Zeitpunkt "Deines" Sonnenunterganges, dann geht das Licht an. Ich glaube das schafft man nicht.  ;D

Mein Beispiel in der Garage, Licht geht an falls das Tor nach Sonnuntergang aufgeht und es geht aus falls das Tor wieder zugeht:
defmod di_GarageLicht DOIF ([{sunset("REAL")}-02:00] and [RC81_2_TorUnten] eq "open") (set LichtGa.* on) DOELSE (set LichtGa.* off)


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

Larusso

#9
Otto du bist es....... genauso wollte ich es auch, nur das ich das über Timer angelassen habe aber die Option über Tor zu ist ja noch viel eleganter. Das teste ich jetzt mal, danke für den super Tipp.


So habe das ganze jetzt folgendermaßen definiert:

([{sunset("HORIZON=+3.0")}-06:00] and [ESPEasy_Garagentor:Switch] eq "on") (set HUEDevice4 on) DOELSE (set HUEDevice4 off)

hab HORIZON genommen und mit den Gradzahlen ein bisschen getestet was für mich am angenehmsten war, funktioniert prima, danke Otto  ;D

@Damian: danke für den Tipp mit der commandref zu sunset, diese habe ich mir schon durchgelesen, mein Problem bezog sich auf den Zusammenhang der definition da hatte ich doch arge Schwierigkeiten. Gibt halt Menschen die mit Nullen und Einsen nicht immer sofort warm werden. Ich betreibe das ganze als Hobby und freue mich über jeden Kleinen Fortschritt wo andere hier wahrscheinlich nach zehn Minuten mit durch sind. Aber hier im Forum wird einem in der Regel super schnell geholfen.

Ich lese schon viel nach aber finde auch nicht immer alles sofort aus Anhieb     und Posts a la "lese dir erst mal dies und jenes durch bevor du solche Fragen stellst" überlese ich mittlerweile schon. Was nicht auf dich bezogen sein soll Damian.

So lange Rede kurzer Sinn............vielen dank an die prompte und kompetente Unterstützung an alle  ;) läuft jetzt alles prima und ich konnte das sunset auch direkt in meine Motion Devices im Flur einbinden 

nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,

Damian

Zitat von: Larusso am 24 April 2018, 17:51:57
Otto du bist es....... genauso wollte ich es auch, nur das ich das über Timer angelassen habe aber die Option über Tor zu ist ja noch viel eleganter. Das teste ich jetzt mal, danke für den super Tipp.


So habe das ganze jetzt folgendermaßen definiert:

([{sunset("HORIZON=+3.0")}-06:00] and [ESPEasy_Garagentor:Switch] eq "on") (set HUEDevice4 on) DOELSE (set HUEDevice4 off)

hab HORIZON genommen und mit den Gradzahlen ein bisschen getestet was für mich am angenehmsten war, funktioniert prima, danke Otto  ;D

@Damian: danke für den Tipp mit der commandref zu sunset, diese habe ich mir schon durchgelesen, mein Problem bezog sich auf den Zusammenhang der definition da hatte ich doch arge Schwierigkeiten. Gibt halt Menschen die mit Nullen und Einsen nicht immer sofort warm werden. Ich betreibe das ganze als Hobby und freue mich über jeden Kleinen Fortschritt wo andere hier wahrscheinlich nach zehn Minuten mit durch sind. Aber hier im Forum wird einem in der Regel super schnell geholfen.

Ich lese schon viel nach aber finde auch nicht immer alles sofort aus Anhieb     und Posts a la "lese dir erst mal dies und jenes durch bevor du solche Fragen stellst" überlese ich mittlerweile schon. Was nicht auf dich bezogen sein soll Damian.

So lange Rede kurzer Sinn............vielen dank an die prompte und kompetente Unterstützung an alle  ;) läuft jetzt alles prima und ich konnte das sunset auch direkt in meine Motion Devices im Flur einbinden

wenn bei dir  [ESPEasy_Garagentor:Switch] eq "off" ein andauernder Zustand für "Tor offen" sein kann, dann hättest du ja gerade das von dir genannte Problem mit dem Einschalten des Lichtes beim Sonnenuntergang. Daher mein Hinweis auf das Fragezeichen, welches das Triggern des Intervalls verhindert.

Allerdings gibt´s dann auch keinen Trigger um 07:00. Wenn du das Triggern ohne Fragezeichen zulassen willst, dann musst du wiederum nicht auf Zustand, sondern auf Ereignis triggern, denn dieses ist nur kurzzeitig wahr, hier also [ESPEasy_Garagentor:"Switch:.off"].

Es bleibt also noch viel zu lesen :)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Larusso

ALso bei mir funktioniert es so wie es soll. danke.
nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,