Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Frage: setState(id, getState(other id).val) in Adapter verwenden

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Frage: setState(id, getState(other id).val) in Adapter verwenden

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      foxthefox Developer last edited by

      Hallo,

      ich hab man ne Frage zur Adapter Entwicklung.

      Im Javascript Adapter kann man folgendes machen:

      setState(id, getState(other id).val)
      
      

      also das Setzen eines Objektes mit dem Wert eines anderen, oder auch mit dem jetzt gültigen der gleichen id.

      Und das klappt ohne die Asynchronitätsprobleme.

      Wie kann man das nun in einem normalen Adapter realisieren?

      Ein Codeschnipsel wäre hilfreich.

      Eine weiter Frage, wie kann man in einem zyklisch laufenden Adapter auch ein schedule() cronjob, ähnlich dem Javascript Adapter einbauen?

      Gruß

      Klaus

      1 Reply Last reply Reply Quote 0
      • AlCalzone
        AlCalzone Developer last edited by

        getState("other id", function (obj) {
            setState("id", obj.val, ack); // ack ist true oder false
        });
        
        

        Bedenke, dass Code, der unter getState folgt, direkt nach dem Aufruf von getState ausgeführt wird und wahrscheinlich bevor der Callback aufgerufen wird.

        Kann Probleme in der Ausführungsreihenfolge bedeuten, wenn du es nicht beachtest.

        1 Reply Last reply Reply Quote 0
        • F
          foxthefox Developer last edited by

          @AlCalzone:

          getState("other id", function (obj) {
              setState("id", obj.val, ack); // ack ist true oder false
          });
          
          

          Bedenke, dass Code, der unter getState folgt, direkt nach dem Aufruf von getState ausgeführt wird und wahrscheinlich bevor der Callback aufgerufen wird.

          Kann Probleme in der Ausführungsreihenfolge bedeuten, wenn du es nicht beachtest. `

          Aber innerhalb des callbacks ist alles richtig?! Die Anweisung etwas umzuspeichern wäre die letzte im funktionsaufruf. Also danach kommt nix mehr (bzw. evtl. Läuft ein nächster schleifendurchlauf.).

          Versuche mich grad an nem Adapter für Statistik und da kommt das häufiger vor.

          Gesendet von iPhone mit Tapatalk

          1 Reply Last reply Reply Quote 0
          • AlCalzone
            AlCalzone Developer last edited by

            Ja, das passt so!

            1 Reply Last reply Reply Quote 0
            • F
              foxthefox Developer last edited by

              Danke für die callback Info.

              bleibt noch die Frage, wie kann man in einem zyklisch laufenden Adapter auch ein schedule() cronjob, ähnlich dem Javascript Adapter einbauen kann?

              Hat jemand eine Idee?

              Gruß

              Klaus

              1 Reply Last reply Reply Quote 0
              • htrecksler
                htrecksler Forum Testing last edited by

                ich hab in meinem "lokalen" Adapter mehrere Timer laufen welche z.B. jede Minute oder jede Stunde oder 1 x am Tag irgendetwas ausführen.

                Meinst Du sowas? Dann kann ich dir ein Beispiel posten.

                1 Reply Last reply Reply Quote 0
                • F
                  foxthefox Developer last edited by

                  @htrecksler:

                  ich hab in meinem "lokalen" Adapter mehrere Timer laufen welche z.B. jede Minute oder jede Stunde oder 1 x am Tag irgendetwas ausführen.

                  Meinst Du sowas? Dann kann ich dir ein Beispiel posten. `

                  Ich meinte so etwas wie cronjob. Im JavaScript Adapter ist es schedule mit dem Format vom cronjob. Eine Funktion die Suche alle 5min wiederholt hab ich. Ich suche etwas um an einem bestimmten Zeitpunkt einen trigger zu setzen.

                  Gesendet von iPhone mit Tapatalk

                  1 Reply Last reply Reply Quote 0
                  • htrecksler
                    htrecksler Forum Testing last edited by

                    Das hatte ich damals auch gesucht, aber nicht gefunden.

                    Daher hab ich mir mit den Timern geholfen.

                    1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 last edited by

                      Im JS-Adapter wird das NPM-Modul https://www.npmjs.com/package/node-schedule verwendet.

                      1 Reply Last reply Reply Quote 0
                      • F
                        foxthefox Developer last edited by

                        @paul53:

                        Im JS-Adapter wird das NPM-Modul https://www.npmjs.com/package/node-schedule verwendet. `
                        Danke, das ist genau der richtige Hinweis.[emoji106]

                        Gesendet von iPhone mit Tapatalk

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        800
                        Online

                        31.7k
                        Users

                        79.8k
                        Topics

                        1.3m
                        Posts

                        4
                        10
                        1760
                        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