Kalender Ferien, dummy notify - will nicht

Begonnen von masterpete23, 24 Dezember 2018, 12:30:16

Vorheriges Thema - Nächstes Thema

Steffen

Asc hatte ich mir auch schon angesehen, aber muss sagen durch einen Sensor der als Xiaomi-Bodensensor meine Daten für Lux holt, war dann DOIF für mich die Bessere Wahl.

Ich nutze jetzt DOIF schon sehr lange und konnte bis jetzt alles damit umsetzten was für mich zu Steuern war, damit Steuer ich Alexa,Anwesenheit,Gartenbewässerung,Heizung,Licht und jetzt sind auch Rollos dazu gekommen und da war jetzt der Haken denn da konnte ich auch Lichtverhältnisse und Zeiten sowie Fenster/Türen offen umsetzten, aber ist jetzt ist mir in den Ferien aufgefallen das das Rolle auch in der Zeit aufgeht, was in meinem Komplexen DOIF dann einfach gegen zu steuern wäre mit nur einer Abfrage zu einen Dummy der den Wert hätte Ferien "ja/nein".

Ferien "ja" habe ich ja nun schon, jetzt muss ich sehen wie ich ein "nein" zaubern kann, aber irgendwie werde ich schon was finden.

trotzdem danke für eure Geduld und Hilfe schon mal...

Mfg Steffen

Otto123

#46
@Beta-User: Jeder Termin im Kalender wirft 9 Events  - es macht keinen Sinn auf alle 9 zu reagieren wenn einer oder zwei reichen. :)
                       Und ich wollte natürlich auch ein wenig sticheln :) :)
Vorschlag (getestet, damit  end funktioniert muss from etwas "früher" anfangen):
Familienkalender:changed:.*(start|end) { fhem("set BB_Ferien $EVTPART2") if defined fhem('get '.$NAME.' events filter:uid=="'.$EVTPART1.'",field(summary)=~"(?i)Herbstferien" limit:count=1,from=-2',1) }
Und im Dummy setzt Du einfach
attr BB_Ferien eventMap start:ja end:nein

Aber wenn das funktioniert sollte man die Sache einfacher gestalten. :)
z.B.: Du setzt Readings einfach im Kalender Device
Familienkalender:changed:.*(start|end) { fhem("setreading $NAME Ferien $EVTPART2") if defined fhem('get '.$NAME.' events filter:uid=="'.$EVTPART1.'",field(summary)=~"(?i)ferien" limit:count=1,from=-2',1) }

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

Steffen

Zitat von: Otto123 am 15 Oktober 2019, 19:51:09
@Beta-User: Jeder Termin im Kalender wirft 9 Events  - es macht keinen Sinn auf alle 9 zu reagieren wenn einer oder zwei reichen. :)
                       Und ich wollte natürlich auch ein wenig sticheln :) :)
Vorschlag (getestet, damit  end funktioniert muss from etwas "früher" anfangen):
Familienkalender:changed:.*(start|end) { fhem("set BB_Ferien $EVTPART2") if defined fhem('get '.$NAME.' events filter:uid=="'.$EVTPART1.'",field(summary)=~"(?i)Herbstferien" limit:count=1,from=-2',1) }
Und im Dummy setzt Du einfach
attr BB_Ferien eventMap start:ja end:nein

Aber wenn das funktioniert sollte man die Sache einfacher gestalten. :)
z.B.: Du setzt Readings einfach im Kalender Device
Familienkalender:changed:.*(start|end) { fhem("setreading $NAME Ferien $EVTPART2") if defined fhem('get '.$NAME.' events filter:uid=="'.$EVTPART1.'",field(summary)=~"(?i)ferien" limit:count=1,from=-2',1) }

Gruß Otto

Das wäre ja Perfekt aber leider bekomme ich bei beiden kein Ergebnis egal bei welchen von den beiden Versionen.

Ich versuche das Morgen früh nochmal durch zuspielen, wo der Fehler liegt, denn gerade geht mein Akku zu neige...

Mfg Steffen

riker1

Hallo,

wollte das mal nachbauen.

Habe aber folgenden Fehler:

2020.03.17 00:00:05.283 1: ERROR evaluating my $NAME='RLP_Ferientag';my $TYPE='dummy';my $EVENT='0';my $EVTPART0='0';my $SELF='N_RLP_Ferien1';{
fhem("set  RLP_Ferien_dummy 1") if defined fhem('get '.$NAME.' events filter:uid=="'.$EVTPART1.'",field(SUMMARY)=~"(?i)ferien" limit:count=1,from=0',1);
fhem("set  RLP_Ferientag 1") if defined fhem('get '.$NAME.' events filter:uid=="'.$EVTPART1.'",field(SUMMARY)=~"(?i)ferien" limit:count=1,from=0',1)
}: Global symbol "$EVTPART1" requires explicit package name (did you forget to declare "my $EVTPART1"?) at (eval 181226) line 2.
Global symbol "$EVTPART1" requires explicit package name (did you forget to declare "my $EVTPART1"?) at (eval 181226) line 3.

2020.03.17 00:00:05.283 3: N_RLP_Ferien1 return value: Global symbol "$EVTPART1" requires explicit package name (did you forget to declare "my $EVTPART1"?) at (eval 181226) line 2.
Global symbol "$EVTPART1" requires explicit package name (did you forget to declare "my $EVTPART1"?) at (eval 181226) line 3.



defmod N_RLP_Ferien1 notify RLP_Ferien.* {\
fhem("set  RLP_Ferien_dummy 1") if defined fhem('get '.$NAME.' events filter:uid=="'.$EVTPART1.'",field(SUMMARY)=~"(?i)ferien" limit:count=1,from=0',1);;\
fhem("set  RLP_Ferientag 1") if defined fhem('get '.$NAME.' events filter:uid=="'.$EVTPART1.'",field(SUMMARY)=~"(?i)ferien" limit:count=1,from=0',1)\
}


Was mache ich denn falsch?

Danke VG T
FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

Otto123

#49
Hallo riker1,

ich denke der hier ist falsch: RLP_Ferien.*
Was ist RLP_Ferien? Ein Calendar Device? Das notify reagiert mit .* auf viel zu viele Events!
Hier hast Du ein Beispiel dafür.

Wenn Du das nachbauen willst was Steffen wollte, warum hast Du dann den Trigger nicht analog gesetzt? RLP_Ferien:changed:.*(start|end)

Der Fehler sagt:"Global symbol "$EVTPART1" requires explicit package name" es gibt keinen $EVTPART1 - also besteht der Event auf den reagiert wurde nur aus einem Element.

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