Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Startreihenfolge der Adapter

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Startreihenfolge der Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      MKaiser96 @da_Woody last edited by

      @da_woody said in Startreihenfolge der Adapter:

      [...] bei adaptern unter ioB wäre mir das nicht bekannt, weil auch nicht notwendig.

      Ob es notwendig ist oder nicht, muss jeder für sich entscheiden. Ich bin der Meinung, es wäre notwendig. Wenn der NodeRED Adapter schneller gestartet ist als meine CCU, stürzt NodeRED ab, da es die Zentrale nicht findet. Daher wäre eine Startreihenfolge bzw. -verzögerung sehr sinnvoll.

      Es sollte doch möglich sein, dass ausgewählte Adapter bei Systemstart nicht automatisch starten und man diese mittels eines Skripts in Blockly manuell starten könnte.

      Homoran Thomas Braun Marc Berg 3 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @MKaiser96 last edited by

        @mkaiser96 das hat doch nichts mit Startreihenfolge von Adaptern zu tun, wenn du noch warten willst, dass irgendein x-beliebiges Gerät auch noch vollständig hochgefahren ist.
        die CCU ist doch kein Adapter.

        1 Reply Last reply Reply Quote 1
        • Thomas Braun
          Thomas Braun Most Active @MKaiser96 last edited by Thomas Braun

          @mkaiser96

          Für einzelne Adapter kenne ich da nix.
          Aber du kannst den Start des iobrokers um X Sekunden verzögern.

          Trag in die Datei /usr/lib/systemd/system/iobroker.service
          die Zeile

          ExecStartPre=/bin/sleep 30
          

          unter dem Bereich [SERVICE] ein.
          Dann wird der Start um 30 Sekunden verzögert.

          Schaut dann so aus:

          [Unit]
          Description=ioBroker Server
          Documentation=http://iobroker.net
          After=network.target redis.service influxdb.service mysql-server.service mariadb-server.service
          Wants=redis.service influxdb.service mysql-server.service mariadb-server.service
          
          [Service]
          Type=simple
          User=iobroker
          Environment="NODE=$(which node)"
          ExecStartPre=/bin/sleep 30
          ExecStart=/usr/bin/bash -c '${NODE} /opt/iobroker/node_modules/iobroker.js-controller/controller.js'
          Restart=on-failure
          RestartSec=3s
          
          [Install]
          WantedBy=multi-user.target
          
          da_Woody 1 Reply Last reply Reply Quote 0
          • da_Woody
            da_Woody @Thomas Braun last edited by

            @thomas-braun sagte in Startreihenfolge der Adapter:

            Aber du kannst den Start des iobrokers um X Sekunden verzögern.

            darum gehts ja anscheinend nicht! er will die adpter in gewünschter reihenfolge starten mit verzögerung...

            Thomas Braun 1 Reply Last reply Reply Quote 0
            • Thomas Braun
              Thomas Braun Most Active @da_Woody last edited by Thomas Braun

              @da_woody sagte in Startreihenfolge der Adapter:

              darum gehts ja anscheinend nicht! er will die adpter in gewünschter reihenfolge starten mit verzögerung...

              Kommt doch aufs gleiche raus, wenn auf andere Dienste (außerhalb des iobrokers) gewartet werden soll.

              da_Woody M 2 Replies Last reply Reply Quote 0
              • da_Woody
                da_Woody @Thomas Braun last edited by

                @thomas-braun klar, aber das hat doch nix mit einem adapter zu tun.
                hatte sowas ähliches auch schon. strom ein, mein rechner war schneller da als mein router nach dem modem, die IP meines rechners war als modem beim provider angemeldet. da ging logischer weise nüscht mehr... 😄

                Thomas Braun 1 Reply Last reply Reply Quote 0
                • Marc Berg
                  Marc Berg Most Active @MKaiser96 last edited by Marc Berg

                  @mkaiser96 sagte in Startreihenfolge der Adapter:

                  Wenn der NodeRED Adapter schneller gestartet ist als meine CCU, stürzt NodeRED ab, da es die Zentrale nicht findet.

                  Mal abgesehen von der Diskussion um die Startreihenfolge. Was ich nicht verstehe ist, warum NodeRed abstürzt. Ich habe etliche Systeme über NodeRed angebunden, wenn zwischenzeitlich eines dieser Systeme (noch) nicht da ist, passiert einfach ein Reconnect. Einen Absturz wegen nicht verfügbarer Schnittstellen habe ich noch nie erlebt.

                  mickym 1 Reply Last reply Reply Quote 1
                  • Thomas Braun
                    Thomas Braun Most Active @da_Woody last edited by

                    @da_woody sagte in Startreihenfolge der Adapter:

                    klar, aber das hat doch nix mit einem adapter zu tun.

                    Aber die Adapter starten nicht ohne den iobroker. Wenn der also verzögert startet, dann die Adapter natürlich auch...

                    1 Reply Last reply Reply Quote 1
                    • M
                      MKaiser96 @Thomas Braun last edited by

                      @thomas-braun

                      Prinzipiell stimmt das soweit. Die CCU ist ein externer Dienst. Ich habe aber auch noch weitere Adapter laufen, die ich gerne in einer gewissen Reihenfolge mit Verzögerung starten möchte.

                      Eine Diskussion über die Sinnhaftigkeit hilft mir hier leider nicht weiter. Eine Lösung des Problems wäre sehr hilfreich und kann sicher auch weitere Nutzer weiterhelfen.

                      DJMarc75 Thomas Braun W 3 Replies Last reply Reply Quote 0
                      • DJMarc75
                        DJMarc75 @MKaiser96 last edited by

                        @mkaiser96 sagte in Startreihenfolge der Adapter:

                        Ich habe aber auch noch weitere Adapter laufen

                        Bist Du da jetzt sicher dass Du ioBroker-Adapter meinst?
                        Ich meine speziell Dein NodeRed. Läuft das als Adapter auf ioBroker oder als NodeRed auf einem eigenen System ?

                        M 1 Reply Last reply Reply Quote 0
                        • Thomas Braun
                          Thomas Braun Most Active @MKaiser96 last edited by

                          @mkaiser96

                          Rudimentär kann man das hier steuern:

                          630389a2-912f-4120-93f9-f872b54368ad-grafik.png

                          Gibt aber nur 3 Stufen.

                          1 Reply Last reply Reply Quote 0
                          • M
                            MKaiser96 @DJMarc75 last edited by

                            @djmarc75
                            Ja, ich habe NodeRED als Adapter auf meinem ioBroker laufen.

                            @Thomas-Braun
                            Da kann ich aber leider keine Zeit einstellen. Das hilft mir hier leider nicht direkt weiter.

                            1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @MKaiser96 last edited by paul53

                              @mkaiser96 sagte: NodeRED Adapter erst nach einer gewissen Zeit starten

                              Weise die Node-Red-Instanz in der Startreihenfolge nach hinten (3), stoppe die Instanz bei Neustart von Javascript (Startfolge: 1) und starte sie verzögert wieder.

                              const idNR = 'system.adapter.node-red.0';
                              const objNR = getObject(idNR);
                              objNR.common.enabled = false;
                              setObject(idNR, objNR); 
                              setTimeout(function() {
                                  objNR.common.enabled = true;
                                  setObject(idNR, objNR);
                              }, 30000);
                              
                              1 Reply Last reply Reply Quote 0
                              • P
                                peterfido @da_Woody last edited by

                                @da_woody @MKaiser96 Ich hatte das so vesrtanden, dass da auf einen externen Server (CCU) gewartet werden soll.

                                Meine CCU ist eine VM unter Proxmox. Diese braucht mit einem zugewiesenen CPU Kern eine deutliche Zeit länger, bis diese hochgefahren ist. Mit zwei CPU Kernen fährt die wesentlich flotter hoch.

                                Die Frage könnte im Bezug auf Node-Red hier im Forum unter Node-Red evtl. besser aufgehoben sein. Ich nutze Node-Red auch für vieles. Abstürze kommen da allerdings nicht vor. Wenn ein Gerät nicht erreichbar ist, startet Node-Red die Verbindung dorthin einfach neu.

                                Ansonsten:

                                • CCU kann iobroker selbst mit den HMxxx-Adaptern. Node-Red kann da auf die Objekte lauschen.
                                • Fehler kann man in Node-Red mit den Catch-Nodes abfangen.
                                M mickym 2 Replies Last reply Reply Quote 0
                                • M
                                  MKaiser96 @peterfido last edited by MKaiser96

                                  Dass NodeRED abstürzt, lassen wir jetzt am besten mal außen vor. Ich habe auch sämtliche Programme in NodeRED, die zeitgesteuert sind. Diese werden beim Start immer getriggert, um im richtigen Zeitplan zu sein. Wenn jetzt meine CCU noch nicht erreichbar ist, gibt es Fehler und meine sämtlich zeitgesteuerten Programme sind nicht im richtigen Zeitplan. Daher soll eben erst die CCU online sein, bevor meine Logikebene dazukommt und alle Programme richtig triggern kann.

                                  Der gezeigte Ansatz mit dem Stoppen der Adapter und erneuten Starten ist schonmal ein guter Ansatz. Kann man denn nicht festlegen, dass bestimmte Adapter erst gar nicht gestartet werden und man diese per Skript manuell startet?

                                  P mickym 2 Replies Last reply Reply Quote 0
                                  • P
                                    peterfido @MKaiser96 last edited by

                                    @mkaiser96

                                    Quick´Dirty: Am Anfang eine Schleife drehen, welche die CCU solange anpingt, bis diese antwortet. Zwischendurch den Ping immer wieder abfragen, falls da was unterbricht.

                                    Wenn Node-Red allerdingsdabei so aus dem Ruder gerät, dass es abstürzt, hilft das nur bedingt.

                                    Sauberer ist es, Fehler / Unerwartetes sauber abzufangen.

                                    1 Reply Last reply Reply Quote 0
                                    • W
                                      Wildbill @MKaiser96 last edited by

                                      @mkaiser96 sagte in Startreihenfolge der Adapter:

                                      Eine Lösung des Problems wäre sehr hilfreich und kann sicher auch weitere Nutzer weiterhelfen.

                                      Ich würde empfehlen, anstatt an den Symptomen herumzumachen, die Ursache zu beseitigen. Hol Dir eine oder zwei kleine USV, die kurze Stromausfälle puffern und bei längeren die Systeme auch sauber runterfahren. Kosten nicht die Welt, ersparen aber viel Ärger. Wenn die Systeme runtergefahren wurden, kannst Du sie gezielt in Wunschreihenfolge wieder starten. Und die Dateisysteme werden es Dir danken, wenn sie nicht einfach hart vom Strom gehen sondern vorher einen sauberen Shutdown erleben dürfen...

                                      Gruss, Jürgen

                                      1 Reply Last reply Reply Quote 1
                                      • mickym
                                        mickym Most Active @Marc Berg last edited by mickym

                                        @marc-berg sagte in Startreihenfolge der Adapter:

                                        @mkaiser96 sagte in Startreihenfolge der Adapter:

                                        Wenn der NodeRED Adapter schneller gestartet ist als meine CCU, stürzt NodeRED ab, da es die Zentrale nicht findet.

                                        Mal abgesehen von der Diskussion um die Startreihenfolge. Was ich nicht verstehe ist, warum NodeRed abstürzt. Ich habe etliche Systeme über NodeRed angebunden, wenn zwischenzeitlich eines dieser Systeme (noch) nicht da ist, passiert einfach ein Reconnect. Einen Absturz wegen nicht verfügbarer Schnittstellen habe ich noch nie erlebt.

                                        Na das kann schon passieren, wenn man Nodes verwendet, die direkt mit der Hardware kommunizieren. Ich nutze beispielsweise direkt die Harmony Nodes - da die wesentlich performanter sind, als der entsprechende iobroker-Adapter. (Für Lautstärke ist er einfach unbrauchbar) Es gibt allerdings auch das Problem, dass wenn diese Harmony Nodes nicht richtig initialisiert sind, stürzt NodeRed ab, weil diese Node einfach einen Fehler hat - bzw. irgendetwas nicht berücksichtigt. Das liegt nicht an Node-Red an sich, sondern an den speziellen Nodes in bestimmten Konstellationen. Das ist das gleiche, wenn ein Adapter den ganzen iobroker zum Erliegen bringt.

                                        Gut was sehe ich für Möglichkeiten:

                                        1. Du stellst auf den Homematic Adapter um, dann brauchst Du diese Nodes nicht.
                                        2. Du blockierst entsprechende Flows über eine globale oder flow- Variable, die Du über eine Inject-Node steuerst - und nach dem Start des Adapters (bzw. Node-Red) in einer bestimmten Zeit frei gibst. Die Idee mit dem ping ist auch nicht schlecht - entweder über Ping Node oder Adapter.
                                        3. Du stellst sicher - dass der ganze iobroker erst nach dem CCU-Service startet. - Ist aber nicht zu empfehlen, da wohl bei jedem Update oder iobroker fix - evtl. Abhöngigkeiten wieder verloren gehen.
                                        1 Reply Last reply Reply Quote 0
                                        • mickym
                                          mickym Most Active @peterfido last edited by

                                          @peterfido sagte in Startreihenfolge der Adapter:

                                          ...
                                          Ansonsten:

                                          CCU kann iobroker selbst mit den HMxxx-Adaptern. Node-Red kann da auf die Objekte lauschen.
                                          Fehler kann man in Node-Red mit den Catch-Nodes abfangen.

                                          Ja ersten Vorschlag habe ich auch schon gemacht.
                                          Mit Catch kann man versuchen - das funktioniert aber nicht immer. 😉

                                          1 Reply Last reply Reply Quote 0
                                          • mickym
                                            mickym Most Active @MKaiser96 last edited by mickym

                                            @mkaiser96 sagte in Startreihenfolge der Adapter:

                                            Dass NodeRED abstürzt, lassen wir jetzt am besten mal außen vor. Ich habe auch sämtliche Programme in NodeRED, die zeitgesteuert sind. Diese werden beim Start immer getriggert, um im richtigen Zeitplan zu sein. Wenn jetzt meine CCU noch nicht erreichbar ist, gibt es Fehler und meine sämtlich zeitgesteuerten Programme sind nicht im richtigen Zeitplan. Daher soll eben erst die CCU online sein, bevor meine Logikebene dazukommt und alle Programme richtig triggern kann.

                                            Der gezeigte Ansatz mit dem Stoppen der Adapter und erneuten Starten ist schonmal ein guter Ansatz. Kann man denn nicht festlegen, dass bestimmte Adapter erst gar nicht gestartet werden und man diese per Skript manuell startet?

                                            Ausserdem würde ich trotzdem mal meine Logik überprüfen. Über Zeit zu triggern ist in meinen Augen immer die schlechteste Lösung.

                                            Wenn Du die CCU Nodes selbst triggern lassen würdest, dann bist Du auch sicher, dass die CCU da ist. Und wenn Du über Zeit triggerst - dann wäre das erstes über die CCU Nodes deren Verfügbarkeit triggern zu lassen und vorher über Variablen den Trigger zu blockieren.

                                            Das aber mal so ganz ALLGEMEIN gesprochen, ohne Dir jetzt zu nahe treten zu wollen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            927
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            11
                                            30
                                            1736
                                            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