Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. *gelöst * iCal - Blockly unzuverlässig ausgeführt

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    *gelöst * iCal - Blockly unzuverlässig ausgeführt

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      Tableautin last edited by Tableautin

      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 Adapters

      Problem
      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
      ed8c432d-7f28-4583-8a36-c1b2f7fea7cb-image.png

      e4970ca2-8ac7-4e7f-8119-80caa28c00a5-image.png

      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.
      87c3cda3-265c-4945-afcc-1d6542f12f7e-image.png

      Ich bin für alle Hinweise dankbar, und sollte es einen Adapter geben, der etwas vergleichbares tut, steige ich auch gerne um.

      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Tableautin last edited by Homoran

        @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 posten

        wenn das Skript innerhalb von 8 Sekunden mehrfach getriggert wird startet der timeout mehrfach und kann icht meht gestoppt werden

        T 1 Reply Last reply Reply Quote 0
        • T
          Tableautin @Homoran last edited by

          @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).

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @Tableautin last edited by

            @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.

            T 1 Reply Last reply Reply Quote 0
            • T
              Tableautin @Homoran last edited by

              @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.
              8d2448c1-40ff-42df-b419-fe7fc5b8f580-image.png

              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

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @Tableautin last edited by Homoran

                @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?

                T 1 Reply Last reply Reply Quote 1
                • T
                  Tableautin @Homoran last edited by

                  @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 🙂

                  Homoran 1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @Tableautin last edited by

                    @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)

                    T 1 Reply Last reply Reply Quote 0
                    • T
                      Tableautin @Homoran last edited by

                      @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 🙂

                      Homoran 1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @Tableautin last edited by

                        @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 werden

                        Das 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

                        T 1 Reply Last reply Reply Quote 1
                        • T
                          Tableautin @Homoran last edited by

                          @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.

                          1 Reply Last reply Reply Quote 1
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          510
                          Online

                          31.9k
                          Users

                          80.1k
                          Topics

                          1.3m
                          Posts

                          blockly javascript
                          2
                          11
                          581
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo