Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Checkbox in Adaperkonfiguration deaktivieren

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.3k

Checkbox in Adaperkonfiguration deaktivieren

Geplant Angeheftet Gesperrt Verschoben Entwicklung
27 Beiträge 4 Kommentatoren 3.0k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • AlCalzoneA Offline
    AlCalzoneA Offline
    AlCalzone
    Developer
    schrieb am zuletzt editiert von
    #12

    @SchuetzeSchulz:

    Ich vermute er erstellt/ändert im Hintergrund wohl noch States während durch das Setzen der Flags der Neustart des Adapters ausgelöst wird.

    Allerdings ist mir bisher noch nichts eingefallen, das zu umgehen. `
    Beim Überfliegen blicke ich nicht ganz durch, wie der Programmablauf mit Neustarts sein soll. Aber Ändern des Adapter-Objekts führt in der Regel zu sofortigem Neustart. D.h. du solltest das erst machen, wenn deine Initialisierung abgeschlossen ist, also alle Objekte und States befüllt sind.

    Die setState und setObject-Methoden haben allesamt einen Callback, der dich darüber informiert, dass der Vorgang abgeschlossen ist. Du könntest vor dem Erstellen der Objekte ermitteln, wie viele angelegt werden sollen und in diesem Callback eine Variable runterzählen. Wenn diese dann Null erreicht, bist du fertig und kannst den Adapter neustarten durch Setzen der Flags.

    In meinem TypeScript-Adapter-Template sind die meisten Adapter-Methoden "dokumentiert", z.B. adapter.setObject hier:

    https://github.com/AlCalzone/ioBroker.t … d.ts#L1009

    und der Callback hier:

    https://github.com/AlCalzone/ioBroker.t ... d.ts#L1268

    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

    1 Antwort Letzte Antwort
    0
    • S Offline
      S Offline
      SchuetzeSchulz
      schrieb am zuletzt editiert von
      #13

      Das mit dem Callback klingt logisch und würde sicherlich bei meinem Problem helfen.

      Allerdings muss ich dazu sagen dass ich leider noch absoluter JavaScript newbie bin und nicht so ganz verstehe wie ich das implementieren kann.

      Der Callback müsste ja quasi über alle setObjects etc. gehen.

      Auch Google hatte mir jetzt nichts brauchbares ausgespuckt, was ich verstehe…

      Hättest Du evtl. ein kurzes Codebeispiel für mich?

      1 Antwort Letzte Antwort
      0
      • AlCalzoneA Offline
        AlCalzoneA Offline
        AlCalzone
        Developer
        schrieb am zuletzt editiert von
        #14

        @SchuetzeSchulz:

        Hättest Du evtl. ein kurzes Codebeispiel für mich? `
        So ähnlich wie hier http://forum.iobroker.net/viewtopic.php … 66#p112166

        Nur mit setObject statt createState und entsprechend angepassten Definitionen. Und die Funktion main() ersetzt durch deinen Adapter-Neustart.

        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

        1 Antwort Letzte Antwort
        0
        • S Offline
          S Offline
          SchuetzeSchulz
          schrieb am zuletzt editiert von
          #15

          Das setzt aber voraus, dass ich vorab schon weiß welche/wieviele States ich habe, oder?

          Bei liest der Adapter diese ja erstmal aus dem Gateway aus (setupDevices()) und erzeugt diese dann dynamisch.

          1 Antwort Letzte Antwort
          0
          • AlCalzoneA Offline
            AlCalzoneA Offline
            AlCalzone
            Developer
            schrieb am zuletzt editiert von
            #16

            Wie gesagt, ich weiß nicht wie dein Gateway bzw. die Kommunikation funktioniert und wann du weißt welche States erzeugt werden. Anhand der Gateway-Antwort müsstest du aber ermitteln können wie viele States es werden, oder?

            Im Prinzip kannst du auch deiner Funktion setupDevices() einen Callback übergeben und den dann in setupDevices aufrufen, wenn alle States fertig sind. In diesem Callback gehts dann weiter bzw. startest du den Adapter neu.

            Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

            1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              SchuetzeSchulz
              schrieb am zuletzt editiert von
              #17

              Hmm, mir scheint ich habe da ein größeres Problem im Adapter.

              Ich bekomme auch Fehler im Log, wenn ich "nur" den Adapter manuell über den Admin stoppe.

              Und das nicht nur wenn der Adapter nur kurz läuft (dann hätte man ja vermuten können er ist mit den setObject's noch beschäftigt), sondern auch nach längerer Laufzeit :(

              1 Antwort Letzte Antwort
              0
              • AlCalzoneA Offline
                AlCalzoneA Offline
                AlCalzone
                Developer
                schrieb am zuletzt editiert von
                #18

                @SchuetzeSchulz:

                Ich bekomme auch Fehler im Log `
                Wenn du sie postest, kann man eventuell helfen ;)

                Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                1 Antwort Letzte Antwort
                0
                • S Offline
                  S Offline
                  SchuetzeSchulz
                  schrieb am zuletzt editiert von
                  #19

                  Sind die gleichen wie oben.

                  Quasi keine wirklich Fehler aber halt rot :)

                  1 Antwort Letzte Antwort
                  0
                  • BluefoxB Offline
                    BluefoxB Offline
                    Bluefox
                    schrieb am zuletzt editiert von
                    #20

                    Eigentlich so ein Parameter sollte nicht als Object, sondern als State existieren.

                    Einfach in ip-package.json

                    ein State definieren (z.B. "info.initialized", wie hier https://github.com/ioBroker/ioBroker.mi … e.json#L99 )

                    Und im Adapter dann nach der Initialization auf true setzen.

                    Beim Start dann prüfen ob "info.initialized" true ist.

                    {
                                "_id": "info.initialized",
                                "type": "state",
                                "common": {
                                    "role": "indicator.initialized",
                                    "name": "If all information was read from Gateway",
                                    "type": "boolean",
                                    "read": true,
                                    "write": true,
                                    "def": false
                                },
                                "native": {}
                            }
                    

                    Man muss nur dann den Adapter uploaden und neue Instanz anlegen, dann wird die Variable "info.initialized" automatisch erzeugt.

                    1 Antwort Letzte Antwort
                    0
                    • apollon77A Offline
                      apollon77A Offline
                      apollon77
                      schrieb am zuletzt editiert von
                      #21

                      Dann geht es aber nicht per Admin zu setzen. Er will den gleichen Mechanismus wir „one time sync“ im hm-Rpc

                      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                      1 Antwort Letzte Antwort
                      0
                      • S Offline
                        S Offline
                        SchuetzeSchulz
                        schrieb am zuletzt editiert von
                        #22

                        @apollon77:

                        Dann geht es aber nicht per Admin zu setzen. Er will den gleichen Mechanismus wir „one time sync“ im hm-Rpc `

                        Genau und das geht meines Wissens mit Bluefox' gepostetem Lösungsvorschlag nicht, oder?

                        1 Antwort Letzte Antwort
                        0
                        • AlCalzoneA Offline
                          AlCalzoneA Offline
                          AlCalzone
                          Developer
                          schrieb am zuletzt editiert von
                          #23

                          @apollon77:

                          Dann geht es aber nicht per Admin zu setzen. `
                          Ich bin mir nicht 100% sicher, was der Socket im Admin-Interface alles zulässt, aber eventuell per

                          socket.emit("setState", stateID, value, callback);
                          
                          

                          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                          1 Antwort Letzte Antwort
                          0
                          • BluefoxB Offline
                            BluefoxB Offline
                            Bluefox
                            schrieb am zuletzt editiert von
                            #24

                            @AlCalzone:

                            @apollon77:

                            Dann geht es aber nicht per Admin zu setzen. `
                            Ich bin mir nicht 100% sicher, was der Socket im Admin-Interface alles zulässt, aber eventuell per

                            socket.emit("setState", stateID, value, callback);
                            
                            ```` `  
                            

                            Das geht

                            1 Antwort Letzte Antwort
                            0
                            • S Offline
                              S Offline
                              SchuetzeSchulz
                              schrieb am zuletzt editiert von
                              #25

                              Darf ich fragen, was das socket.emit bewirkt?

                              Soll ich das statt setForeignObject nutzen?

                              1 Antwort Letzte Antwort
                              0
                              • apollon77A Offline
                                apollon77A Offline
                                apollon77
                                schrieb am zuletzt editiert von
                                #26

                                @Bluefox: Warum kann er es nicht so machen wie auch hm-rpc … bzw warum tut es nicht?

                                Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                1 Antwort Letzte Antwort
                                0
                                • AlCalzoneA Offline
                                  AlCalzoneA Offline
                                  AlCalzone
                                  Developer
                                  schrieb am zuletzt editiert von
                                  #27

                                  @SchuetzeSchulz:

                                  Darf ich fragen, was das socket.emit bewirkt?

                                  Soll ich das statt setForeignObject nutzen? `
                                  Das ist eine Möglichkeit, aus der Admin-Oberfläche bestimmte Adapterfunktionen aufzurufen - mit leicht anderer Syntax.

                                  Ich glaube aber dass bei dem was du vor hast (1x Sync aus Admin anstoßen?) die ursprüngliche Lösung einfacher ist - wenn du denn das Timing des Adapter-Neustarts auf die Reihe bekommst.

                                  Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                  1 Antwort Letzte Antwort
                                  0
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  650

                                  Online

                                  32.4k

                                  Benutzer

                                  81.4k

                                  Themen

                                  1.3m

                                  Beiträge
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Anmelden

                                  • Du hast noch kein Konto? Registrieren

                                  • Anmelden oder registrieren, um zu suchen
                                  • Erster Beitrag
                                    Letzter Beitrag
                                  0
                                  • Home
                                  • Aktuell
                                  • Tags
                                  • Ungelesen 0
                                  • Kategorien
                                  • Unreplied
                                  • Beliebt
                                  • GitHub
                                  • Docu
                                  • Hilfe