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
    1.9k

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

  • 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 Offline
    Ben1983B Offline
    Ben1983
    schrieb am zuletzt editiert von
    #1

    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 AsgothianA OliverIOO 3 Antworten 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.

      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 Offline
                      mcm1957M Offline
                      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 Offline
                            mcm1957M Offline
                            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 Offline
                                  mcm1957M Offline
                                  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

                                  642

                                  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