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

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Gelöst] Wird das Script bei Neustart ausgeführt ?

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    15
    1
    463

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

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

[Gelöst] Wird das Script bei Neustart ausgeführt ?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
14 Beiträge 4 Kommentatoren 1.7k 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.
  • T Offline
    T Offline
    TOBO
    schrieb am zuletzt editiert von
    #3

    Mag sein das ea falsch ist, aber es funktioniert schon seit Wochen so einwandfrei.

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #4

      Stimmt, aufgrund der impliziten Typwandlung ("0" –> false) bei Javascript.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • T Offline
        T Offline
        TOBO
        schrieb am zuletzt editiert von
        #5

        Was könnte es dann sein, dass die LED nicht beim hochfahren gesetzt wurde?

        Wenn dies auf jeden Fall ausgeführt wird. Der Erste Teil muss nicht unbedint ausgeführt werden, das es keine Statusänderung gab. Aber diese muss dich dann unbedingt ausgeführt werden.#

        // Script start
        setState(idOpen, getState(idSrc).val);
        setState(idClosed, !getState(idSrc).val);
        
        

        Könnte es sein, dass die Homematic vielleicht noch nicht gebootet war und der Status von "idSrc" demzufolge nicht abgefragt werden konnte ?

        Der Raspberry mit IoBroker bootet viel schneller als die CCU.

        1 Antwort Letzte Antwort
        0
        • T Offline
          T Offline
          TOBO
          schrieb am zuletzt editiert von
          #6

          Habe das jetzt zeitmäßig getestet. Alles sauber runtergefahren.

          Dann erst die Homatic ans Netz. Gewartet bis ich auf den WebAdmin komme und der Zustand der Tür dort angezeigt wird.

          Jetzt den Raspi mit IoBroker gestartet und es tut sich nicht.

          Erst, wenn ich das Script manuell restarte geht sofort eine LED an.

          What nu ?

          1 Antwort Letzte Antwort
          0
          • paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #7

            Vielleicht ist der hm-rpc-Adapter oder der s7-Adapter noch nicht so weit ? Geht aus dem Log nichts hervor ?

            Probier es mal mit Verzögerung

            // Script start
            setTimeout(function() {
               setState(idOpen, getState(idSrc).val);
               setState(idClosed, !getState(idSrc).val);
            }, 500);
            
            

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Antwort Letzte Antwort
            0
            • T Offline
              T Offline
              TOBO
              schrieb am zuletzt editiert von
              #8

              Stimmt !!!

              Laut Log werden erst die Scripts ausgefürht und DANACH erst der S7 Adapter gestartet.

              s7.0	2017-07-04 15:15:42.953	info	starting. Version 0.2.5 in /opt/iobroker/node_modules/iobroker.s7, node: v6.10.1
              s7.0	2017-07-04 15:15:42.879	info	States connected to redis 127.0.0.1:6379
              
              entfernt
              
              javascript.0	2017-07-04 15:15:33.264	info	script.js.HM_to_S7.Status_Door_EG: registered 1 subscription and 0 schedules
              javascript.0	2017-07-04 15:15:33.258	info	Start javascript script.js.HM_to_S7.Status_Door_EG
              javascript.0	2017-07-04 15:15:33.257	info	script.js.HM_to_S7.Status_Door_EG_Panzerriegel: registered 1 subscription and 0 schedules
              javascript.0	2017-07-04 15:15:33.251	info	Start javascript script.js.HM_to_S7.Status_Door_EG_Panzerriegel
              javascript.0	2017-07-04 15:15:33.250	info	script.js.HM_to_S7.Status_Door_EG_Lock: registered 1 subscription and 0 schedules
              javascript.0	2017-07-04 15:15:33.238	info	Start javascript script.js.HM_to_S7.Status_Door_EG_Lock
              javascript.0	2017-07-04 15:15:33.236	info	script.js.HM_to_S7.Lin-Licht_prg: registered 2 subscriptions and 0 schedules
              javascript.0	2017-07-04 15:15:33.225	info	Start javascript script.js.HM_to_S7.Lin-Licht_prg
              javascript.0	2017-07-04 15:15:33.223	info	script.js.S7_to_HM.Dimmer: registered 1 subscription and 0 schedules
              javascript.0	2017-07-04 15:15:33.222	info	script.js.S7_to_HM.Dimmer: subscribe: {"pattern":{"id":"s7.0.DBs.DB1.VW0","change":"ne"},"name":"script.js.S7_to_HM.Dimme
              
              1 Antwort Letzte Antwort
              0
              • T Offline
                T Offline
                TOBO
                schrieb am zuletzt editiert von
                #9

                Eine Verzögerung hat aber leider nichts gebracht. Habe die bis auf 5 Sekunden gestellt und es tut sich nichts.

                Kann man das nicht so machen, dass die Scripte, oder das eine Script erst dann ausgeführt wird, wenn der Adapter auch bereit ist ?

                1 Antwort Letzte Antwort
                0
                • D Offline
                  D Offline
                  dwm
                  schrieb am zuletzt editiert von
                  #10

                  Hätte ich jetzt naiv so erwartet :)

                  Nach den Zeiten im Log waren da 9 Sekunden dazwischen, bis S7 gestartet war.

                  Wenn Du bei "Objekte" reinschaust und Dir die Systemobjekte anzeigst, ist da (wahrscheinlich :)) ein "system.adapter.S7.0.alive" und "system.adapter.S7.0.connected".

                  Mein Ansatz wär da glaub ich zu warten, bis die beide auf "true" stehen, und dann erst den Init-Code laufen zu lassen.

                  Im Prinzip so…

                  var timer = null;
                  var counter = 0;
                  
                  timer = setInterval(function() {
                      log ("Check S7 alive ...");
                      if (getState("system.adapter.S7.0.alive").val && getState("system.adapter.S7.0.connected").val) {
                          log ("S7 Alive, initializing");
                         setState(idOpen, getState(idSrc).val);
                         setState(idClosed, !getState(idSrc).val);
                         clearInterval(timer);      
                      } else {
                          if (counter > 120) {
                              log ("Aborting S7 init, timeout");
                              clearInterval(timer);
                          }
                      	counter++;
                      }
                  },1000);
                  
                  

                  Einfach mal so getippt, ohne zu probieren. Sollte jede Sekunde mal testen, ob der S7 Adapter schon da ist, wenn ja wird initialisiert. Wenn nein, nochmal. Durch den Counter läuft das max. 2 Minuten und bricht dann ab. Wenn der Adapter nach 2 min nicht da ist, würd ich sagen kommt der auch nimmer …

                  CU

                  Werner

                  1 Antwort Letzte Antwort
                  0
                  • DutchmanD Offline
                    DutchmanD Offline
                    Dutchman
                    Developer Most Active Administrators
                    schrieb am zuletzt editiert von
                    #11

                    Gute Lösung von werner, der eine Adapter ist schneller als der andere und mit dieser Abfrage löst du das ;)

                    –-----------------------

                    Send from mobile device

                    1 Antwort Letzte Antwort
                    0
                    • paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #12

                      Das würde ich dann aber mit on() machen:

                      function init() {
                          var x = getState(idSrc).val;
                          setState(idOpen, x);
                          setState(idClosed, !x);
                      }
                      
                      var S7alive = getState("system.adapter.S7.0.alive").val;
                      var S7connected = getState("system.adapter.S7.0.connected").val;
                      
                      if(S7alive && S7connected) init();
                      
                      on({id: "system.adapter.S7.0.alive", change: 'ne', val: true}, function() {
                          S7alive = true;
                          if(S7connected) init();
                      });
                      
                      on({id: "system.adapter.S7.0.connected", change: 'ne', val: true}, function() {
                          S7connected = true;
                          if(S7alive) init();
                      });
                      
                      

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      1 Antwort Letzte Antwort
                      0
                      • D Offline
                        D Offline
                        dwm
                        schrieb am zuletzt editiert von
                        #13

                        Ja, mit on() ist das eleganter :)

                        Schon weils auch klappt, wenn man den S7 mal anhält und wieder startet…

                        Aber: Triggert das on() auch, wenn evt. der S7 schon da wäre?

                        Keine Ahnung. Ich hab jetzt mal folgenden Code laufen lassen:

                        on ({id: "system.adapter.ping.0.alive"/*node-red.0.alive*/, val:true}, function (dp) {
                            log("Ping lebt!");
                        });
                        
                        

                        Also mit ping Adapter probiert, ich hab kein S7. Und: Das alive kommt alle 5 Sekunden. 8) Hm. Aber nicht beim Start des Programms. Hm…

                        Evtl noch ein change:"ne" in das on() rein, würd ich vorschlagen ... und evt einfach init() naiv beim Starten aufrufen :)

                        1 Antwort Letzte Antwort
                        0
                        • paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von
                          #14

                          @dwm:

                          Aber: Triggert das on() auch, wenn evt. der S7 schon da wäre? `
                          Habe das Skript ergänzt.
                          @dwm:

                          Das alive kommt alle 5 Sekunden…Evtl noch ein change:"ne" in das on() rein `
                          Ja, ist ebenfalls ergänzt.

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          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

                          761

                          Online

                          32.5k

                          Benutzer

                          81.6k

                          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