Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen

    This topic has been deleted. Only users with topic management privileges can see it.
    • Mic
      Mic Developer @liv-in-sky last edited by

      @liv-in-sky
      Wegen "ack":

      Siehe hier: https://forum.iobroker.net/topic/34019/frage-zu-subscribeforeignstates-ack/9

      Insbesondere Kommentar von AlCalzone:
      @AlCalzone sagte in Frage zu subscribeForeignStates() -> ack:

      Bei anderen Adaptern solltest du davon ausgehen, dass die States erst "gültig" bzw. bestätigt sind, wenn ack: true.

      States mit ack: false zu setzen, ist eine Aufforderung an den dazugehörigen Adapter (oder Skript), diese Änderung zu verarbeiten.

      Daher werden Datenpunkt-Änderungen bei anderen Adaptern ignoriert, falls nicht bestätigt (ack: false).

      Als Ausnahme habe ich für Datenpunktänderungen für 0_userdata.0 und javascript.x folgende Optionen eingebaut:
      9ca202e4-cf18-4fb7-a531-e9f4fc132db5-image.png

      liv-in-sky 2 Replies Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky @Mic last edited by

        @Mic hatte ich auch umgestellt - selbe meldung

        Mic 1 Reply Last reply Reply Quote 0
        • Mic
          Mic Developer @liv-in-sky last edited by

          @liv-in-sky
          Klar, die Einstellung betrifft auch nur:
          db6520b9-3321-4b20-b460-3f18e355b063-image.png

          Du hast da aber einen Adapter. Bestätigt dieser Adapter "control-own" denn nicht sauber den Datenpunkt mit ack:true? Denn das wäre gemäß https://forum.iobroker.net/post/448606 dann ein Fehler/Optimierungsbedarf dieses "control-own" Adapters.

          1 Reply Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @Mic last edited by

            @Mic meine datenpunkte liegen unter controll-own.0 - ist ein eigener ordner - könnte man da noch einbauen, dass man selber welche definieren kann

            Mic 1 Reply Last reply Reply Quote 0
            • Mic
              Mic Developer @liv-in-sky last edited by

              @liv-in-sky sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:

              meine datenpunkte liegen unter controll-own.0

              Hmm, das entspricht aber nicht den ioBroker-Regeln, also eigene Datenpunkte dürfen nur unter 0_userdata.0 oder javascript.x sein...

              liv-in-sky Homoran 3 Replies Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky @Mic last edited by

                @Mic userdata.0 kam erst nach einigen jahren - hatte mir damals das angelegt

                Mic 1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @Mic last edited by liv-in-sky

                  @Mic wollte mir den umzug von fast 700 eigenen datenpunkten ersparen

                  1 Reply Last reply Reply Quote 0
                  • Mic
                    Mic Developer @liv-in-sky last edited by

                    @liv-in-sky sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:

                    @Mic userdata.0 kam erst nach einigen jahren - hatte mir damals das angelegt

                    Verstehe ich gut 😬
                    Ich nehme es mal auf die Liste, aber nicht mit hoher Prio (weil eben nicht der ioBroker Spezifikation entsprechend), erst sind noch andere Dinge dran

                    liv-in-sky 1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @Mic last edited by

                      @Mic sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:

                      eigene Datenpunkte dürfen nur unter 0_userdata.0 oder javascript.x sein...

                      Neee

                      Meine liegen auch unter Messwerte.0 oder Sytemvariablen.0

                      Mic 1 Reply Last reply Reply Quote 0
                      • liv-in-sky
                        liv-in-sky @Mic last edited by

                        @Mic vielleicht könntest du die prio ein wenig höherschrauben 🙂 es gibt vielleicht mehr von uns "assi-usern" 😞

                        1 Reply Last reply Reply Quote 1
                        • Mic
                          Mic Developer @Homoran last edited by

                          @Homoran sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:

                          Meine liegen auch unter Messwerte.0 oder Sytemvariablen.0

                          😬 Verstehe.

                          @liv-in-sky
                          Ach Quatsch, alles gut 😎 , du und @Homoran und wohl einige weitere haben die wohl halt einfach angelegt, auch weil es geht in den Objekten und aus Übersichtlichkeit.

                          Ich schau mal. Idealerweise prüfe ich, ob hinter dem Hauptdatenpunkt "Messwerte.0" etc. ein "echter" Adapter ist, wenn ja, dann "ack:true", wenn nicht, dann kann zieht er die Einstellung von
                          05c62052-bd45-479a-a8d1-deb3a9f83496-image.png

                          liv-in-sky Homoran 2 Replies Last reply Reply Quote 1
                          • liv-in-sky
                            liv-in-sky @Mic last edited by

                            @Mic

                            klasse idee

                            1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @Mic last edited by

                              @Mic sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:

                              weil es geht in den Objekten

                              zumindest ging es früher - jetzt nicht mehr (so einfach).

                              @Mic sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:

                              und aus Übersichtlichkeit.

                              Ganz genau!

                              Natürlich muss man aufpassen, dass später nicht ein Adapter diesen Namespace belegt. Dann muss es Tatsächlich unter 0_userdata.0 - würde aber alles noch eine Ebene tiefer verschachteln.

                              1 Reply Last reply Reply Quote 0
                              • liv-in-sky
                                liv-in-sky last edited by

                                @Mic mic sollte der alias ordner nicht eventuell auch integriert werden ???

                                M Mic 2 Replies Last reply Reply Quote 0
                                • M
                                  MartyBr @liv-in-sky last edited by

                                  @liv-in-sky
                                  @Mic
                                  Habe hier den passenden Fehler:

                                  Bildschirmfoto 2020-07-11 um 20.10.13.png

                                  Mic 1 Reply Last reply Reply Quote 0
                                  • M
                                    MartyBr @Mic last edited by

                                    @Mic
                                    Das hier wirft er aus:
                                    Bildschirmfoto 2020-07-11 um 20.16.01.png

                                    Ich glaube, das betrifft fast alle nördlich von Hannover, insbesondere die Nordlichter.

                                    Mic 1 Reply Last reply Reply Quote 0
                                    • Mic
                                      Mic Developer @liv-in-sky last edited by

                                      @liv-in-sky sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:

                                      @Mic mic sollte der alias ordner nicht eventuell auch integriert werden ???

                                      Bau ich auch gleich mit ein, danke. Werde jetzt umsetzen, Update folgt bald.

                                      Mic 1 Reply Last reply Reply Quote 1
                                      • Mic
                                        Mic Developer @Mic last edited by Mic

                                        @liv-in-sky
                                        @Homoran

                                        Anderes Acknowledge für eure eigenen Datenpunkte wie unter "Messwerte.0" ist jetzt eingebaut, ebenso inklusive alias.0, etc.

                                        Siehe Version 0.1.0-alpha.7 auf Github.

                                        Falls es interessiert, so mache ich das jetzt:

                                            /**
                                             * Verify acknowledge (ack) once a state was changed.
                                             * 
                                             * In General: Any state changes of states will be ignored, if acknowledge (ack) = false.
                                             * The reason is that adapters confirm states by the acknowledge "ack" flag (setting to true).
                                             * Reference: https://forum.iobroker.net/post/448606
                                             * 
                                             * Exception 1: States under javascript.x/0_userdata.0/alias.x: For states created by users under, this behavior can be changed in the adapter options.
                                             * Exception 2: States under smartcontrol.x.: ack:false only.
                                             * Exception 3: States which are not under a "real" adapter namespace, so like "Messwerte.0". Reason: Several users have created 
                                             *              own states in the object main tree, like "Messwerte.0". https://forum.iobroker.net/post/461189
                                             * 
                                             * @param {string}                          statePath   - State Path
                                             * @param {ioBroker.State|null|undefined}   stateObject - State object
                                             * @return {Promise<boolean>}               false if state change shall be ignored due to the ack (or error occurred), otherwise true.
                                             * 
                                             */
                                            async isAckPassing(statePath, stateObject) {
                                        
                                                try {
                                        
                                                    if(!stateObject || !statePath) return false;            
                                        
                                                    const namespace = `${statePath.split('.')[0]}.${statePath.split('.')[1]}`; // like sonos.1
                                        
                                                    let isUserState = false;
                                                    if (statePath.startsWith('javascript.') || statePath.startsWith('0_userdata.0') || statePath.startsWith('alias.')) isUserState = true;
                                        
                                                    if(!isUserState) {
                                                        // Check if state is under a "real" adapter namespace.
                                                        const isRealAdapter = await this._adapter.getForeignObjectAsync(`system.adapter.${namespace}`);
                                                        if (!isRealAdapter) isUserState = true;
                                                    }
                                        
                                                    if (isUserState) {
                                        
                                                        if (!this._adapter.config.triggerStatesAck || this._adapter.config.triggerStatesAck == 'false') {
                                                            if (stateObject.ack == false) {
                                                                return true;
                                                            } else {
                                                                return false;
                                                            }
                                                    
                                                        } else if (this._adapter.config.triggerStatesAck == 'true') {
                                                            if (stateObject.ack == true) {
                                                                return true;
                                                            } else {
                                                                return false;
                                                            }
                                                        } else {
                                                            // any (ack: true or false)
                                                            return true;
                                                        }
                                        
                                                    } else if (statePath.startsWith(`${this._adapter.namespace}.`)) {
                                                        // Any states under this adapter instance, we require ack = false;
                                                        if (stateObject.ack == false) {
                                                            return true;
                                                        } else {
                                                            return false;
                                                        }
                                                    } else {
                                                        // For any other "real" adapter state changes, we require ack = true
                                                        if (stateObject.ack == true) {
                                                            return true;
                                                        } else {
                                                            return false;
                                                        }
                                                    }
                                                
                                                } catch (error) {
                                                    this.dumpError('[isAckPassing()]', error);
                                                    return false;
                                                }
                                        
                                            }
                                        ```
                                        1 Reply Last reply Reply Quote 0
                                        • Mic
                                          Mic Developer @MartyBr last edited by

                                          @MartyBr sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:

                                          @liv-in-sky
                                          @Mic
                                          Habe hier den passenden Fehler:

                                          Bildschirmfoto 2020-07-11 um 20.10.13.png

                                          Schau mal bitte ob es jetzt geht mit 0.1.0-alpha.7

                                          M liv-in-sky 3 Replies Last reply Reply Quote 0
                                          • M
                                            MartyBr @Mic last edited by

                                            @Mic Bin gerade am installieren. Das geht ja wahnsinnig schnell voran 👍

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            825
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            adapter smartcontrol test tester
                                            18
                                            124
                                            11621
                                            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