Hauptmenü

neues Modul DOIF

Begonnen von Damian, 21 Mai 2014, 15:53:18

Vorheriges Thema - Nächstes Thema

Spartacus

Zitat von: Damian am 24 Dezember 2014, 12:09:58
Dazu brauchst du, wie könnte es anders sein, das DOIF-Weihnachtspaket ;) aus dem Nachbarthread.

Dann Zeit mit Fragezeichen angeben:

[?16:00-23:00] and [hl.01.Feiertag:state] eq "Heiligabend" and  [Taster:buttons] eq "pressed"

Gruß

Damian
Danke Damian,
aber das ändert doch nichts daran, dass durch das "Released" des Tasters die Bedingung unwahr wird, und dadurch der Aktor wieder ausgeht, oder?
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Damian

#961
Zitat von: Spartacus am 24 Dezember 2014, 12:22:55
Danke Damian,
aber das ändert doch nichts daran, dass durch das "Released" des Tasters die Bedingung unwahr wird, und dadurch der Aktor wieder ausgeht, oder?
Christian

ja, du hast nur ein Code-Schinpsel gepostet, daher kann ich nicht wissen, wie deine komplette DOIF-Definition aussieht. Abgesehen davon hast du nicht geschrieben, dass sobald der Taster den Zustand ändert dein Licht ausgeht, sondern um 23:00 Uhr. Als ging ich davon aus, dass du keinen ELSE-Fall definiert hast.

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

Spartacus

Oh sorry Damian,
das stimmt natürlich!
Das ist der Zweig, der bei 16:20 anfängt.

((([07:00-08:30|12345] and [hl.01.Feiertag:state] eq "none" or
[16:30-22:00|12345] and ([hl.01.Feiertag:state] eq "none" and ![cal.01.Ferien.dum]) or
[08:30-23:00] and [cal.01.Ferien.dum] or
[08:30-23:00] and [hl.01.Feiertag:state] ne "none" or
[08:30-23:00|60]) and (($mday>=25 and $month==12) or ($mday<=12 and $month==1))) or
[16:20-23:00] and [hl.01.Feiertag:state] eq "Heiligabend" and  [EG.ss.TK.Haustuer:buttons] eq "pressed" and [?rp.01.EG.ku.SD.Kochinsel] or
[08:30-02:00] and [hl.01.Feiertag:state] eq "Silverster") (set rp.01.EG.ku.SD.Kochinsel on)
DOELSE (set rp.01.EG.ku.SD.Kochinsel off)


Attribute sind nicht gesetzt.
da soll gleich der Weihnachtsbaum angehen, wenn die Tür aufgeschlossen wird.... :-)
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Damian

Zitat von: Spartacus am 24 Dezember 2014, 12:45:19
Oh sorry Damian,
das stimmt natürlich!
Das ist der Zweig, der bei 16:20 anfängt.

((([07:00-08:30|12345] and [hl.01.Feiertag:state] eq "none" or
[16:30-22:00|12345] and ([hl.01.Feiertag:state] eq "none" and ![cal.01.Ferien.dum]) or
[08:30-23:00] and [cal.01.Ferien.dum] or
[08:30-23:00] and [hl.01.Feiertag:state] ne "none" or
[08:30-23:00|60]) and (($mday>=25 and $month==12) or ($mday<=12 and $month==1))) or
[16:20-23:00] and [hl.01.Feiertag:state] eq "Heiligabend" and  [EG.ss.TK.Haustuer:buttons] eq "pressed" and [?rp.01.EG.ku.SD.Kochinsel] or
[08:30-02:00] and [hl.01.Feiertag:state] eq "Silverster") (set rp.01.EG.ku.SD.Kochinsel on)
DOELSE (set rp.01.EG.ku.SD.Kochinsel off)


Attribute sind nicht gesetzt.
da soll gleich der Weihnachtsbaum angehen, wenn die Tür aufgeschlossen wird.... :-)
Christian

ja, das ist natürlich immer die Gefahr, wenn man den DOELSE-Fall bei so vielen Abfragen benutzt. Denn es kann immer wieder Trigger-Konstellationen geben, die man zunächst nicht überblickt, die dazu führen, dass die Bedingung unwahr wird.

Wenn andere Zustände des Tasters, wie "release" keine Bedeutung zum Ausschalten haben und du kein do always Attribut definiert hast, dann kannst du gleich statt:

[EG.ss.TK.Haustuer:buttons] eq "pressed"

nur

[EG.ss.TK.Haustuer:buttons]

angeben.

Und bei der Angabe [?rp.01.EG.ku.SD.Kochinsel] meinst du wahrscheinlich [?rp.01.EG.ku.SD.Kochinsel] ne "on"

Gruß

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

Spartacus

Danke Damian,
ich möchte mich auch genrell für das DOIF Modul das Weihnachtspaket und ganz besonders für die schnelle Hilfe in den vergangenen Wochen ganz herzlich bedanken. Natürlich auch bei allen anderen Helfern.

Vom Weihnachtspaket Konnte zwar noch nicht alle neuen Funktionen ausprobieren (verstanden habe ich das Eine oder Andere auch noch nicht!), werde aber sicherlich in den nächsten Tagen weiter tüfteln.

Ich weiß nicht, ob jemand meinen Post zum "Sequence-Thema" drei, vier Posts zuvor, gesehen hat. Wenn dazu noch jemand eine Idee hat, wäre das klasse!

Sonst wünsche ich Dir und allen anderen fhem- und DOIF-Nutzern einen tollen Heiligabend und Frohe Weihnachten....

Gruß,
Christian

Gruß,
Spartacus.
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

robodrill

#965
Hallo,

habe ein kleines Problem. Ich versuche eine Rollade in der Woche ( kein Feiertag ) um 06:05 Uhr hochzufahren und am WE und an Feiertagen erst um 8:01 Uhr. Leider erfolgt immer das hochfahren um 06:05 Uhr weil dies zuerst eintritt.Die "holiday" Datei ist angelegt und per get wird auch der richtige Tag ausgegeben.
Siehe Screenshot

Was mache ich falsch?


Otto

#966
Hallo,

an den timer_1_c1, timer_2_c1 usw. kann man nicht sehen was zuerst eintritt.

Aber probiere mal statt 7 und 8 für Wochentage 1,2,3,4,5 und für Wochenende 6,0
Gruss Otto

.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.

docker - homematic

Bennemannc

Hallo,

also ich würde auf ($we) bzw. auf (!$we). Die Oderverknüpfung vorne sieht etwas komisch aus. Ich weiß nicht ob ($we) auch Feiertage beinhaltet. Müßtest Du mal nachlesen. Zudem habe ich das in zwei "at" gepackt - einer für rauf und einer für runter.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

KernSani

Nur als kurze Ergänzung: $we enthält Feiertage, wenn globales Attribut holiday2we gesetzt ist und eine entsprechende.holiday-Datei vorhanden ist.

Frohes Fest,

Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

robodrill

#969
Zitat von: Bennemannc am 25 Dezember 2014, 18:47:32
Hallo,

also ich würde auf ($we) bzw. auf (!$we). Die Oderverknüpfung vorne sieht etwas komisch aus. Ich weiß nicht ob ($we) auch Feiertage beinhaltet. Müßtest Du mal nachlesen. Zudem habe ich das in zwei "at" gepackt - einer für rauf und einer für runter.

Gruß Christoph
Also lt. commandref sollte das so mit "or" gehen. Hatte vorher alles in drei "doif" ( 1 Rauf Woche, 1x rauf WE und 1x runter ) ging aber mit der Unterscheidung von Woche und Wochenende auch nicht. Aktuell heute morgen festgestellt das die Rollade um 06:05 Uhr rauf ging statt um 8:01 Uhr.
für "holiday" ist alles angelegt inkl holiday2we und nw.holiday ( Meine Tabelle für NRW ).

ICH MUSS mich korrigieren, an normalen Wochenenden funktioniert ALLES. NUR nicht jetzt wo Weihnachten auf Mi,Do und Fr fällt.
Hat da jemand eine Idee woran es liegen könnte.

EDIT (26.12.2014): Ich glaube das ich den Fehler gefunden habe. "holiday2we" war auskommentiert, da ich annahm das es für DOIF nicht notwendig ist. Es scheint aber nicht so. Jetzt funtioniert beides, sowohl alles in einer DOIF als auch jede Funktion mit einer eigenen DOIF.

Otto

Hallo,

hast du denn holiday abgefragt? get <name> today
Oder du machst ein {$we} in die Komandozeile, sollte heute 1 ausgeben

Gruss Otto

.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.

docker - homematic

robodrill

Zitat von: Otto am 25 Dezember 2014, 20:50:10
Hallo,

hast du denn holiday abgefragt? get <name> today
Oder du machst ein {$we} in die Komandozeile, sollte heute 1 ausgeben
get nw today ergibt 1. Weihnachtstag und {$we} ergibt 1

FHEMbeta

Ich würde gerne einen Schalter temperaturabhängig an- und ausschalten. Der Temperatursensor heißt Temp_Brahea und hat die Readings temperature und temperature2. Der Schalter(kanal) heißt Heizung_Sw_01.

Warum erzeugt der folgende Code keine funktionierende Schaltung (bei kleiner gleich -4°C bzw. 2.5°C einschalten, sonst aus)? Stattdessen bekomme ich auf dem HomeMatic USB-Stick einen Highload Fehler.

# Steuerung Brahea
define Steuerung_Brahea DOIF ([Temp_Brahea:temperature] <= -4 or [Temp_Brahea:temperature2] <= 2.5)  (set Heizung_Sw_01 on) DOELSE (set Heizung_Sw_01 off)
attr Steuerung_Brahea do always
attr Steuerung_Brahea room Balkon

StefanW

Hallo,

Ich habe ein kleines Problem mit meiner DOIF - Funktion.

DOIF ([07:00-22:35|7] or [13:00-21:35|8] and [rr_Stefan] eq "home") (set Adventskranz on) DOELSE (set Adventskranz off)

Mein Adventskranz soll also am WE und an Feiertagen von 7 - 22.35 Uhr, unter der Woche von 13 - 21.35 Uhr an sein, aber nur wenn ich zu Hause bin.
Globales Attribut holiday2we ist gesetzt ist und eine entsprechende .holiday-Datei ist vorhanden.
Anwesenheit per Residentsmodul funktioniert.

Mein Problem ist nun, das zwar zur richtigen Zeit an & ausgeschaltet wird, aber wenn sich zwischenzeitlich der Anwesenheitsstatus von home auf absent ändert, wird das ignoriert und das Licht bleibt trotzdem an.

Wo liegt da mein Fehler?

Gruß
Stefan

der-Lolo

#974
@Alexander

versuch mal das temp reading auf zahlen zu filtern...

[Temp_Brahea:temperature:d]

natürlich für beide..

Ausserdem solltest Du dem sensor das attribut event on change reading geben.