Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. [gelöst] Adapter Scope-Problem mit scheduleJob getState (ReferenceError)

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] Adapter Scope-Problem mit scheduleJob getState (ReferenceError)

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

      Hi,

      wie genau lautet denn der ReferenceError? Grundsätzlich strange und sollte nicht passieren.

      Ansonsten hier noch ein paar Anmerkungen:

      • Die ganzen States (scheint ja recht viel und immer gleich zu sein) kannst Du auch in der io-package unter instanceObjects definieren. Dann werden die automatisch von ioBroker angelegt wenn der Adapter installiert wird. Dann sparst Du dir den Code dafür im Skript.

      • die beiden "setTimeouts" am Ende kommen mir auch etwas optimierbar vor. Falls es darum geht zu warten bis andere Dinge fertig sind am besten mit callbacks arbeiten

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

        Die Fehlermeldung

        "C:\Program Files\JetBrains\WebStorm 2018.1\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" --debug-brk=23504 --expose_debug_as=v8debug C:\ioBroker\node_modules\iobroker.husq-automower\main.js --force --log
        Debugger listening on [::]:23504
        ReferenceError: idnLastdayLocations is not defined
            at Socket. <anonymous>(C:\ioBroker\node_modules\iobroker.husq-automower\main.js:859:30)
            at Socket.onack (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-client\lib\socket.js:316:9)
            at Socket.onpacket (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-client\lib\socket.js:241:12)
            at Manager. <anonymous>(C:\ioBroker\node_modules\iobroker.js-controller\node_modules\component-bind\index.js:21:15)
            at Manager.Emitter.emit (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\component-emitter\index.js:133:20)
            at Manager.ondecoded (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-client\lib\manager.js:345:8)
            at Decoder. <anonymous>(C:\ioBroker\node_modules\iobroker.js-controller\node_modules\component-bind\index.js:21:15)
            at Decoder.Emitter.emit (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\component-emitter\index.js:133:20)
            at Decoder.add (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-parser\index.js:251:12)
            at Manager.ondata (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-client\lib\manager.js:335:16)
        
        Process finished with exit code 6</anonymous></anonymous></anonymous> 
        

        Das mit dem setTimeout kann wahrscheinlich direkt erfolgen, ansonsten baue ich das noch um.

        Ja, die States hatte ich erst in der io-package, aber die Lösung im Skript finde ich besser pflegbar und außerdem kann ich da gleich meine Initialen Werte setzen, was letztendlich den Ausschlag gab. Denke per io-package geht das nicht.

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

          @greyhound:

          Die Fehlermeldung

          "C:\Program Files\JetBrains\WebStorm 2018.1\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" --debug-brk=23504 --expose_debug_as=v8debug C:\ioBroker\node_modules\iobroker.husq-automower\main.js --force --log
          Debugger listening on [::]:23504
          ReferenceError: idnLastdayLocations is not defined
              at Socket. <anonymous>(C:\ioBroker\node_modules\iobroker.husq-automower\main.js:859:30)
              at Socket.onack (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-client\lib\socket.js:316:9)
              at Socket.onpacket (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-client\lib\socket.js:241:12)
              at Manager. <anonymous>(C:\ioBroker\node_modules\iobroker.js-controller\node_modules\component-bind\index.js:21:15)
              at Manager.Emitter.emit (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\component-emitter\index.js:133:20)
              at Manager.ondecoded (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-client\lib\manager.js:345:8)
              at Decoder. <anonymous>(C:\ioBroker\node_modules\iobroker.js-controller\node_modules\component-bind\index.js:21:15)
              at Decoder.Emitter.emit (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\component-emitter\index.js:133:20)
              at Decoder.add (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-parser\index.js:251:12)
              at Manager.ondata (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-client\lib\manager.js:335:16)
          
          Process finished with exit code 6</anonymous></anonymous></anonymous> 
          ```` `  
          

          Kannst Du bitte Code auf Github updaten … Da ist die zeile was ganz anderes. 🙂

          Strange ist in jedem Fall der Stacktrace hier ... Wie genau löst Du das aus? WO setzt du den Timer dafür?

          @greyhound:

          Ja, die States hatte ich erst in der io-package, aber die Lösung im Skript finde ich besser pflegbar und außerdem kann ich da gleich meine Initialen Werte setzen, was letztendlich den Ausschlag gab. Denke per io-package geht das nicht. `
          Doch ab js-controller 1.5.0 wird es gehen 🙂 "common.def" kann man dann leere States auf initialwerte setzen.

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

            @greyhound:

            Die Fehlermeldung

            "C:\Program Files\JetBrains\WebStorm 2018.1\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" --debug-brk=23504 --expose_debug_as=v8debug C:\ioBroker\node_modules\iobroker.husq-automower\main.js --force --log
            Debugger listening on [::]:23504
            ReferenceError: idnLastdayLocations is not defined
                at Socket. <anonymous>(C:\ioBroker\node_modules\iobroker.husq-automower\main.js:859:30)
                at Socket.onack (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-client\lib\socket.js:316:9)
                at Socket.onpacket (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-client\lib\socket.js:241:12)
                at Manager. <anonymous>(C:\ioBroker\node_modules\iobroker.js-controller\node_modules\component-bind\index.js:21:15)
                at Manager.Emitter.emit (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\component-emitter\index.js:133:20)
                at Manager.ondecoded (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-client\lib\manager.js:345:8)
                at Decoder. <anonymous>(C:\ioBroker\node_modules\iobroker.js-controller\node_modules\component-bind\index.js:21:15)
                at Decoder.Emitter.emit (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\component-emitter\index.js:133:20)
                at Decoder.add (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-parser\index.js:251:12)
                at Manager.ondata (C:\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-client\lib\manager.js:335:16)
            
            Process finished with exit code 6</anonymous></anonymous></anonymous> 
            

            Das mit dem setTimeout kann wahrscheinlich direkt erfolgen, ansonsten baue ich das noch um.

            Ja, die States hatte ich erst in der io-package, aber die Lösung im Skript finde ich besser pflegbar und außerdem kann ich da gleich meine Initialen Werte setzen, was letztendlich den Ausschlag gab. Denke per io-package geht das nicht. `

            Day hast du einmal gross und einmal klein geschrieben

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

              Der Code ist aktualisiert, für den Test mache ich das mit setTimeout als letzte Anweisung in Main.

              Den Fehler bekomme ich per WebStorm oder auch beim Start als ioBroker-Adapter, dann erst um Mitternacht (ohne den Testtimer). Da war mir der Fehler im Log aufgefallen.

              Ist ein eigener Schedule in einem Adapter erlaubt? Habe sonst keine andere Möglichkeit gefunden, um Mitternacht jeweils etwas laufen zu lassen.

              Wahrscheinlich wichtig auch die Umgebung:

              • Windows10

              • node v6.14.2

              • ioBroker aktuell aus latest

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

                @blauholsten:

                Day hast du einmal gross und einmal klein geschrieben `
                Ich wundere mich manchmal wirklich über die eigene Code-Blindheit.

                Ich danke euch ganz dolle :ugeek:

                1 Reply Last reply Reply Quote 0
                • Jey Cee
                  Jey Cee Developer last edited by

                  Ich hätte da noch eine Anmerkung zur Verwendung von 'var'. Das ist eigentlich veraltet und wurde in ES6 durch 'let' und 'const' ersetzt. Der Grund ist das var nicht klar abgrenzt wo die Variable dann abgegriffen werden kann.

                  let und const sind immer nur innerhalb eines Blocks verfügbar. So kann man auch den selben variablen Namen öfter definieren ohne das man gleich ein Problem hat.

                  Generell empfehle ich sich mit ES6 auseinander zu setzen das es viele Änderungen gebracht hat.

                  ES = Ecma Script was der Name für den Standard von JavaScript ist.

                  Gesendet von meinem m8 mit Tapatalk

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

                    @greyhound:

                    @blauholsten:

                    Day hast du einmal gross und einmal klein geschrieben `
                    Ich wundere mich manchmal wirklich über die eigene Code-Blindheit.

                    Ich danke euch ganz dolle :ugeek: `

                    Mit der Blindheit schliesse ich mich an … und verfluche die Firefox websuche das die im Standard Not-Case-Sensitive sucht 😉

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

                      Und noch mal eine andere Frage, gab es hier nicht mal einen Danke-Button zu den einzelnen Beiträgen?

                      1 Reply Last reply Reply Quote 0
                      • Jey Cee
                        Jey Cee Developer last edited by

                        Doch gab es, das Plugin ist nicht mehr Kompatibel mit der Foren Software.

                        Gesendet von meinem m8 mit Tapatalk

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        777
                        Online

                        31.7k
                        Users

                        79.8k
                        Topics

                        1.3m
                        Posts

                        4
                        11
                        767
                        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