Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. [Frage] Wie lautet der Syntax für adapter.getState

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Frage] Wie lautet der Syntax für adapter.getState

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

      Hi,

      ich traue mich fast nicht zu fragen aber mir gelingt es einfach nicht einen durch den Adapter angelegten Datenpunkt auf undefined zu prüfen und dessen wert auszulesen. Die adapter.config…. Datenpunkte klappen wunderbar.

      Der Datenpunkt den ich auslesen will lautet: backitup.0.History.Backup_history (der Wert ist ein String : Testwert)

      Im Js-Script-Adapter-Editor ist das überhaupt kein Thema aber ich bekomme es in der Main.js einfach nicht hin, folgendes habe ich versucht:

      adapter.log.info(adapter.getState(adapter.name+'.'+adapter.instance+".History.letztes_ccu_Backup"));
      adapter.log.info(adapter.getState(adapter.name+'.'+adapter.instance+".History.letztes_ccu_Backup").val);
      
      

      und zig Abwandlungen davon.

      Das setzen der States klappt wunderbar nur das prüfen ob undefined und das auslesen nicht.

      Wäre toll wenn mir hier mal jemand den codeschnipsel anpassen könnte.

      Eine Frage hätte ich zusätzlich, wie ich es verstanden habe ist es nicht möglich einen Datenpunkt zeitgleich mit adapter.setObjectNotExists zu erstellen und dessen Wert einzutragen oder?

      Denn beim Scripten mit CreateState klappt das ja.

      Vielen Dank schonmal

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

        Laut https://github.com/ioBroker/ioBroker/wiki/Adapter-Development-Documentation#object-fields:

        adapter.getState('myState', function (err, state) {
        
            adapter.log.info(
                  'State ' + adapter.namespace + '.myState -' + 
                  '  Value: '        + state.val + 
                  ', ack: '          + state.ack + 
                  ', time stamp: '   + state.ts  + 
                  ', last changed: ' + state.lc
            ); 
        
        1 Reply Last reply Reply Quote 0
        • apollon77
          apollon77 last edited by

          Ist das gleiche wie bei einer anderen frage von dir: Adapter ist alles asynchron!! Also per callbacks ausschließlich.

          Gesendet vom Handy …

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

            Da bin ich noch nicht wirklich durchgestiegen :lol:

            Ich versuche mich zu bessern

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

              Wenn man aus dem JavaScript-Adapter Skript-Umfeld kommt muss man da umdenken.

              Im JavaScript-Adapter sind einige Dinge synchron gemacht damit es beim Scripte-Scheiben einfacher ist. Aber Adapter ist "plain" 🙂

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

                @apollon77:

                Wenn man aus dem JavaScript-Adapter Skript-Umfeld kommt muss man da umdenken.

                Im JavaScript-Adapter sind einige Dinge synchron gemacht damit es beim Scripte-Scheiben einfacher ist. Aber Adapter ist "plain" 🙂 `

                Erschwerend kommt noch hinzu dass ich eigentlich nur ein Hobby-Scripter bin und das alles durch "learning bei schmeißing in the eis cold water" lernen muss :lol:

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

                  Danach kannst Du noch viele weitere Adapter bauen :-))

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

                    @apollon77:

                    Danach kannst Du noch viele weitere Adapter bauen :-)) `

                    Bis dahin bin ich ergraut!

                    Eine Frage hab ich noch, wie macht der Profi das nun dass er mit:

                    adapter.setObjectNotExists('History.letztes_minimal_Backup', {type: 'state', common: {name: 'Letztes minimal Backup', type: 'string', state: 'Noch kein Backup', role: 'indicator'}, native: {}});
                    
                    

                    Den Datenpunkt erstellt und ihn gleich mit bspw. (Noch kein Backup) befüllt?

                    Weil wenn jetzt der Datenpunkt neu erstellt wurde, ist er ja leer d.h. wenn ich in abfrage bekomme ich einen error (TypeError: Cannot read property 'val' of null) Wenn ich ihn jedoch mit setState befüllen würde ohne vorher zu prüfen ob da schon was drin steht, würde ja bei jedem Adapterstart wieder der "Default-Eintrag" reingeschrieben werden.

                    Oder sehe ich das falsch?

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

                      An der Stelle würde ich das Trennen. Du machst einmal setObjectNotExists und danach ein "getState" und im Callback wenn state oder stata.val ===null ist dann den Wert setzen.

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

                        Ich weiß ich bin etwas spät, aber dafür gibts eigentlich

                        {..., common: { ..., def: "Standardwert", ... }, ...}
                        
                        1 Reply Last reply Reply Quote 0
                        • apollon77
                          apollon77 last edited by

                          Menno … stimmt ... du hast recht ... ohje ... 🙂

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          793
                          Online

                          31.7k
                          Users

                          79.8k
                          Topics

                          1.3m
                          Posts

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