Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. getState() in Callback von createState() gibt not found

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    254

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

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

getState() in Callback von createState() gibt not found

Scheduled Pinned Locked Moved JavaScript
8 Posts 4 Posters 766 Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    drefree
    wrote on last edited by
    #1

    Hallo allerseits,

    ich hab eine kurze Frage zu callbacks: Nach meinem Verständnis wird alles in der callback-Funktion erst aufgerufen nachdem der auslösende Befehl vollständig durchgelaufen ist. Beim Testen mit createState() hab ich aber das Problem dass ein getState() immer den Fehler "... not found" zurückgibt. Hier ein einfaches Testskript:

    createState('javascript.0.variables.test', 'test init', {name: 'test Variable'}, function(){
        console.log(getState('javascript.0.variables.test').val)
    })
    

    Hier die dazugehörige Fehlermeldung:

    javascript.0
    	2021-12-15 14:12:23.429	info	script.js.common.Hilfsskripte.test: null
    javascript.0
    	2021-12-15 14:12:23.429	warn	at processImmediate (internal/timers.js:466:21)
    javascript.0
    	2021-12-15 14:12:23.428	warn	at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:342:38)
    javascript.0
    	2021-12-15 14:12:23.428	warn	at Object.<anonymous> (script.js.common.Hilfsskripte.test:6:17)
    javascript.0
    	2021-12-15 14:12:23.426	warn	getState "javascript.0.variables.test" not found (3)
    javascript.0
    	2021-12-15 14:12:23.356	info	script.js.common.Hilfsskripte.test: registered 0 subscriptions and 0 schedules
    

    Benutze ich hingegen ein setState im callback gibt es keinen Fehler beim setzen des neues Werts (und der Wert wird auch korrekt geschrieben), die getState-Funktion ist aber immer noch "zu schnell" und kann den State nicht finden. Mache ich etwas falsch oder funktionieren callbacks doch anders als ich dachte? Hoffe jemand kann mir helfen.

    AcguaA 1 Reply Last reply
    0
    • D drefree

      Hallo allerseits,

      ich hab eine kurze Frage zu callbacks: Nach meinem Verständnis wird alles in der callback-Funktion erst aufgerufen nachdem der auslösende Befehl vollständig durchgelaufen ist. Beim Testen mit createState() hab ich aber das Problem dass ein getState() immer den Fehler "... not found" zurückgibt. Hier ein einfaches Testskript:

      createState('javascript.0.variables.test', 'test init', {name: 'test Variable'}, function(){
          console.log(getState('javascript.0.variables.test').val)
      })
      

      Hier die dazugehörige Fehlermeldung:

      javascript.0
      	2021-12-15 14:12:23.429	info	script.js.common.Hilfsskripte.test: null
      javascript.0
      	2021-12-15 14:12:23.429	warn	at processImmediate (internal/timers.js:466:21)
      javascript.0
      	2021-12-15 14:12:23.428	warn	at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:342:38)
      javascript.0
      	2021-12-15 14:12:23.428	warn	at Object.<anonymous> (script.js.common.Hilfsskripte.test:6:17)
      javascript.0
      	2021-12-15 14:12:23.426	warn	getState "javascript.0.variables.test" not found (3)
      javascript.0
      	2021-12-15 14:12:23.356	info	script.js.common.Hilfsskripte.test: registered 0 subscriptions and 0 schedules
      

      Benutze ich hingegen ein setState im callback gibt es keinen Fehler beim setzen des neues Werts (und der Wert wird auch korrekt geschrieben), die getState-Funktion ist aber immer noch "zu schnell" und kann den State nicht finden. Mache ich etwas falsch oder funktionieren callbacks doch anders als ich dachte? Hoffe jemand kann mir helfen.

      AcguaA Offline
      AcguaA Offline
      Acgua
      wrote on last edited by Acgua
      #2

      Hi,

      Fehlermeldung kommt bei mir auch (JS-Adapter v5.2.16, node.js 14.17.1).

      Dein Aufbau steht ja so in der Doku als "short type":

      createState('myVariable', 1, {name: 'My own variable', unit: '°C'}) - create variable if does not exist with specific name and units

      Was geht ist, wenn du initialValue im "Common"-Teil in def (=Default) übergibst.
      Hier ein Beispiel mit Callback, und ein zweites mit async/await.

      const state123 = '0_userdata.0.test123';
      createState(state123, {name:'test variable', def:'test init', type:'string', read:true, write:true, role:'state' }, (obj) => {
          log(`Value of ${state123}: '${getState(state123).val}'`);
      })
      
      // Und noch Test per async/await
      test();
      async function test() {
      
          try {
      
              const state456 = '0_userdata.0.test456';
              await createStateAsync(state456, {name:'test variable', type:'string', read:true, write:true, role:'state', def:'test init' });
              const r = await getStateAsync(state456);
              log(`Value of ${state456}: '${r.val}'`);
      
          } catch(error) {
              log(error.stack, 'warn');
          }
      
      }
      

      Fazit soweit:
      createState() / createStateAsync() mag wohl initialValue als zweiten Parameter nicht, wenn als dritter Parameter das common-Objekt folgt.
      Bin mir nicht sicher ob ein das an unklarer Doku ist, oder tatsächlich ein Bug.

      paul53P 1 Reply Last reply
      0
      • AcguaA Acgua

        Hi,

        Fehlermeldung kommt bei mir auch (JS-Adapter v5.2.16, node.js 14.17.1).

        Dein Aufbau steht ja so in der Doku als "short type":

        createState('myVariable', 1, {name: 'My own variable', unit: '°C'}) - create variable if does not exist with specific name and units

        Was geht ist, wenn du initialValue im "Common"-Teil in def (=Default) übergibst.
        Hier ein Beispiel mit Callback, und ein zweites mit async/await.

        const state123 = '0_userdata.0.test123';
        createState(state123, {name:'test variable', def:'test init', type:'string', read:true, write:true, role:'state' }, (obj) => {
            log(`Value of ${state123}: '${getState(state123).val}'`);
        })
        
        // Und noch Test per async/await
        test();
        async function test() {
        
            try {
        
                const state456 = '0_userdata.0.test456';
                await createStateAsync(state456, {name:'test variable', type:'string', read:true, write:true, role:'state', def:'test init' });
                const r = await getStateAsync(state456);
                log(`Value of ${state456}: '${r.val}'`);
        
            } catch(error) {
                log(error.stack, 'warn');
            }
        
        }
        

        Fazit soweit:
        createState() / createStateAsync() mag wohl initialValue als zweiten Parameter nicht, wenn als dritter Parameter das common-Objekt folgt.
        Bin mir nicht sicher ob ein das an unklarer Doku ist, oder tatsächlich ein Bug.

        paul53P Offline
        paul53P Offline
        paul53
        wrote on last edited by paul53
        #3

        @acgua sagte: unklarer Doku ist, oder tatsächlich ein Bug.

        Das ist ein Bug.

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        AcguaA F 2 Replies Last reply
        0
        • paul53P paul53

          @acgua sagte: unklarer Doku ist, oder tatsächlich ein Bug.

          Das ist ein Bug.

          AcguaA Offline
          AcguaA Offline
          Acgua
          wrote on last edited by Acgua
          #4

          @paul53 said in getState() in Callback von createState() gibt not found:

          Das ist ein Bug.

          Hab Issue aufgemacht: Github: ioBroker.javascript issue #924

          1 Reply Last reply
          0
          • paul53P paul53

            @acgua sagte: unklarer Doku ist, oder tatsächlich ein Bug.

            Das ist ein Bug.

            F Offline
            F Offline
            fastfoot
            wrote on last edited by fastfoot
            #5

            @paul53 sagte in getState() in Callback von createState() gibt not found:

            Das ist ein Bug.

            sehr seltsam, ich kann das nicht nachvollziehen, weder in javascript.0.variables(wo eig. kein eigener DP hingehört), noch in 0_userdata.0. Getestet mit dem script aus dem ersten Post und der heute erschienenen JS 5.2.18

            18:10:24.893	info	javascript.1 (21510) Start javascript script.js.Forum.test1234
            18:10:24.899	info	javascript.1 (21510) script.js.Forum.test1234: registered 0 subscriptions and 0 schedules
            18:10:24.912	info	javascript.1 (21510) script.js.Forum.test1234: setForeignState(id=javascript.0.variables.test1234, state={"val":"test init","ack":true,"c":"script.js.Forum.test1234"})
            18:10:24.962	info	javascript.1 (21510) script.js.Forum.test1234: getState(id=javascript.0.variables.test1234, timerId=undefined) => {"val":"test init","ack":true,"ts":1639588224920,"q":0,"c":"script.js.Forum.test1234","from":"system.adapter.javascript.1","user":"system.user.admin","lc":1639588224920}
            18:10:24.963	info	javascript.1 (21510) script.js.Forum.test1234: test init
            

            iobroker läuft unter Docker auf QNAP TS-451+
            SkriptRecovery: https://forum.iobroker.net/post/930558

            paul53P 1 Reply Last reply
            0
            • F fastfoot

              @paul53 sagte in getState() in Callback von createState() gibt not found:

              Das ist ein Bug.

              sehr seltsam, ich kann das nicht nachvollziehen, weder in javascript.0.variables(wo eig. kein eigener DP hingehört), noch in 0_userdata.0. Getestet mit dem script aus dem ersten Post und der heute erschienenen JS 5.2.18

              18:10:24.893	info	javascript.1 (21510) Start javascript script.js.Forum.test1234
              18:10:24.899	info	javascript.1 (21510) script.js.Forum.test1234: registered 0 subscriptions and 0 schedules
              18:10:24.912	info	javascript.1 (21510) script.js.Forum.test1234: setForeignState(id=javascript.0.variables.test1234, state={"val":"test init","ack":true,"c":"script.js.Forum.test1234"})
              18:10:24.962	info	javascript.1 (21510) script.js.Forum.test1234: getState(id=javascript.0.variables.test1234, timerId=undefined) => {"val":"test init","ack":true,"ts":1639588224920,"q":0,"c":"script.js.Forum.test1234","from":"system.adapter.javascript.1","user":"system.user.admin","lc":1639588224920}
              18:10:24.963	info	javascript.1 (21510) script.js.Forum.test1234: test init
              
              paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by paul53
              #6

              @fastfoot sagte: ich kann das nicht nachvollziehen

              Stimmt, ich auch nicht:

              Bild_2021-12-15_185523.png

              Javascript v5.2.13.
              Man sollte doch erst testen, bevor man eine Aussage trifft.

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              F 1 Reply Last reply
              0
              • paul53P paul53

                @fastfoot sagte: ich kann das nicht nachvollziehen

                Stimmt, ich auch nicht:

                Bild_2021-12-15_185523.png

                Javascript v5.2.13.
                Man sollte doch erst testen, bevor man eine Aussage trifft.

                F Offline
                F Offline
                fastfoot
                wrote on last edited by
                #7

                @paul53 sagte in getState() in Callback von createState() gibt not found:

                Stimmt, ich auch nicht:

                @apollon77 hat es mittlerweile im issue erklärt, scheint ein timing problem zu sein, welches wir dann wohl nicht haben

                iobroker läuft unter Docker auf QNAP TS-451+
                SkriptRecovery: https://forum.iobroker.net/post/930558

                1 Reply Last reply
                0
                • D Offline
                  D Offline
                  drefree
                  wrote on last edited by drefree
                  #8

                  Das mit dem Timing-Problem macht sehr viel Sinn, ist ein Raspberry Pi 3 mit relativ wenig freiem Arbeitsspeicher und vielen anderen Skripten die im Hintergrund laufen. Habe vor kurzem die States auch auf Redis umgestellt, was evtl. auch eine zusätzliche Verzögerung bedeuten kann (?). Werde mal probieren den Initialwert mit def zu übergeben sobald ich wieder Zeit habe, danke für eure Hilfe.

                  1 Reply Last reply
                  0
                  Reply
                  • Reply as topic
                  Log in to reply
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  573

                  Online

                  32.7k

                  Users

                  82.5k

                  Topics

                  1.3m

                  Posts
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                  ioBroker Community 2014-2025
                  logo
                  • Login

                  • Don't have an account? Register

                  • Login or register to search.
                  • First post
                    Last post
                  0
                  • Home
                  • Recent
                  • Tags
                  • Unread 0
                  • Categories
                  • Unreplied
                  • Popular
                  • GitHub
                  • Docu
                  • Hilfe