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. Entwicklung
  4. Im setObjectNotExists Callback kann getState nicht ausgeführt werden?

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Im setObjectNotExists Callback kann getState nicht ausgeführt werden?

Geplant Angeheftet Gesperrt Verschoben Entwicklung
3 Beiträge 3 Kommentatoren 339 Aufrufe 2 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.
  • dkleber89D Offline
    dkleber89D Offline
    dkleber89
    schrieb am zuletzt editiert von dkleber89
    #1

    Hallo Zusammen,

    ich habe schon einige Varianten ausprobiert aber leider komme ich nicht auf ein vernünftiges Ergebnis:

     adapter.setObjectNotExists(
                    statename,
                    {
                       ...
                    },
                    (err, id) => {
                       ...
    
                        // Initial Sync
                        adapter.getState(`adapter.${adapter.instance}.${statename}`, (err, state) => {
                            if (err) {
                                adapter.log.error(`Read States for Initial Sync occurred an Error: ${err}`);
    
                                return;
                            }
    
                            ...
    
                            if (state.ack === false) {
                                ...
                            } else {
                                ...
                            }
    

    Ich hoffe ich stehe nicht einfach auf der Leitung oder sowas. Wenn ich in diesen Beispielcode das getState ausführe wird der Callback aufgerufen aber err und state sind jeweils null. Dies ist immer so wenn der State noch nicht existiert hat.

    Müsste da nicht wenigstens im err was drinnen stehen? Und müsste das nicht funktionieren es wird ja der Callback vom Erstellen des Objectes ausgeführt

    Kann mit da bitte mal jemand auf die Sprünge helfen?

    Danke

    StuebiS foxriver76F 2 Antworten Letzte Antwort
    0
    • dkleber89D dkleber89

      Hallo Zusammen,

      ich habe schon einige Varianten ausprobiert aber leider komme ich nicht auf ein vernünftiges Ergebnis:

       adapter.setObjectNotExists(
                      statename,
                      {
                         ...
                      },
                      (err, id) => {
                         ...
      
                          // Initial Sync
                          adapter.getState(`adapter.${adapter.instance}.${statename}`, (err, state) => {
                              if (err) {
                                  adapter.log.error(`Read States for Initial Sync occurred an Error: ${err}`);
      
                                  return;
                              }
      
                              ...
      
                              if (state.ack === false) {
                                  ...
                              } else {
                                  ...
                              }
      

      Ich hoffe ich stehe nicht einfach auf der Leitung oder sowas. Wenn ich in diesen Beispielcode das getState ausführe wird der Callback aufgerufen aber err und state sind jeweils null. Dies ist immer so wenn der State noch nicht existiert hat.

      Müsste da nicht wenigstens im err was drinnen stehen? Und müsste das nicht funktionieren es wird ja der Callback vom Erstellen des Objectes ausgeführt

      Kann mit da bitte mal jemand auf die Sprünge helfen?

      Danke

      StuebiS Offline
      StuebiS Offline
      Stuebi
      schrieb am zuletzt editiert von
      #2

      @dkleber89 , hast du es einmal mit adapter.setForeignState versucht ? Oder bei setState nur den state ohne Instanz mitgeben.
      Bsp.: adapter.setForeignState("huhu.0.mystatus", true) oder adapter.setState("mystatus", true)

      ioBroker auf Synology DS216+II im Docker Container

      1 Antwort Letzte Antwort
      0
      • dkleber89D dkleber89

        Hallo Zusammen,

        ich habe schon einige Varianten ausprobiert aber leider komme ich nicht auf ein vernünftiges Ergebnis:

         adapter.setObjectNotExists(
                        statename,
                        {
                           ...
                        },
                        (err, id) => {
                           ...
        
                            // Initial Sync
                            adapter.getState(`adapter.${adapter.instance}.${statename}`, (err, state) => {
                                if (err) {
                                    adapter.log.error(`Read States for Initial Sync occurred an Error: ${err}`);
        
                                    return;
                                }
        
                                ...
        
                                if (state.ack === false) {
                                    ...
                                } else {
                                    ...
                                }
        

        Ich hoffe ich stehe nicht einfach auf der Leitung oder sowas. Wenn ich in diesen Beispielcode das getState ausführe wird der Callback aufgerufen aber err und state sind jeweils null. Dies ist immer so wenn der State noch nicht existiert hat.

        Müsste da nicht wenigstens im err was drinnen stehen? Und müsste das nicht funktionieren es wird ja der Callback vom Erstellen des Objectes ausgeführt

        Kann mit da bitte mal jemand auf die Sprünge helfen?

        Danke

        foxriver76F Offline
        foxriver76F Offline
        foxriver76
        Developer
        schrieb am zuletzt editiert von foxriver76
        #3

        @dkleber89 das Problem ist dass getState automatisch auf deine Adapter States zu greift, und du nicht vorher den namespace angeben musst. Sonst wie schon erwähnt getForeignState, ist jedoch nicht nötig wenn es sich um deine eigenen States handelt

        Videotutorials & mehr

        Hier könnt ihr mich unterstützen.

        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

        657

        Online

        32.7k

        Benutzer

        82.3k

        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