Hauptmenü

holiday2we

Begonnen von Spartacus, 24 Dezember 2019, 20:51:16

Vorheriges Thema - Nächstes Thema

Spartacus

Hallo,
ich komme mit dem Attribut holiday2we nicht klar.
Ich habe eine holoday Datei angelegt in der die Feiertage eingetragen sind.
Das Attribut ist hoiday2we ist gesetzt auf den Namen der Datei mit den Feiertagen.

Heiligabend ist als Feiertag in der Liste eingetragen. Wenn ich jetzt aber {IsWe()} in fhem eingebe,wird mir "0" angezeigt. Warum wir das nicht korrekt ausgewertet?

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

Frank_Huber

Versuch mal den fhem device name anstatt dem Dateiname.

Gesendet von meinem Doogee S60 mit Tapatalk


Jamo

Du musst auf holiday abfragen, nicht auf weekend.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

Otto123

#3
Hallo Christian,

Etwas ausführlicher :)
Eintrag in global attr global holiday2we sachsen

separates device:
define sachsen holiday
dazu gibt es eine Datei
./FHEM/sachsen.holiday

Dann werden die Feiertage zu Weekend und iswe() funktioniert.
iswe() versteht aber kein Argument holiday wie Jamo behauptet. :D
$we is equivalent to calling IsWe(), which optionally takes the arguments "today", "yesterday", "tomorrow", MM-DD or YYYY-MM-DD. Note: for everything else "today" is assumed without an error message.

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

Spartacus

Hallo Otto,
danke für Deinen Support:

aktuell bei mir:
defmod hl.01.Feiertag holiday
attr hl.01.Feiertag alias Feiertag
attr hl.01.Feiertag group Kalender
attr hl.01.Feiertag room 99-Dienste -> Kalender
attr hl.01.Feiertag userReadings today {ReadingsVal("hl.01.Feiertag","state","")}

setstate hl.01.Feiertag Heiligabend
setstate hl.01.Feiertag 2019-12-24 20:51:39 state Heiligabend
setstate hl.01.Feiertag 2019-12-24 20:51:39 today Heiligabend
setstate hl.01.Feiertag 2019-12-24 20:51:39 tomorrow 1. Weihnachtstag
setstate hl.01.Feiertag 2019-12-24 20:51:39 yesterday none


in global:
attr global holiday2we hl.01.Feiertag

die Datei hl.01.Feiertag.holiday: (Verzeichnis /opt/fhem/fhem+ /opt/fhem/fhem/holiday/)


1 01-01 Neujahr
1 01-06 Heilige Drei Könige
1 05-01 Tag der Arbeit
1 10-03 Tag der deutschen Einheit
# 1 10-31 Halloween
1 11-01 Allerheiligen
1 12-24 Heiligabend
1 12-25 1. Weihnachtstag
1 12-26 2. Weihnachtstag
1 12-31 Silvester


2 -48 Rosenmontag
2 -02 Karfreitag
2  00 Ostersonntag
2  01 Ostermontag
2  39 Christi Himmelfahrt
2  50 Pfingsten
2  60 Fronleichnam

6 calcAdvent 28 Totensonntag
6 calcAdvent 21 1.Advent
6 calcAdvent 14 2.Advent
6 calcAdvent 7 3.Advent
6 calcAdvent 0 4.Advent


Das $we wird nicht ausgewertet. Meine DOIFS ignorieren den Wochentag Code "|7". Der state im hl.01.Feiertag wird korrekt angezeigt. Irgendwo ist der Wurm drin.

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

Otto123

#5
Aus meiner Sicht ist der Pfad falsch. Richtig /opt/fhem/FHEM oder /opt/fhem/FHEM/holiday laut Doku
https://fhem.de/commandref_modular.html#holiday
und würde ich da nicht machen, also nur eine Datei!

Mach doch mal ein list hl.01.Feiertag und poste die Ausgabe. Naja laut deinem setstate funktioniert das Gerät ;)

Und DOIF we und FHEM we sind zwei getrennte Dinge. Ich weiß nicht genau was DOIF aktuell auswertet.
DOIF ist mittlerweile für mich eine Art "parallel FHEM" - aber vielleicht erzähl ich da gefährliches Halbwissen.
Mir ist da diese Diskussion noch im Kopf https://forum.fhem.de/index.php/topic,94674.msg874877.html#msg874877

Also die Variable {$we} oder die Funktion {iswe()} sollte für holiday relevante Ergebnisse liefern. Was DOIF draus macht?

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

Spartacus

Moin Otto,
keine Ahnung warum, aber heute hat das DOIF funktioniert, ohne das ich etwas geändert habe. Das |7 bewirkt, dass hier nicht nur die Samstage und Sonntage zum Wochenede gezählt werden, sondern auch die Feiertage aus der Holiday-Datei. nd das hat gestern, am Heiligabend nicht funktioniert. Heute allerdings schon....Jetzt bekomme ich auch eine "1" zurückgegeben, wenn ich {IsWe()} in fhem eingebe. Ich vermute, dass fhem die Datei nicht richtig geladen hatte.

Eine Frage noch: Muss die .holiday-Date ins Unterverzeichnis holiday, oder in /opt/Fhem/fhem?

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

Frank_Huber

Eventuell die Reihenfolge des anlegens?
Das holiday2ee greift meine ich ja auch nur bei ner Änderung, also über Nacht.

Gesendet von meinem Doogee S60 mit Tapatalk


Damian

#8
Nur zur Info: DOIF benutzt inzwischen nur noch die FHEM-Funktion IsWe(). Es gilt also bei Wochentag-Angaben das, was {IsWe()} liefert.

Edit: Es gilt insb.:  9 = MWE (morgen Wochenende) = TWE (tomorrow weekend) = $twe = IsWe("tomorrow,$wday)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Spartacus

hallo,
danke fürs Feedback:
@Damian:
hier ging es aber um

Mir ging es um diese Sache hier:
DOELSEIF
## abends mit 50% Helligkeit einschalten
((
   ([16:30|7] or [17:30|8]) and  Weihnachtszeit)
                            and [?switch.di.01.OG.fl.SD.Boden.dum] eq "on")
   (set OG.fl.SD.Boden dim 50)


Gestern wurde der Heiligabend als Wochentag ausgewertet und die Funzel ging erst um 17:30 Uhr an und nicht, wie erwartet, um 16:30. Das " IsWe" war 0 und ich habe keine Ahnung warum.
Heute ist es gesetzt und der Part für die Morgenstunden lief im DOIF auch sauber durch...ich erwarte jetzt auch, dass es heute Nachmittag klappt...

Aber nochmal die Frage: Wo wird die holiday-datei erwartet. unter /opt/Fhem/fhem, oder unter /opt/Fhem/fhem/holiday. Bislang hatte ich die Datei immer nur unter /opt/Fhem/fhem
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

Christoph Morrison

Zitat von: Spartacus am 25 Dezember 2019, 14:04:43
Aber nochmal die Frage: Wo wird die holiday-datei erwartet. unter /opt/Fhem/fhem, oder unter /opt/Fhem/fhem/holiday. Bislang hatte ich die Datei immer nur unter /opt/Fhem/fhem
Spartacus

Commandref:
ZitatDas Modul versucht die Datei <name>.holiday erst in modpath/FHEM zu öffnen, und dann in modpath/FHEM/holiday, Letzteres enthält eine Liste von per FHEM-update verteilten Dateien für diverse (Bundes-)Länder.

modpath ist üblicherweise /opt/fhem, also erst in /opt/fhem/FHEM und dann in /opt/fhem/FHEM/holiday.

Otto123

Zitat von: Spartacus am 25 Dezember 2019, 14:04:43
Aber nochmal die Frage: Wo wird die holiday-datei erwartet. unter /opt/Fhem/fhem, oder unter /opt/Fhem/fhem/holiday. Bislang hatte ich die Datei immer nur unter /opt/Fhem/fhem
Spartacus
Gut dann: dreimal gefragt und dreimal geantwortet :)  :D ;D
                            Weder noch  :-X
Die richtige Antwort steht in #5 und #10 und in den jeweiligen Links zur Doku ;)

Und ich gehe mit Franks Vermutung: Wenn die holiday Datei erst am 24.12. angelegt wurde, greifen die DOIF Timer eventuell erst nach einem neuen check. Deswegen die Empfehlung: so etwas direkt mit der Funktion oder der Variable kontrollieren!
Mit einem list vom DOIF zum fraglichen Zeitpunkt sieht man auch mehr.

Schönen 1. Weihnachtsfeiertag noch
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

bernett

Hallo zusammen,

ich habe auch eine Frage zu holiday2we. Ich habe alles wie in der Anleitung eingerichtet, aber bei mir verhalten sich meine Rollläden an Feiertagen nicht wie am Wochenende. Es sieht so aus, als ob der holiday Eintag ignoriert wird.

Lauf Reference sollte das ja so aussehen:

If this attribute is set, then the $we variable will be true, if it is either saturday/sunday, or the value of the holiday variable referenced by this attribute is not none.
If it is a comma separated list, then it is true, if one of the referenced entities is not none.

bei meinem holiday Eintrag steht folgendes:

STATE        Heilige Drei Könige


Ich hoffe mir kann jemand auf die Sprünge helfen.

Gruß

Bernd

Spartacus

Hi Bernd,
das Attribut ist gesetzt?

attr global holiday2we <DeineHolidayDatei>

Gruß,
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

Otto123

Hallo,

@Christian Das stimmt so nicht ganz Das Attribute verweist nicht auf die Datei sondern auf das Holiday Device!

@Bernd Du hast beides? Also ein Holiday Device und attribute gesetzt?
define sachsen holiday
attr global holiday2we sachsen

ZitatDas Modul versucht die Datei <name>.holiday erst in modpath/FHEM .....

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