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
Versuch mal den fhem device name anstatt dem Dateiname.
Gesendet von meinem Doogee S60 mit Tapatalk
Du musst auf holiday abfragen, nicht auf weekend.
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
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
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
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
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
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)
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
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 (https://fhem.de/commandref_DE.html#holiday):
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.
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
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
Hi Bernd,
das Attribut ist gesetzt?
attr global holiday2we <DeineHolidayDatei>
Gruß,
Christian
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
Hallo Otto,
ich habe folgendes gesetzt:
define bw holiday
attr global holiday2we bw
Gruß
Bernd
naja und der STATE sah ja auch gut aus. Eigentlich alles richtig. :-[
@berett:
Wie wäre es, wenn du mal ein list liefern würdest von dem auswertenden "etwas"?
Wenn der STATE vom holiday-Device paßt, würde ich auch hier darauf tippen, dass es daran liegt und nicht an holiday/h2we.
@all: das DOIF-Problem von @Spartacus war vermutlich ebenfalls ein anderes, für einen in diesem Modul-Unerfahrenen wie mich sieht jedenfalls
Zitat von: Spartacus am 25 Dezember 2019, 14:04:43
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)
"komisch" aus. Glaube kaum, dass DOIF "and Weihnachtszeit" irgendwie als positiv wertet...
Just my2ct,
Beta-User
Zitat von: Damian am 25 Dezember 2019, 11:39:12
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)
Cool wäre noch: HeuteWochenendeMorgenWerktag
(z.B. für die Jalosiensteuerung im Kinderzimmer... morgens ausschlafen und abends wie am Werktag runter da am Folgetag Schule....)
Zitat von: Bartimaus am 07 Januar 2020, 10:54:30
Cool wäre noch: HeuteWochenendeMorgenWerktag
(z.B. für die Jalosiensteuerung im Kinderzimmer... morgens ausschlafen und abends wie am Werktag runter da am Folgetag Schule....)
Das kann man z. Zt. nur als separate Abfrage lösen:
... $we and !$twe
heißt: heute Wochenende, morgen Arbeitstag.
Für direkte Angaben hinter der Zeitangabe sind mir leider die Ziffern ausgegangen, man müsste nach der 9 mit A weitermachen :)
@ Beta-User
Was für einen genauen Auszug aus dem List meinst du?
Zitat von: Damian am 07 Januar 2020, 11:27:19
Das kann man z. Zt. nur als separate Abfrage lösen:
... $we and !$twe
heißt: heute Wochenende, morgen Arbeitstag.
Für direkte Angaben hinter der Zeitangabe sind mir leider die Ziffern ausgegangen, man müsste nach der 9 mit A weitermachen :)
So habe ich es zur Zeit ja auch gelöst...... ich sagte ja, es wäre ein Nice2have... bei dem was DOIF schon alles kann, habe ich mir gedacht das Dir da die Ziffern ausgegangen sind 8)
Zitat von: bernett am 07 Januar 2020, 14:03:02
@ Beta-User
Was für einen genauen Auszug aus dem List meinst du?
Du hast hier geschrieben, dass irgendeine Automatik bei den Rollläden nicht funktionieren würde:
Zitat von: bernett am 06 Januar 2020, 15:01:15ich 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.
Aber woher soll irgendwer wissen, wie deine Automatik für die Rollläden konkret aussieht...?
Das würden wir über ein (oder mehrere) "list" erfahren. Da du nicht weißt, was das ist, sollten wir hier aufhören, und du liest zumindest mal die hier im Anfängerbereich angepinnten Einträge, dann wird das hoffentlich etwas klarer.
Und dann mach' bitte einen gesonderten Thread auf, das hier ist jedenfalls mit einiger Sicherheit nicht dein Problem.
Hallo,
vielleicht darf ich mich hier ranhängen, da ich eine ähnliche Frage habe?
Wenn nicht, bitte bescheid geben, dann mache ich einen eigenen Faden auf.
Situation:
Da ich für längere Zeit freitags frei habe, habe ich meine Jalousiensteuerung angepasst, damit diese nun freitags zu den späteren Zeiten wie am Wochenende öffnen sollen.
Im DOIF sieht das so aus:
([{sunrise(900,"06:15","08:30")}|1234] or [{sunrise(900,"08:15","09:30")}|57])
Dadurch sollten die Jalousien doch montags bis donnerstags "früh" öffnen und freitags und am Wochenende später, richtig?
Nun habe ich in dieser Woche Urlaub und habe das auch in der holiday-Datei eingetragen:
4 04-13 04-16 Urlaub
Das globale Atrribut holidy2we verweist auch auf das entsprechende Device.
Das holiday Device:
Internals:
NAME nrw
NR 30
STATE Urlaub
TRIGGERTIME 1587074402.37055
TYPE holiday
READINGS:
2020-04-16 00:00:02 state Urlaub
2020-04-16 00:00:02 tomorrow none
2020-04-16 00:00:02 yesterday Urlaub
Attributes:
Mich hat nun gewundert, dass die Jalousien heute morgen um 06:15 Uhr geöffnet haben...
Wo ist mein (Denk)Fehler oder sehe ich vielleicht nur den Wald vor lauter Bäumen nicht?
Stehe bisher irgendwie auf dem Schlauch...
Vielen Dank schonmal für jegliche Tipps und Hilfe!
VG
Andreas
Hallo Andreas,
was gibt Dir das zurück?
list global holiday2we
falls da nichts zurück kommt hast Du was vergessen :)
Gruß Otto
Auch das dürfte ungefragtes Kapern fremder Threads sein...!
"Vermutlich" ist auch heute "4", aber DOIF kenne ich ansonsten nicht und kann dir daher nicht sagen, wie man da die Zusatzbedingung !$we reinbringt.
Das macht DOIF schon über $we :)
Ja ich hätte auch fragen können was gibt {$we} zurück :D
Zitat von: Otto123 am 16 April 2020, 09:26:59
Das macht DOIF schon über $we :)
Ja ich hätte auch fragen können was gibt {$we} zurück :D
Das hatte ich mir schon gedacht, aber das hier ist doch eindeutig und mit einem "or" verknüpft:
Zitat[{sunrise(900,"06:15","08:30")}|1234]
Zitat von: Beta-User am 16 April 2020, 09:21:57
Auch das dürfte ungefragtes Kapern fremder Threads sein...!
Ok,
darf ich hier antworten, oder soll ich einen neuen Faden aufmachen?
VG
Andreas
@Beta-User Das ist kein or das ist DOIF :) das muss so
@Andreas klar darfst Du antworten - jetzt ist es passiert :)
Zitat von: Otto123 am 16 April 2020, 09:33:38
@Beta-User Das ist kein or das ist DOIF :) das muss so
??? :o :P
Ich weiß schon, warum ich diese Syntax grausam finde.... Ich werd's wohl wirklich nie lernen und wende mich wieder mit Grausen ab...
Hallo Otto123,
hier die Antworten auf deine Fragen:
list global holiday2we
global nrw
{$we}
1
VG
Andreas
Die Ausgaben sind erstmal korrekt - aber:
Eventuell stand ich auf dem Schlauch und habe Beta-User falsch verstanden.
ZitatHinter der Zeitangabe kann ein oder mehrere Wochentage getrennt mit einem Pipezeichen | angegeben werden. Die Syntax lautet:
[<time>|0123456789] 0-9 entspricht: 0-Sonntag, 1-Montag, ... bis 6-Samstag sowie 7 für Wochenende und Feiertage (entspricht $we), 8 für Arbeitstage (entspricht !$we) und 9 für Wochenende oder Feiertag morgen (entspricht intern $twe)
Aber was macht DOIF jetzt Donnerstag or Wochenende? Die Frage wirst Du wohl dann doch besser separat im DOIF Forum stellen müssen und hoffen das Damian das auflöst :)
Ist dein FHEM halbwegs aktuell? Früher hatte DOIF nämlich sein eigenes "$we" gehabt und nicht die zentrale we Logik verwendet.
Ahoi,
Lösung zu meinem "Problem" in diesem (https://forum.fhem.de/index.php/topic,110908.msg1055634.html#msg1055634) Faden.
Besten Dank nochmal für die Hilfe und Unterstützung!
VG
Andreas
Ich hänge mich hier mal mit an, zum Thema holiday2we.
Ich nutze ASC um meine Rollos zu steuern. Nun möchte ich das ganze etwas verfeinern und die Hochfahrzeiten am WE und an den Feiertagen und Ferien später setzten.
Da ich hier nichts händisch machen möchte hole ich mir hier die aktuellen Feiertage und Ferien so ab.
Internals:
DEF ical url https://www.ferienwiki.de/exports/ferien/2021/de/baden-wuerttemberg 172800
FUUID 618fc21b-f33f-fc62-cdaf-fd8a9cb35b681088
NAME BW_Ferien
NOTIFYDEV global
NR 64
NTFY_ORDER 50-BW_Ferien
STATE triggered
TYPE Calendar
READINGS:
2021-11-13 15:21:23 lastUpdate 2021-11-13 15:21:21
2021-11-13 15:21:23 nextUpdate 2021-11-15 15:21:21
2021-11-13 15:21:23 nextWakeup 2021-11-15 15:21:21
2021-11-13 15:21:23 state triggered
Attributes:
room Ferien Feiertage
Internals:
DEF ical url https://www.ferienwiki.de/exports/feiertage/2021/de/baden-wuerttemberg 172800
FUUID 618fc300-f33f-fc62-c7d5-9320b3d2c4dfd6bf
NAME BW_Feiertage
NOTIFYDEV global
NR 65
NTFY_ORDER 50-BW_Feiertage
STATE triggered
TYPE Calendar
READINGS:
2021-11-13 15:21:20 lastUpdate 2021-11-13 15:21:18
2021-11-13 15:21:20 nextUpdate 2021-11-15 15:21:18
2021-11-13 15:21:20 nextWakeup 2021-11-15 15:21:18
2021-11-13 15:21:20 state triggered
Attributes:
room Ferien Feiertage
Unter get events sehe ich die freien Tage, das passt schon mal soweit. So nun muss ich ja hier das ganze von holiday in we umwandeln, damit dann das ASC darauf reagieren kann. So wie bekomme ich die beiden Kalender nun zusammen, damit holiday2we das ganze dann als WE anzeigt ? Dann müsste ja auch die Steuerung in ASC funktionieren.
Ich habe noch das Device angelegt.
Internals:
CFGFN
FUUID 618fe15d-f33f-fc62-c184-e923ec868ca37454
HOLIDAYFILE ./FHEM/holiday/bw.holiday
NAME bw
NR 107
READONLY 1
STATE none
TRIGGERTIME 1636844402.0364
TYPE holiday
READINGS:
2021-11-13 17:01:33 state none
2021-11-13 17:01:33 tomorrow none
2021-11-13 17:01:33 yesterday none
Attributes:
room Ferien Feiertage
Er möchte aber eine Datei haben, die ich ja nicht habe. Kann man das nun irgendwie mit einander verknüpfen damit er nicht auf die Datei zu greift sondern die Tage aus den beiden Kalendern holt ? Oder müsste ich die Daten aus den Kalendern in eine Datei schreiben lassen, die eben unter global liegt und das passende Format hat ?
Zitat von: Beta-User am 13 November 2021, 16:32:20
...eigentlich braucht es dazu keinen neuen Thread, sondern die Forensuche dürfte bereits hinreichend viele Treffer liefern...
Kurzfassung: mit IsWe() (ohne Argument (!)) kann kein Calendar-TYPE Device verwendet werden. (Und warum man unveränderliche ical nicht einfach lokal per wget holt, erschließt sich mir nach wie vor nicht).
Nochmal: Dein Problem ist in erster Linie Calendar, nicht holiday2we.
Das gezeigte .holiday ist tauglich, die Calendar-TYPE sind es nicht. Und die Forensuche liefert auch Treffer, wenn man sucht und nicht wild "irgendwohin irgendwas" schreibt.
Kurzfassung:
- Hilfe zu holiday2we findest du in der commandref bei "global".
- IsWe() (ohne Argument (!)) ist wahr, wenn entweder Samstag oder Sonntag ist oder eines der in holiday2we angegebenen (per Komma getrennten) Devices in "state" nicht "none" liefert => Calendar ist immer "was anderes", du mußt umpacken...
Hatte mich hiermit versucht, komme aber dann nicht weiter. https://wiki.fhem.de/wiki/Wochenende,_Feiertage_und_Schulferien (https://wiki.fhem.de/wiki/Wochenende,_Feiertage_und_Schulferien)
Ich ging davon aus das ich entweder mit einer Datei oder mir eben die Ferien / Feiertage runter laden lasse.
Die .holiday Datei muss ich mir dann indem Fall jedes Jahr selber zusammenstellen ?
IsWe() passier automatisch im Hintergrund ?
Ich komm mit FHEM einfach nicht klar. Ich steig da einfach nicht durch, daher tu ich mir so schwer.
Kannst du bitte erst mal erläutern, welchen Erkenntnisgewinn der TE von deiner Zusatzfrage haben wird?
Du "kaperst" nämlich einen gelösten Thread mit einem ganz anderen Problemkreis...