NEWS
*gelöst * iCal - Blockly unzuverlässig ausgeführt
-
Hallo zusammen.
Ich verwende eine iCal Instanz und einen eingebundenen Kalender mit Filter, um mich zu bestimmten Uhrzeiten sanft wecken zu lassen, und am Schluss auch noch einen lauten Wecker hinterher zu schieben.
Dazu habe ich in dem Kalender ein Ereignis "Wecker" eingetragen, welches ich im iCal Adapter filtere (Daten werden korrekt gefunden). Ich starte das langsame hochdrehen des Lichts beim Beginn des Termins und wenn das Ende des Termins erreicht ist, spiele ich einen Ton bzw. meine Alexa Tageszusammenfassung. Zum Setzen der auslösenden Datenpunkte verwende ich die entsprechende Funktion des iCal AdaptersProblem
Einzelne Elemente des Scripts werden leider nur unregelmäßig automatisiert ausgeführt, teilweise wird nur das Licht gesteuert, teilweise nur die Tageszusammenfassung abgespielt. Es funktioniert zu 100%, wenn ich die Datenpunkte testweise per Hand setze (Start = Dimmer wird gestartet, End = Zusammenfassung wird abgespielt). Daher ist es wahrscheinlich so, dass entweder die Datenpunkte nicht richtig gesetzt werden, oder die das Blockly nicht korrekt triggern. Zum Teil werden die Sachen auch verspätet ausgeführt (z.B. 15-30 Minuten später), manchmal anscheinend gar nicht.Konfiguration
Kann mir jemand einen Tip geben, was ich noch falsch mache? Ein typischer Wecker-Termin beginnt bei mir z.B. um 08:00 Uhr und endet um 08:15 Uhr.
Ich bin für alle Hinweise dankbar, und sollte es einen Adapter geben, der etwas vergleichbares tut, steige ich auch gerne um.
-
@tableautin sagte in iCal - Blockly unzuverlässig ausgeführt:
Ich bin für alle Hinweise dankbar, u
was ist Start/Stop?
am besten mal die Objektdaten in code-tags postenwenn das Skript innerhalb von 8 Sekunden mehrfach getriggert wird startet der timeout mehrfach und kann icht meht gestoppt werden
-
@homoran sagte in iCal - Blockly unzuverlässig ausgeführt:
die Objektdaten in code-tags posten
{ "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1659561028395, "common": { "name": "StartStop", "desc": "Manually created", "role": "state", "type": "string", "def": "", "read": true, "write": true, "alias": { "id": "0_userdata.0.Virtual_Devices.WeckerStartStop" } }, "native": {}, "acl": { "object": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1638 }, "_id": "alias.0.Virtual.Wecker.StartStop", "type": "state" }
Das ist nur ein Custom Datenpunkt, der über einen Alias angesprochen wird. Wird durch iCal Adapter auf "Start" bzw. "End" gesetzt, vom Script auf "LEER" wenn der laute Wecker ausgeführt wurde.
wenn das Skript innerhalb von 8 Sekunden mehrfach getriggert wird startet der timeout mehrfach und kann icht meht gestoppt werden
Das Script wird nicht mehrfach getriggert (zumindest wüsste ich nicht woher), da nur einmal der Wert typischerweise nur einmal auf "Start" und einmal auf "End" gesetzt wird. Einen Timeout setze ich nicht ein, nur eine zeitgesteuerte Schleife (und die ist so ausgelegt, dass das Abbruchkriterium Dimmerlevel = 100 nach ca. 13 Minuten erreicht wird, das End Ereignis erst nach 15 Minuten kommt (funktioniert manuell aber auch problemlos direkt hintereinander).
-
@tableautin sagte in iCal - Blockly unzuverlässig ausgeführt:
zumindest wüsste ich nicht woher
ich auch nicht, aber mit einem debug Baustein gäbe es Klarheit.
aber es gilt ja auch für 800 Sekunden. mein denkfehler!
deiner Fehlerbeschreibung müsste es an dem (laufenden) Intervall liegen.
-
@homoran das laufende Interval wird asynchron ausgeführt und hat mit dem originalen Thread dann nichts mehr zu tun (gestern in einer Doku gesehen, aber leider keinen Link zur Hand). Das würde auch zu meiner manuellen Überprüfung passen.
Aber ich glaube ich habe eine Idee, warum es so unregelmäßig läuft: iCal scheint nur zu bestimmten Intervallen zu überprüfen, ob gerade ein Termin aktiv ist. Das kann mit dem verknüpften Cronjob der Instanz gesteuert werden. Ich werde den jetzt mal auf 5 Minuten (oder noch weniger) setzen und es prüfen, wenn ich wieder zu Hause bin.
Idee zur Lösung kam von dem alten Thread hier, auch wenn es dort auch nicht explizit gesagt wird, sondern nur im Nebensatz erwähnt: https://forum.iobroker.net/topic/13444/gelöst-ical-wie-funktioniert-das-mit-den-events
Auch in der iCal Doku ziemlich versteckt und (meiner Meinung nach) relativ unklar formuliert: https://www.iobroker.net/docu/index-298.htm?page_id=154&lang=de
-
@tableautin sagte in iCal - Blockly unzuverlässig ausgeführt:
das laufende Interval wird asynchron ausgeführt .... Das würde auch zu meiner manuellen Überprüfung passen.
genau!
@tableautin sagte in iCal - Blockly unzuverlässig ausgeführt:
iCal scheint nur zu bestimmten Intervallen zu überprüfen, ob gerade ein Termin aktiv ist.
klar, der Adapter ist ein scheduled Adapter, der nur zu den eingestellten Zeiten läuft.
@tableautin sagte in iCal - Blockly unzuverlässig ausgeführt:
Auch in der iCal Doku ziemlich versteckt und (meiner Meinung nach) relativ unklar formuliert: https://www.iobroker.net/docu/index-298.htm?page_id=154&lang=de
das ist eine total veraltete Doku.
die habe ich etwa 2015 geschrieben, aber was ist da unklar? -
@homoran sagte in iCal - Blockly unzuverlässig ausgeführt:
das ist eine total veraltete Doku.
die habe ich etwa 2015 geschrieben, aber was ist da unklar?Für mich (als jemand der Adapter nur von Anwenderseite kennt) war absolut unklar, dass auch das Setzen von Filtern zu bestimmten Zeiten an den Cron Job gekoppelt ist. Ich hatte es immer so verstanden, dass das Abrufen von neuen Terminen nur dann passiert, die Filter aber dann zu den Zeiten triggern und Start und Ende setzen, wenn der entsprechende Zeitpunkt erreicht ist.
Auch wenn die Doku alt ist, ist es die einzige, die ich online gefunden habe, die Cron überhaupt erwähnt (in der verlinkten Doku aus der ioBroker Oberfläche wird nichts zu dem Thema erwähnt oder das Wort Cron auch nur erwähnt).
Es soll absolut keine Kritik sein, ich weiß selber wie aufwendig eine gute Doku ist. Aber falls das Problem dadurch gelöst ist findet vielleicht jemand schneller etwas über die Forum Suchfunktion
-
@tableautin sagte in iCal - Blockly unzuverlässig ausgeführt:
ist es die einzige, die ich online gefunden habe,
hast du mal hier oben in der Titelleiste auf Docu geklickt?
https://www.iobroker.net/#de/adapters/adapterref/iobroker.ical/README.md
(Anscheinend mit Formatierungsproblemen )die von dir "gefundene" ist seit 2019 nicht mehr auf offiziellem Weg aufzurufen.
alleine dass die Screenshots fehlen ist doch ein deutliches Zeichen.@tableautin sagte in iCal - Blockly unzuverlässig ausgeführt:
war absolut unklar, dass auch das Setzen von Filtern zu bestimmten Zeiten an den Cron Job gekoppelt
ok, das wird nicht explizit erwähnt, könnte man anpassen. aber ein Adapter, der nicht läuft kann auch nix machen.
(im log sieht man ja schön was abläuft) -
@homoran sagte in iCal - Blockly unzuverlässig ausgeführt:
hast du mal hier oben in der Titelleiste auf Docu geklickt?
Hi. Ja das habe ich gemacht. Das ist normalerweise das Erste, was ich mache.
Und leider finde ich dort nach mehrfachem Lesen keine Erwähnung von Cron Jobs oder dem Verhalten, welches bei mir das Problem verursacht hat. Es werden die Parameter beschrieben, aber nicht der Teil, der außerhalb für die Häufigkeit der Ausführung zuständig ist. Falls es doch drin steht, habe ich es nach mehrfachem Lesen nicht gefunden.
ok, das wird nicht explizit erwähnt, könnte man anpassen. aber ein Adapter, der nicht läuft kann auch nix machen.
Für mich, der sich immer noch nicht komplett mit ioBroker und speziell dem kompletten Backend und der Ausführung von Adaptern beschäftigt hat (da bin ich reiner Anwender) war bisher nicht klar, dass es Adapter gibt, die dauerhaft ausgeführt werden (z.B. iot, javascript, hue, ...), während andere (iCal, vis,... )nur in Intervallen ausgeführt werden. Man kann es natürlich an der Anzeige erkennen, wenn man weiß, wonach man suchen muss.
Zurück zum Thema: mit dem Umstellen auf ein regelmäßiges, kürzeres Interval tritt das Originalproblem auch nicht mehr auf
-
@tableautin sagte in *gelöst * iCal - Blockly unzuverlässig ausgeführt:
en keine Erwähnung von Cron Jobs oder dem Verhalten, welches bei mir das Problem verursacht hat.
Dass die scheduled Ausführung der Instanz zu dem von dir beobachteten Verhalten führen kann, war mir bis dahin auch nicht bewusst, obwohl "eigentlich" logisch.
Woher jetzt diese anders strukturierte Version der Doku kommt ist mir auch rätselhaft.
in dem Abschnitt "Adapterreferenz" werden die Dokus aus dem Readme der Adapter generiert.@tableautin sagte in *gelöst * iCal - Blockly unzuverlässig ausgeführt:
Es werden die Parameter beschrieben, aber nicht der Teil, der außerhalb für die Häufigkeit der Ausführung zuständig ist
immerhin steht da ein Parameter
runEveryMinutes: 30 bedeutet dass der Adapter automatisch alle 30min den Kalender neu einliesst. Bei 0 wird nicht automatisch eingelesen
Hab bei mir zwar brav die Updates gemacht, aber die Konfiguration seit Jahren nicht mehr angesehen
@tableautin sagte in *gelöst * iCal - Blockly unzuverlässig ausgeführt:
war bisher nicht klar, dass es Adapter gibt, die dauerhaft ausgeführt werden (z.B. iot, javascript, hue, ...), während andere (iCal,
vis,... )nur in Intervallen ausgeführt werdenDas sollte in der Doku zum Admin drin sein, zu erkennen an der "Ampel" für dauerhaft laufende, der Uhr für geplante und gar nichts für einmalig gestartete wie vis
@tableautin sagte in *gelöst * iCal - Blockly unzuverlässig ausgeführt:
da bin ich reiner Anwender
und damit bist du der ideale Ansprechpartner für Verbesserungsvorschläge der Doku, denn wenn du nach etwas suchst was nicht da oder nicht eindrutig in der Doku steht, siehst du es. Entwickler sind bei der Doku gerne betriebsblind und auch die reinen Schreiberlinge brauchen immer mal einen Hinweis auf andere Sichtweisen
-
@homoran sagte in *gelöst * iCal - Blockly unzuverlässig ausgeführt:
und damit bist du der ideale Ansprechpartner für Verbesserungsvorschläge der Doku, denn wenn du nach etwas suchst was nicht da oder nicht eindrutig in der Doku steht, siehst du es. Entwickler sind bei der Doku gerne betriebsblind und auch die reinen Schreiberlinge brauchen immer mal einen Hinweis auf andere Sichtweisen
Gerne, ich versuche regelmäßig auf solche Sachen im Forum oder bei Git hinzuweisen, wenn es mir auffällt. Ich hoffe ich konnte hier zumindest ein paar Tips geben, ich denke hier habe ich alles versucht zu beschreiben was mir aufgefallen ist, bei konkreten Fragen aber gerne nochmal melden.