Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. [gelöst] adapter.getState bei Boolean immer false?

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    SOLVED [gelöst] adapter.getState bei Boolean immer false?

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

      Hallo zusammen,
      bin am verzweifeln ......mit adapter.getState bei type: boolean bekomme ich immer ein false zurück.
      Ist erst seit den letzten Updates so....
      admin 3.6.9
      js-controller 2.0.25

      Jemand eine Idee?

      Danke und Gruß
      LausiD

      AlCalzone 1 Reply Last reply Reply Quote 0
      • LausiD
        LausiD @AlCalzone last edited by

        @AlCalzone
        Sorry, hatte am Code nichts geändert.
        Nach langer Suche habe ich das Problem entdeckt 🙂
        Mit adapter.setObject zB

        {_id: 'info.Settings.logCheckObject', type: 'state', common: {name: 'LOG "check channel ....." ', type: 'boolean', read: true, write: true, role: 'switch'}, native: {}}
        

        wird mit js-controller 2.0.29 das zugehörige State immer auf false gesetzt.
        Hat das einen bestimmten Grund?

        Danke und Gruß
        LausiD

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

          @LausiD Ohne Code kann man nur raten.

          LausiD 1 Reply Last reply Reply Quote 0
          • LausiD
            LausiD @AlCalzone last edited by

            @AlCalzone
            Sorry, hatte am Code nichts geändert.
            Nach langer Suche habe ich das Problem entdeckt 🙂
            Mit adapter.setObject zB

            {_id: 'info.Settings.logCheckObject', type: 'state', common: {name: 'LOG "check channel ....." ', type: 'boolean', read: true, write: true, role: 'switch'}, native: {}}
            

            wird mit js-controller 2.0.29 das zugehörige State immer auf false gesetzt.
            Hat das einen bestimmten Grund?

            Danke und Gruß
            LausiD

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

              @LausiD Ich tippe auf einen Bug.

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

                Checke nachher. Gibt eh noch eine 2.0.34 nachher.

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

                  @LausiD "It's a feature"

                  Es gibt bestimnte Defaults für bestimmte Rollen: siehe https://github.com/ioBroker/ioBroker.js-controller/blob/master/lib/defaultObjs.js#L49

                  Unter anderen die Rolle "switch" und da kommt der Default "false" her. Der einzige Unterschied zu früher ist das mit controller 2.0 der Default Wert auch gesetzt wird.

                  Was ist denn dein Problem mit dem Default-Wert?

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

                    PS: setObject ist übrigens nicht sinnvoll!! setObjectNotExists ist sinnvoller. Sonst wird das Objekt jedes mal komplett überschrieben, es verliert also u.a. custom Settings und sowas. Also setObject --> setObjectNotExists!

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

                      Ooookkkk ... wir haben Intern nochmal gesprochen und ja es wird wohl oft "get/setObject" genutzt anstelle get/set/extendObject. Ich habe als schnelle Lösung für die rollen "switch" und "level.dimmer" die Default Werte rausgenommen die intern vorgegeben sind. Es gibt jetzt noch einige "indicator.* "Rollen wo es gemacht wird.

                      2.0.34 vom controller ist auf GitHub und wird noch final diskutiert und geht dann raus. Falls sich etwas ändert melde ich mich hier nochmals.

                      LausiD 1 Reply Last reply Reply Quote 1
                      • LausiD
                        LausiD @apollon77 last edited by

                        @apollon77 sagte in adapter.getState bei Boolean immer false?:

                        2.0.34 vom controller ist auf GitHub und wird noch final diskutiert und geht dann raus. Falls sich etwas ändert melde ich mich hier nochmals.
                        @AlCalzone

                        Super, läuft mit 2.0.34 wieder einwandfrei 🙂
                        Vielen Dank auch für die Erklärungen, konnte wieder einiges dazu lernen.
                        Was ich bisher mache:
                        Bei Anlage neuer Instanz werden die vorgegeben Werte aus Variablen in die jeweiligen Objekte geschrieben.
                        Die States können jetzt jederzeit geändert werden und sind beim nächsten Start Adapter in den Objekten gespeichert.
                        setObject verwende bei jedem Start Adapter um von den Setings,Configuration usw über den Adapter auch den Namen der Objekes ändern zu können.
                        Bisher wurden eben keine States automatisch angelegt und alles war gut.
                        Gerne auch Vorschläge zur besseren Lösung.

                        Finde den js-adapter sehr gelungen, weniger Speicherbedarf freut den PI User....Vielen Dank für die Arbeit

                        Gruß
                        LausiD

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

                          Also in meinen Augen ist aktuell der "best practice" eine Logik mit:

                          • getObject um rauszufinden ob das Objekt existiert
                          • wenn ja extendObject um die releanten teile die man ändern will zu ändern
                          • wenn nein setObject um initial zu setzen
                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          1.0k
                          Online

                          31.6k
                          Users

                          79.4k
                          Topics

                          1.3m
                          Posts

                          adapter
                          3
                          10
                          718
                          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