Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Wann ist ein nach der Erzeugung dp verfügbar?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    2.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    921

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Wann ist ein nach der Erzeugung dp verfügbar?

Geplant Angeheftet Gesperrt Verschoben JavaScript
16 Beiträge 5 Kommentatoren 818 Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Ben1983B Ben1983

    Hallo, ich habe folgende Logik:

    on(TrigerId,async(dp)=>{
        await extendObject(DestinationId, {type:'state', common:{name:'Gerät ist zu Hause', type:'boolean', def: false}});
        // Aktuellen Zustand auslesen
        const actState= getState(DestinationId).val;
    }
    

    nun verursacht dies aber ein actState = null

    Erzeuge ich den state mit extendObject beim Scriptstart (nur zum Testen), so funktioniert es.
    Ich dachte, dass das await dafür sorgt, dass entsprechend lange gewartet wird.

    T Nicht stören
    T Nicht stören
    ticaki
    schrieb am zuletzt editiert von
    #2

    @ben1983
    Ist mir auch aufgefallen bei extendObject(). Ich nutze ein await sleep(10) bevor ich was damit mache.

    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

    Spenden

    Ben1983B 1 Antwort Letzte Antwort
    1
    • T ticaki

      @ben1983
      Ist mir auch aufgefallen bei extendObject(). Ich nutze ein await sleep(10) bevor ich was damit mache.

      Ben1983B Offline
      Ben1983B Offline
      Ben1983
      schrieb am zuletzt editiert von
      #3

      @ticaki OK, gibts dazu schon ein issue?

      T 1 Antwort Letzte Antwort
      0
      • Ben1983B Ben1983

        @ticaki OK, gibts dazu schon ein issue?

        T Nicht stören
        T Nicht stören
        ticaki
        schrieb am zuletzt editiert von
        #4

        @ben1983
        Hab nicht nachgesehen.

        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

        Spenden

        1 Antwort Letzte Antwort
        0
        • Ben1983B Ben1983

          Hallo, ich habe folgende Logik:

          on(TrigerId,async(dp)=>{
              await extendObject(DestinationId, {type:'state', common:{name:'Gerät ist zu Hause', type:'boolean', def: false}});
              // Aktuellen Zustand auslesen
              const actState= getState(DestinationId).val;
          }
          

          nun verursacht dies aber ein actState = null

          Erzeuge ich den state mit extendObject beim Scriptstart (nur zum Testen), so funktioniert es.
          Ich dachte, dass das await dafür sorgt, dass entsprechend lange gewartet wird.

          AsgothianA Offline
          AsgothianA Offline
          Asgothian
          Developer
          schrieb am zuletzt editiert von Asgothian
          #5

          @ben1983 sagte in Wann ist ein nach der Erzeugung dp verfügbar?:

          Hallo, ich habe folgende Logik:

          on(TrigerId,async(dp)=>{
              await extendObject(DestinationId, {type:'state', common:{name:'Gerät ist zu Hause', type:'boolean', def: false}});
              // Aktuellen Zustand auslesen
              const actState= getState(DestinationId).val;
          }
          

          nun verursacht dies aber ein actState = null

          Erzeuge ich den state mit extendObject beim Scriptstart (nur zum Testen), so funktioniert es.
          Ich dachte, dass das await dafür sorgt, dass entsprechend lange gewartet wird.

          Natürlich tut es das. Du hast zwar den State angelegt, aber der Wert des State wurde nicht gesetzt. Den holst Du dir aber. Zusätzlich rufst du die 'callback' Variante der Funktion extendObject auf, ohne eine callback Funktion beizulegen. Die dafür vorgesehene Funktion ist (meines Wissens nach) aber extendObjectAsync.

          Prüfe mal bitte den folgenden Code:

          on(TrigerId,async(dp)=>{
               await extendObjectAsync(DestinationId, {type:'state', common:{name:'Gerät ist zu Hause', type:'boolean', def: false}});
               // Aktuellen Zustand auslesen
               const actState= getState(DestinationId);
           }
          

          ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
          "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

          T 1 Antwort Letzte Antwort
          0
          • AsgothianA Asgothian

            @ben1983 sagte in Wann ist ein nach der Erzeugung dp verfügbar?:

            Hallo, ich habe folgende Logik:

            on(TrigerId,async(dp)=>{
                await extendObject(DestinationId, {type:'state', common:{name:'Gerät ist zu Hause', type:'boolean', def: false}});
                // Aktuellen Zustand auslesen
                const actState= getState(DestinationId).val;
            }
            

            nun verursacht dies aber ein actState = null

            Erzeuge ich den state mit extendObject beim Scriptstart (nur zum Testen), so funktioniert es.
            Ich dachte, dass das await dafür sorgt, dass entsprechend lange gewartet wird.

            Natürlich tut es das. Du hast zwar den State angelegt, aber der Wert des State wurde nicht gesetzt. Den holst Du dir aber. Zusätzlich rufst du die 'callback' Variante der Funktion extendObject auf, ohne eine callback Funktion beizulegen. Die dafür vorgesehene Funktion ist (meines Wissens nach) aber extendObjectAsync.

            Prüfe mal bitte den folgenden Code:

            on(TrigerId,async(dp)=>{
                 await extendObjectAsync(DestinationId, {type:'state', common:{name:'Gerät ist zu Hause', type:'boolean', def: false}});
                 // Aktuellen Zustand auslesen
                 const actState= getState(DestinationId);
             }
            
            T Nicht stören
            T Nicht stören
            ticaki
            schrieb am zuletzt editiert von
            #6

            @asgothian sagte in Wann ist ein nach der Erzeugung dp verfügbar?:

            await extendObjectAsync(DestinationId, {type:'state', common:{name:'Gerät ist zu Hause', type:'boolean', def: false}});
            // Aktuellen Zustand auslesen
            const actState= getState(DestinationId);

            Ändert nix, der state existiert noch nicht im Javascript-Adapter, wenn getState() ausgeführt wird. Aber das async fehlt natürlich trotzdem.

            Mit const actState= await getStateAsync(DestinationId);geht auch die abfrage auf den State.

            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

            Spenden

            AsgothianA Ben1983B 2 Antworten Letzte Antwort
            0
            • T ticaki

              @asgothian sagte in Wann ist ein nach der Erzeugung dp verfügbar?:

              await extendObjectAsync(DestinationId, {type:'state', common:{name:'Gerät ist zu Hause', type:'boolean', def: false}});
              // Aktuellen Zustand auslesen
              const actState= getState(DestinationId);

              Ändert nix, der state existiert noch nicht im Javascript-Adapter, wenn getState() ausgeführt wird. Aber das async fehlt natürlich trotzdem.

              Mit const actState= await getStateAsync(DestinationId);geht auch die abfrage auf den State.

              AsgothianA Offline
              AsgothianA Offline
              Asgothian
              Developer
              schrieb am zuletzt editiert von
              #7

              @ticaki sagte in Wann ist ein nach der Erzeugung dp verfügbar?:

              @asgothian sagte in Wann ist ein nach der Erzeugung dp verfügbar?:

              await extendObjectAsync(DestinationId, {type:'state', common:{name:'Gerät ist zu Hause', type:'boolean', def: false}});
              // Aktuellen Zustand auslesen
              const actState= getState(DestinationId);

              Ändert nix, der state existiert noch nicht im Javascript-Adapter, wenn getState() ausgeführt wird. Aber das async fehlt natürlich trotzdem.

              Mit const actState= await getStateAsync(DestinationId);geht auch die abfrage auf den State.

              Interessant. Mein System scheint da schneller zu sein - der Code den ich gepostet hab geht bei mir direkt durch - ohne Probleme :)

              ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
              "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

              T 1 Antwort Letzte Antwort
              0
              • AsgothianA Asgothian

                @ticaki sagte in Wann ist ein nach der Erzeugung dp verfügbar?:

                @asgothian sagte in Wann ist ein nach der Erzeugung dp verfügbar?:

                await extendObjectAsync(DestinationId, {type:'state', common:{name:'Gerät ist zu Hause', type:'boolean', def: false}});
                // Aktuellen Zustand auslesen
                const actState= getState(DestinationId);

                Ändert nix, der state existiert noch nicht im Javascript-Adapter, wenn getState() ausgeführt wird. Aber das async fehlt natürlich trotzdem.

                Mit const actState= await getStateAsync(DestinationId);geht auch die abfrage auf den State.

                Interessant. Mein System scheint da schneller zu sein - der Code den ich gepostet hab geht bei mir direkt durch - ohne Probleme :)

                T Nicht stören
                T Nicht stören
                ticaki
                schrieb am zuletzt editiert von
                #8

                @asgothian
                Eh ich habe gerade geupgraded.. also nix da :D

                Kann halt nur schreiben was passiert ist. Aber ein sleep hinter einem extend macht das ganze eh viel entspannter.

                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                Spenden

                1 Antwort Letzte Antwort
                0
                • T ticaki

                  @asgothian sagte in Wann ist ein nach der Erzeugung dp verfügbar?:

                  await extendObjectAsync(DestinationId, {type:'state', common:{name:'Gerät ist zu Hause', type:'boolean', def: false}});
                  // Aktuellen Zustand auslesen
                  const actState= getState(DestinationId);

                  Ändert nix, der state existiert noch nicht im Javascript-Adapter, wenn getState() ausgeführt wird. Aber das async fehlt natürlich trotzdem.

                  Mit const actState= await getStateAsync(DestinationId);geht auch die abfrage auf den State.

                  Ben1983B Offline
                  Ben1983B Offline
                  Ben1983
                  schrieb am zuletzt editiert von
                  #9

                  @ticaki bei mir geht es auch damit nicht (Hatte ich schon vor erstellen dieses Threads gecheckt.)
                  Und extendObjectAsync sollte soweit mit bekannt in extendObject drin sein, wenn dies nicht als Callback benutzt wird.

                  mcm1957M 1 Antwort Letzte Antwort
                  0
                  • Ben1983B Ben1983

                    @ticaki bei mir geht es auch damit nicht (Hatte ich schon vor erstellen dieses Threads gecheckt.)
                    Und extendObjectAsync sollte soweit mit bekannt in extendObject drin sein, wenn dies nicht als Callback benutzt wird.

                    mcm1957M Online
                    mcm1957M Online
                    mcm1957
                    schrieb am zuletzt editiert von
                    #10

                    @ben1983 said in Wann ist ein nach der Erzeugung dp verfügbar?:

                    @ticaki bei mir geht es auch damit nicht (Hatte ich schon vor erstellen dieses Threads gecheckt.)
                    Und extendObjectAsync sollte soweit mit bekannt in extendObject drin sein, wenn dies nicht als Callback benutzt wird.

                    Nur wenn du aktuellen js-controlelr einsetzt.
                    https://github.com/ioBroker/ioBroker.js-controller/blob/master/CHANGELOG.md#704-2024-12-04---lucy
                    Kann gut sein, dass setObject zu extendObject durchschlägt

                    Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                    Support Repositoryverwaltung.

                    Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                    LESEN - gute Forenbeitrage

                    Ben1983B 1 Antwort Letzte Antwort
                    0
                    • Ben1983B Ben1983

                      Hallo, ich habe folgende Logik:

                      on(TrigerId,async(dp)=>{
                          await extendObject(DestinationId, {type:'state', common:{name:'Gerät ist zu Hause', type:'boolean', def: false}});
                          // Aktuellen Zustand auslesen
                          const actState= getState(DestinationId).val;
                      }
                      

                      nun verursacht dies aber ein actState = null

                      Erzeuge ich den state mit extendObject beim Scriptstart (nur zum Testen), so funktioniert es.
                      Ich dachte, dass das await dafür sorgt, dass entsprechend lange gewartet wird.

                      OliverIOO Offline
                      OliverIOO Offline
                      OliverIO
                      schrieb am zuletzt editiert von
                      #11

                      @ben1983
                      Und wo wird der State geschrieben oder der default Wert des Objekts gesetzt?
                      Welcher Wert würde erwartet werden?

                      Bin mir zwar nicht sicher, aber ein Objekt muss nicht zwangsläufig auch gleich einen State haben

                      Meine Adapter und Widgets
                      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                      Links im Profil

                      1 Antwort Letzte Antwort
                      0
                      • mcm1957M mcm1957

                        @ben1983 said in Wann ist ein nach der Erzeugung dp verfügbar?:

                        @ticaki bei mir geht es auch damit nicht (Hatte ich schon vor erstellen dieses Threads gecheckt.)
                        Und extendObjectAsync sollte soweit mit bekannt in extendObject drin sein, wenn dies nicht als Callback benutzt wird.

                        Nur wenn du aktuellen js-controlelr einsetzt.
                        https://github.com/ioBroker/ioBroker.js-controller/blob/master/CHANGELOG.md#704-2024-12-04---lucy
                        Kann gut sein, dass setObject zu extendObject durchschlägt

                        Ben1983B Offline
                        Ben1983B Offline
                        Ben1983
                        schrieb am zuletzt editiert von
                        #12

                        @mcm1957 setze 7.0.6 ein ;-)

                        mcm1957M T 2 Antworten Letzte Antwort
                        0
                        • Ben1983B Ben1983

                          @mcm1957 setze 7.0.6 ein ;-)

                          mcm1957M Online
                          mcm1957M Online
                          mcm1957
                          schrieb am zuletzt editiert von
                          #13

                          @ben1983
                          Hoffe deine User auch :-)
                          Ansonsten solltest du ggF die dependencies des js-controllers checken / anpassen.

                          Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                          Support Repositoryverwaltung.

                          Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                          LESEN - gute Forenbeitrage

                          Ben1983B 1 Antwort Letzte Antwort
                          0
                          • Ben1983B Ben1983

                            @mcm1957 setze 7.0.6 ein ;-)

                            T Nicht stören
                            T Nicht stören
                            ticaki
                            schrieb am zuletzt editiert von ticaki
                            #14

                            @ben1983
                            @mcm1957

                            Ich glaube das ist leichter zu begründen, will jetzt aber nicht den Eindruck erwecken als wenn ich den Javascript-Adapter-Code durchschaut hätte. :)

                            create/set/extendWasauchimmerAsyncerzeugt im js-controller einen State/Object und wartet bis er angelegt ist. Jedoch hat der Javascript-Adapter einen Cache. Ein darauf folgenden getState() wird aus dem Cache gezogen und wenn der subscriber noch nicht durch ist, gibts ihn halt noch nicht.

                            Dazu kommt dann noch das die ...Async sich anders verhält als im Adapter - ohne Async wird nicht gewartet. https://github.com/ioBroker/ioBroker.javascript/blob/7778007eb9304658aed10f4a975de91864ad26bc/lib/sandbox.js#L4403

                            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                            Spenden

                            1 Antwort Letzte Antwort
                            0
                            • mcm1957M mcm1957

                              @ben1983
                              Hoffe deine User auch :-)
                              Ansonsten solltest du ggF die dependencies des js-controllers checken / anpassen.

                              Ben1983B Offline
                              Ben1983B Offline
                              Ben1983
                              schrieb am zuletzt editiert von
                              #15

                              @mcm1957 Das hier ist ein eigenes Skript im Javascript Adapter, kein Eigener Adapter

                              mcm1957M 1 Antwort Letzte Antwort
                              0
                              • Ben1983B Ben1983

                                @mcm1957 Das hier ist ein eigenes Skript im Javascript Adapter, kein Eigener Adapter

                                mcm1957M Online
                                mcm1957M Online
                                mcm1957
                                schrieb am zuletzt editiert von mcm1957
                                #16

                                @ben1983

                                OK - Für Javascript im Javascript Adapter gelten tw. andere Regeln.

                                Wenn Unetrscheide allerdings eher verwirrend sind und aufwärtskompatibel anpassbar scheinen dann macht es ev. durchaus Sinn ein Issue zu erstellen. Bluefox migriert den Javascritp adapter meines Wissens nach z,Z zu Typescript. Da kann man ggF kompatible (!) Anpassungen durchaus vornehmen.

                                Aber das müssen die Maintainer entscheiden.

                                Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                                Support Repositoryverwaltung.

                                Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                                LESEN - gute Forenbeitrage

                                1 Antwort Letzte Antwort
                                0
                                Antworten
                                • In einem neuen Thema antworten
                                Anmelden zum Antworten
                                • Älteste zuerst
                                • Neuste zuerst
                                • Meiste Stimmen


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                776

                                Online

                                32.6k

                                Benutzer

                                82.2k

                                Themen

                                1.3m

                                Beiträge
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                ioBroker Community 2014-2025
                                logo
                                • Anmelden

                                • Du hast noch kein Konto? Registrieren

                                • Anmelden oder registrieren, um zu suchen
                                • Erster Beitrag
                                  Letzter Beitrag
                                0
                                • Home
                                • Aktuell
                                • Tags
                                • Ungelesen 0
                                • Kategorien
                                • Unreplied
                                • Beliebt
                                • GitHub
                                • Docu
                                • Hilfe