Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Neustart vom IoBroker sowie einen kompletten Reboot über die VIS mit Blockly

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    717

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    5.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

Neustart vom IoBroker sowie einen kompletten Reboot über die VIS mit Blockly

Scheduled Pinned Locked Moved Skripten / Logik
39 Posts 15 Posters 31.2k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • smartboartS Offline
    smartboartS Offline
    smartboart
    wrote on last edited by
    #10

    klar, bin auch immer froh, wenn ich hier was nützliches abgreifen kann….

    Möchte noch dazu sagen, dass ich die Vorlage für die exec Funktion zum reboot hier im Forum gefunden habe...Dies ist also nicht mein Verdienst...

    Habe es dann halt für sämtliche Funktionen geändert...

    Das Script muss nur kopiert und im Javascript Adapter entsprechend eingepflegt werden...

    Nach dem Starten des Scripts werden sämtliche für Vis nötige States unter Objekte angelegt..( javascript.o/t2c_system )

    Die Widgets holen sich die States entsprechend ab oder beschreiben diese mit true und false...

    Die exec Scripts lassen sich auch mit dem Handy ausführen...Dafür ist noch der telegram Adapter und text to command adapter nötig...

    Wie das geht ist auch hier im Forum beschrieben..Vlt. auch auf Github....einfach mal suchen...Würde den Rahmen sprengen...

    Hier der Export der widgets...

    es sind 3 pro Funktion nötig.... Lade die 3 Widgets für die iobroker reboot Funktion hoch...das kann dann entsprechend kopiert und für alle anderen angepasst werden...

    1. Vorwahl

    [{"tpl":"_tplGroup","data":{"members":["w00162","w00163"],"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"g_signals":false,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"g_css_font_text":false,"g_css_background":false,"g_css_border":false,"g_css_shadow_padding":false,"g_gestures":false,"g_objects":false,"attrCount":"1"},"style":{"top":"210px","left":"30px","width":"100px","height":"100px","z-index":"3"},"widgetSet":null},{"tpl":"tplBulbOnOffCtrl","data":{"oid":"javascript.0.t2c_System.restart_Bestaetigung","g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","icon_off":"/vis.0/restart.png","icon_on":"/icons-open-icon-library-png/actions/dialog-cancel-2.png","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"g_ccontrol":false,"readOnly":false,"name":"iobroker reboot","filterkey":"System","min":"","max":"","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false},"style":{"left":"35%","top":"35px","width":"70px","height":"70px","z-index":"3","background-color":"#383838","border-style":"outset","border-color":"#383838","border-radius":"12px","border-width":"5px"},"widgetSet":"basic","grouped":true,"groupName":"w00162"},{"tpl":"tplFrame","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"title":"reboot","title_color":"#ffffff","title_top":"5","title_left":"5","header_height":"100","header_color":"#90877a","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","name":"iobroker reboot","filterkey":"System"},"style":{"left":"0%","top":"0%","width":"100%","height":"100%","z-index":"2","background-color":"#90877a","border-color":"#90877a","border-style":"outset","border-width":"5px","border-radius":"12px","background":"#90877a"},"widgetSet":"basic","grouped":true,"groupName":"w00163"}]
    

    2. Rückfrage

    [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":true,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":"true","visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"sicher ?","visibility-oid":"javascript.0.t2c_System.restart_Bestaetigung"},"style":{"left":"34px","top":"330px","width":"102px","height":"27px","z-index":"3","text-align":"center","color":"#FFFFFF"},"widgetSet":"basic"}]
    

    3. Bestätigung für exec Funktions

    [{"tpl":"tplBulbOnOffCtrl","data":{"oid":"javascript.0.t2c_System.restart_command","g_fixed":false,"g_visibility":true,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":"true","visibility-groups-action":"hide","icon_off":"/icons-open-icon-library-png/actions/dialog-ok-4.png","icon_on":"/icons-open-icon-library-png/actions/dialog-ok-4.png","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"visibility-oid":"javascript.0.t2c_System.restart_Bestaetigung"},"style":{"left":"50px","top":"360px","width":"70px","height":"70px","z-index":"3","border-color":"#383838","border-radius":"12px","border-width":"5px","border-style":"outset","background-color":"#383838","background":"#383838"},"widgetSet":"basic"}]
    

    Hier das Script für die States und die Ecex funktionen ( javascript Adapter ) für Vis… es beinhaltet alle Funktionen welche in den Bildern oben zu sehen sind...

    // states für Asführungsbestätigung der remote reboot / shutdown scripts
    // und zum automatischem schließen des Bestätigungsbutton nach einer Zeit X
    
    createState('t2c_System.restart_Bestaetigung', '');
    on({id: 'javascript.0.t2c_System.restart_Bestaetigung', change : 'any'}, function(obj) {
      if (obj.newState.val === true || obj.newState.val === 'true'){
         setTimeout(function(){setState('javascript.0.t2c_System.restart_Bestaetigung', 'false')},2*1000);
      }
    });
    
    createState('t2c_System.stop_Bestaetigung', '');
    on({id: 'javascript.0.t2c_System.stop_Bestaetigung', change : 'any'}, function(obj) {
      if (obj.newState.val === true || obj.newState.val === 'true'){
         setTimeout(function(){setState('javascript.0.t2c_System.stop_Bestaetigung', 'false')},2*1000);
      }
    });
    
    createState('t2c_System.update_Bestaetigung', '');
    on({id: 'javascript.0.t2c_System.update_Bestaetigung', change : 'any'}, function(obj) {
      if (obj.newState.val === true || obj.newState.val === 'true'){
         setTimeout(function(){setState('javascript.0.t2c_System.update_Bestaetigung', 'false')},2*1000);
      }
    });
    
    createState('t2c_System.upgrade_Bestaetigung', '');
    on({id: 'javascript.0.t2c_System.upgrade_Bestaetigung', change : 'any'}, function(obj) {
      if (obj.newState.val === true || obj.newState.val === 'true'){
         setTimeout(function(){setState('javascript.0.t2c_System.upgrade_Bestaetigung', 'false')},2*1000);
      }
    });
    
    createState('t2c_System.upgradeSelf_Bestaetigung','');
    on({id: 'javascript.0.t2c_System.upgradeSelf_Bestaetigung', change : 'any'}, function(obj) {
      if (obj.newState.val === true || obj.newState.val === 'true'){
         setTimeout(function(){setState('javascript.0.t2c_System.upgradeSelf_Bestaetigung', 'false')},2*1000);
      }
    });
    
    createState('t2c_System.LinuxRestart_Bestaetigung', '');
    on({id: 'javascript.0.t2c_System.LinuxRestart_Bestaetigung', change : 'any'}, function(obj) {
      if (obj.newState.val === true || obj.newState.val === 'true'){
         setTimeout(function(){setState('javascript.0.t2c_System.LinuxRestart_Bestaetigung', 'false')},2*1000);
      }
    });
    
    createState('t2c_System.LinuxShutdown_Bestaetigung','');
    on({id: 'javascript.0.t2c_System.LinuxShutdown_Bestaetigung', change : 'any'}, function(obj) {
      if (obj.newState.val === true || obj.newState.val === 'true'){
         setTimeout(function(){setState('javascript.0.t2c_System.LinuxShutdown_Bestaetigung', 'false')},2*1000);
      }
    });
    
    // Scripte zum Ausführen der exec Funktionen
    
    createState('t2c_System.restart_command', '');
    on({id: 'javascript.0.t2c_System.restart_command', change: 'any'}, function (obj) {
      if (obj.newState.val === true || obj.newState.val === 'true'){
          log('Command reboot');
          setState('javascript.0.t2c_System.restart_command', 'false');
          exec ('iobroker restart');
      }
    });
    
    createState('t2c_System.stop_command', '');
    on({id: 'javascript.0.t2c_System.stop_command', change: 'any'}, function (obj) {
      if (obj.newState.val === true || obj.newState.val === 'true'){
          log('Command stop');
          setState('javascript.0.t2c_System.stop_command', 'false');
          exec ('iobroker stop');
      }
    });
    
    createState('t2c_System.update_command', '');
    on({id: 'javascript.0.t2c_System.update_command', change: 'any'}, function (obj) {
      if (obj.newState.val === true || obj.newState.val === 'true'){
          log('Command stop');
          setState('javascript.0.t2c_System.update_command', 'false');
          exec ('iobroker update');
      }
    });
    
    createState('t2c_System.upgrade_command', '');
    on({id: 'javascript.0.t2c_System.upgrade_command', change: 'any'}, function (obj) {
      if (obj.newState.val === true || obj.newState.val === 'true'){
          log('Command stop');
          setState('javascript.0.t2c_System.upgrade_command', 'false');
          exec ('iobroker upgrade');
      }
    });
    
    createState('t2c_System.upgradeSelf_command', '');
    on({id: 'javascript.0.t2c_System.upgradeSelf_command', change: 'any'}, function (obj) {
      if (obj.newState.val === true || obj.newState.val === 'true'){
          log('Command stop');
          setState('javascript.0.t2c_System.upgradeSelf_command', 'false');
          exec ('iobroker upgrade self');
      }
    });
    
    createState('t2c_System.LinuxShutdown_command', '');
    on({id: 'javascript.0.t2c_System.LinuxShutdown_command', change: 'any'}, function (obj) {
      if (obj.newState.val === true || obj.newState.val === 'true'){
          log('Command stop');
          setState('javascript.0.t2c_System.LinuxShutdown_command', 'false');
          exec ('sudo shutdown -h 0');
      }
    });
    
    createState('t2c_System.LinuxRestart_command', '');
    on({id: 'javascript.0.t2c_System.LinuxRestart_command', change: 'any'}, function (obj) {
      if (obj.newState.val === true || obj.newState.val === 'true'){
          log('Command stop');
          setState('javascript.0.t2c_System.LinuxRestart_command', 'false');
          exec ('reboot');
      }
    });
    
    1 Reply Last reply
    0
    • ChaotC Offline
      ChaotC Offline
      Chaot
      wrote on last edited by
      #11

      Ich möchte mich auch ganz herzlich bedanken.

      Noch eine Frage:

      Die Bilder am Schalter unten liegen im Ordner Vis.o und werden nicht im Export eingefügt. Hast du für die auch eine Quelle

      ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

      1 Reply Last reply
      0
      • smartboartS Offline
        smartboartS Offline
        smartboart
        wrote on last edited by
        #12

        Ach ja, stimmt habe ich ganz vergessen.

        Die Icons habe ich teilweise auch importiert, bzw. online nach passenden icons gesucht….Wenn ich zu Hause bin kann ich dise noch hochladen...

        1 Reply Last reply
        0
        • B Offline
          B Offline
          Berchemer
          wrote on last edited by
          #13

          Danke für die Bereitstellung :-)

          Werde es am WE mal ausprobieren :mrgreen:

          1 Reply Last reply
          0
          • DutchmanD Offline
            DutchmanD Offline
            Dutchman
            Developer Most Active Administrators
            wrote on last edited by
            #14

            @Berchemer:

            Danke für die Bereitstellung :-)

            Werde es am WE mal ausprobieren :mrgreen: `

            Schliesse ich mich an danke auch meinerseits [emoji6]

            Sent from my iPhone using Tapatalk

            1 Reply Last reply
            0
            • smartboartS Offline
              smartboartS Offline
              smartboart
              wrote on last edited by
              #15

              Gern geschehen.

              6558_restart.png So hier noch der fehlende Icon…einfach in vis.0 importieren, oder einfach ein anderes Bild dort ablegen und so benennen... die restlichen beiden Icons sind aus der /icons-open-icon-library-png/actions/

              habe noch ein video angehängt zum Vergleich ... 6558_cut3.gif

              1 Reply Last reply
              0
              • A Offline
                A Offline
                aleks-83
                wrote on last edited by
                #16

                Vielen Dank dass du deine Skripte mit uns teilst, smartboart.

                Ich habe versucht deine Buttons in meinem Vis nachzubauen.

                Hierzu habe ich deine Skripte und Widgets importiert und gestartet.

                Wenn ich nun meinen View öffne, sehe ich sofort einen braunen Kasten in dem steht "reboot",

                darunter steht "sicher?"

                darunter ein weiterer brauner Kasten.

                Klicke ich auf einen der Kästen, verschwindet "sicher?" und der untere Kasten.

                klicke ich noch mal, erscheint das gelbe reboot logo, welches vorher nicht zu sehen war.

                Der Pi rebootet aber nicht, und das Verhalten der Buttons ist offenbar nicht ok.

                Was mache ich falsch?

                = Dell Optiplex Micro - 10GB RAM - 200GB SSD - Debian VM =
                = Node.js v20.19.6 = NPM 10.8.2 = JS Controller 7.0.7 =

                Ubiquiti UAP-AC-LR - UAP-AC-Lite - Synology DS716+II - Fritz!Box 7490
                Glasfaser 400

                1 Reply Last reply
                0
                • G Offline
                  G Offline
                  GeosShark
                  wrote on last edited by
                  #17

                  Die Buttons funzen nicht richtig, da die Datenpunkte nicht komplett erzeugt werden.

                  Besser wäre folgende Erstellung:

                  // states für Asführungsbestätigung der remote reboot / shutdown scripts
                  // und zum automatischem schließen des Bestätigungsbutton nach einer Zeit X (timout)
                  
                  // -----------------------------------------------
                  // Vorbereitung 
                  // -----------------------------------------------
                  
                  var timout = 2*1000;
                  
                  var forceCreation   = true;
                  
                  var pfad = 't2c_System.';
                  
                  var datenpunkte = {
                     'restart_Bestaetigung':        {"init": false, "common": {type: 'boolean',  name: 'Bestätigung für Reboot',                        unit: ''}},
                     'stop_Bestaetigung':           {"init": false, "common": {type: 'boolean',  name: 'Bestätigung für Shutdown',                      unit: ''}},
                     'update_Bestaetigung':         {"init": false, "common": {type: 'boolean',  name: 'Bestätigung für Update',                        unit: ''}},
                     'upgrade_Bestaetigung':        {"init": false, "common": {type: 'boolean',  name: 'Bestätigung für Upgrade',                       unit: ''}},
                     'upgradeSelf_Bestaetigung':    {"init": false, "common": {type: 'boolean',  name: 'Bestätigung für UpgradeSelf',                   unit: ''}},
                     'LinuxRestart_Bestaetigung':   {"init": false, "common": {type: 'boolean',  name: 'Bestätigung für Linux-Restart',                 unit: ''}},
                     'LinuxShutdown_Bestaetigung':  {"init": false, "common": {type: 'boolean',  name: 'Bestätigung für Linux-Shutdown',                unit: ''}},
                  
                     'restart_command':             {"init": false, "common": {type: 'boolean',  name: 'Ausführung des "iobroker restart" Kommandos',   unit: ''}},
                     'stop_command':                {"init": false, "common": {type: 'boolean',  name: 'Ausführung "iobroker stop" Kommandos',          unit: ''}},
                     'update_command':              {"init": false, "common": {type: 'boolean',  name: 'Ausführung "iobroker update" Kommandos',        unit: ''}},
                     'upgrade_command':             {"init": false, "common": {type: 'boolean',  name: 'Ausführung "iobroker upgrade" Kommandos',       unit: ''}},
                     'upgradeSelf_command':         {"init": false, "common": {type: 'boolean',  name: 'Ausführung "iobroker upgrade self" Kommandost', unit: ''}},
                     'LinuxShutdown_command':       {"init": false, "common": {type: 'boolean',  name: 'Ausführung "shutdown -h now" Kommandos',        unit: ''}},
                     'LinuxRestart_command':        {"init": false, "common": {type: 'boolean',  name: 'Ausführung "reboot" Kommandos',                 unit: ''}}
                     };       
                  
                  //=========================================================================
                  // Trigger 
                  //=========================================================================
                  
                  on({id: 'javascript.0.t2c_System.restart_Bestaetigung', change : 'any'}, function(obj) {
                    if (obj.newState.val === true || obj.newState.val === 'true'){
                       setTimeout(function(){setState('javascript.0.t2c_System.restart_Bestaetigung', false)},timout);
                    }
                  });
                  
                  on({id: 'javascript.0.t2c_System.stop_Bestaetigung', change : 'any'}, function(obj) {
                    if (obj.newState.val === true || obj.newState.val === 'true'){
                       setTimeout(function(){setState('javascript.0.t2c_System.stop_Bestaetigung', false)},timout);
                    }
                  });
                  
                  on({id: 'javascript.0.t2c_System.update_Bestaetigung', change : 'any'}, function(obj) {
                    if (obj.newState.val === true || obj.newState.val === 'true'){
                       setTimeout(function(){setState('javascript.0.t2c_System.update_Bestaetigung', false)},timout);
                    }
                  });
                  
                  on({id: 'javascript.0.t2c_System.upgrade_Bestaetigung', change : 'any'}, function(obj) {
                    if (obj.newState.val === true || obj.newState.val === 'true'){
                       setTimeout(function(){setState('javascript.0.t2c_System.upgrade_Bestaetigung', false)},timout);
                    }
                  });
                  on({id: 'javascript.0.t2c_System.upgradeSelf_Bestaetigung', change : 'any'}, function(obj) {
                    if (obj.newState.val === true || obj.newState.val === 'true'){
                       setTimeout(function(){setState('javascript.0.t2c_System.upgradeSelf_Bestaetigung', false)},timout);
                    }
                  });
                  
                  on({id: 'javascript.0.t2c_System.LinuxRestart_Bestaetigung', change : 'any'}, function(obj) {
                    if (obj.newState.val === true || obj.newState.val === 'true'){
                       setTimeout(function(){setState('javascript.0.t2c_System.LinuxRestart_Bestaetigung', false)},timout);
                    }
                  });
                  
                  on({id: 'javascript.0.t2c_System.LinuxShutdown_Bestaetigung', change : 'any'}, function(obj) {
                    if (obj.newState.val === true || obj.newState.val === 'true'){
                       setTimeout(function(){setState('javascript.0.t2c_System.LinuxShutdown_Bestaetigung', false)},timout);
                    }
                  });
                  
                  // -----------------------------------------------
                  // Scripte zum Ausführen der exec Funktionen
                  // -----------------------------------------------
                  
                  // iobroker restart
                  on({id: 'javascript.0.t2c_System.restart_command', change: 'any'}, function (obj) {
                    if (obj.newState.val === true || obj.newState.val === 'true'){
                        log('vis: iobroker restart');
                        setState('javascript.0.t2c_System.restart_command', false);
                        exec ('iobroker restart');
                    }
                  });
                  
                  // iobroker stop
                  createState('t2c_System.stop_command', '');
                  on({id: 'javascript.0.t2c_System.stop_command', change: 'any'}, function (obj) {
                    if (obj.newState.val === true || obj.newState.val === 'true'){
                        log('vis: iobroker stop');
                        setState('javascript.0.t2c_System.stop_command', false);
                        exec ('iobroker stop');
                    }
                  });
                  
                  // iobroker update
                  createState('t2c_System.update_command', '');
                  on({id: 'javascript.0.t2c_System.update_command', change: 'any'}, function (obj) {
                    if (obj.newState.val === true || obj.newState.val === 'true'){
                        log('vis: iobroker update');
                        setState('javascript.0.t2c_System.update_command', false);
                        exec ('iobroker update');
                    }
                  });
                  
                  // iobroker upgrade
                  createState('t2c_System.upgrade_command', '');
                  on({id: 'javascript.0.t2c_System.upgrade_command', change: 'any'}, function (obj) {
                    if (obj.newState.val === true || obj.newState.val === 'true'){
                        log('vis: iobroker upgrade');
                        setState('javascript.0.t2c_System.upgrade_command', false);
                        exec ('iobroker upgrade');
                    }
                  });
                  
                  // iobroker upgrade self
                  createState('t2c_System.upgradeSelf_command', '');
                  on({id: 'javascript.0.t2c_System.upgradeSelf_command', change: 'any'}, function (obj) {
                    if (obj.newState.val === true || obj.newState.val === 'true'){
                        log('vis: iobroker upgrade self');
                        setState('javascript.0.t2c_System.upgradeSelf_command', false);
                        exec ('iobroker upgrade self');
                    }
                  });
                  
                  // Linux shutdown
                  createState('t2c_System.LinuxShutdown_command', '');
                  on({id: 'javascript.0.t2c_System.LinuxShutdown_command', change: 'any'}, function (obj) {
                    if (obj.newState.val === true || obj.newState.val === 'true'){
                        log('vis: Linux shutdown');
                        setState('javascript.0.t2c_System.LinuxShutdown_command', false);
                        exec ('sudo shutdown -h 0');
                    }
                  });
                  
                  // Linux Reboot
                  createState('t2c_System.LinuxRestart_command', '');
                  on({id: 'javascript.0.t2c_System.LinuxRestart_command', change: 'any'}, function (obj) {
                    if (obj.newState.val === true || obj.newState.val === 'true'){
                        log('vis: Linux Reboot');
                        setState('javascript.0.t2c_System.LinuxRestart_command', false);
                        exec ('reboot');
                    }
                  });   
                  
                  // -----------------------------------------------------------------------------------------------------------------------------------------
                  // Erzeuge Datenpunkte
                  // -----------------------------------------------------------------------------------------------------------------------------------------
                  function createDp() 
                  {
                  	var name;
                  	var init;
                  	var common;
                  
                  	for (var dp in datenpunkte) 
                  	{
                  		name = pfad + dp;
                  		init = datenpunkte[dp].init;
                  		common = datenpunkte[dp].common;
                  		createState(name, init , forceCreation, common);
                  	}
                  }
                  
                  // -----------------------------------------------
                  // Start Skript:
                  // Initialisierung
                  // -----------------------------------------------
                  createDp();
                  
                  

                  Habe es noch etwas "gebeautyfied"

                  Gruß

                  Frank


                  CCU2, Raspberry3+

                  1 Reply Last reply
                  1
                  • A Offline
                    A Offline
                    aleks-83
                    wrote on last edited by
                    #18

                    OK, Danke.

                    also die Datenpunkte und das Script von smartboart löschen und deins erstellen und starten!?

                    = Dell Optiplex Micro - 10GB RAM - 200GB SSD - Debian VM =
                    = Node.js v20.19.6 = NPM 10.8.2 = JS Controller 7.0.7 =

                    Ubiquiti UAP-AC-LR - UAP-AC-Lite - Synology DS716+II - Fritz!Box 7490
                    Glasfaser 400

                    1 Reply Last reply
                    0
                    • G Offline
                      G Offline
                      GeosShark
                      wrote on last edited by
                      #19

                      hallo Aleks,

                      Am Anfang meines Scripts steht````
                      var forceCreation = true;

                      
                      Solange diese Varialble auf "true" steht, werden die Datenpunkte zwangsweise erstellt, also auch wenn sie schon existieren.
                      
                      Ansonsten fehlte die initialisierung der Datenpunkte auf "false".
                      
                      Gruß
                      
                      Frank

                      Gruß

                      Frank


                      CCU2, Raspberry3+

                      1 Reply Last reply
                      0
                      • smartboartS Offline
                        smartboartS Offline
                        smartboart
                        wrote on last edited by
                        #20

                        Hallo,

                        das Script funktioniert auch in der ursprünglichen Version. Ich hatte nur beim create Sate im script den ersten Status nach der Erstellung nicht definiert.

                        die log zeilen hatten copy und paste Fehler, welche die LogAusgabe betrafen.

                        Nach dem Starten des Scripts werden die States angelegt.

                        Dann das script wieder stoppen und neu starten.

                        Mir ist das Problem nicht aufgefallen, da ich das Script parallel zu meiner Vis angepasst habe.

                        Dabei hatte ich eh mehrmals die buttons betätigt, wobei dann die States ja einen definierten Zustand bekommen. Das hätte schon geholfen..

                        GeoShark hat das script nochmal aufgeräumt.

                        Finde ich gut, das es weiter eintwickelt wird..

                        Der Gedanke ist folgender, wegen der Frage mit den Buttons…

                        Der obere Button gibt die Funktion frei. Es öffnet sich die Sicherheitsabfrage Sicher? und der unter Button für die Exec Funktion.

                        Mit Betätigung des grünen Haken im unten geöffneten Button wird die exec ausgeführt. Wenn du 2 Sekunden zögerst weil nicht sicher, geht der unter button wieder zu. ebenfalls beim erneuten Betätigen des oberen Button mit dem X geht die Sicher Abfrage und der untere Button wieder weg... Wie im Video oben gezeigt...

                        Im Javascript Adapter muss die exec Funktion freigegeen werden, damit die exec Funktionen auch durchkommen...Du hattest ja geschrieben, das die Funktion nicht klappte...

                        1 Reply Last reply
                        0
                        • A Offline
                          A Offline
                          aleks-83
                          wrote on last edited by
                          #21

                          Ah OK. Super. jetzt hab ichs…

                          Ich frage mich aber noch wie ich mehrere deiner "buttons" einfügen kann.

                          Denn ich habe jetzt einen Button für Reboot angelegt. der Funktioniert.

                          Dann habe ich per Widget importieren alle deine 3 Codes erneut eingefügt und den zweiten button auf einen anderen Datenpunkt geelgt (Update)

                          Wenn ich jetzt aber auf den button Reboot klicke, öffnet unter dem Button für Update ebenfalls die Abfrage "sicher?" und das Häkchen "klappt aus".

                          Zusatzfrage:

                          Wie kann ich ein"busy" Logo anzeigen, solange das Update/upgrade läuft?

                          = Dell Optiplex Micro - 10GB RAM - 200GB SSD - Debian VM =
                          = Node.js v20.19.6 = NPM 10.8.2 = JS Controller 7.0.7 =

                          Ubiquiti UAP-AC-LR - UAP-AC-Lite - Synology DS716+II - Fritz!Box 7490
                          Glasfaser 400

                          1 Reply Last reply
                          0
                          • smartboartS Offline
                            smartboartS Offline
                            smartboart
                            wrote on last edited by
                            #22

                            Ich hatte jeweils nur für die reboot funktion alles zur verfügung gestellt.

                            Du musst jetzt eigentlich nur noch im Vis Editor die widgets für jede Funktion einmal kopieren und dann entsprehend konfigurieren.

                            Dazu musst du nur immer die State id für jeden button anpassen.

                            Die Bilder kannst du auch nach lust und laune anpassen…

                            Siehe Bild unten...das musst du für jeden buton ändern.... Die oberen button habe ich aus 2 Widgets zusammen gefügt, um diese anzupassen musst du sie doppelt anklicken und dann kannst du sie auch anpassen... 6558_unbenannt.png 6558_unbenannt.png

                            1 Reply Last reply
                            0
                            • A Offline
                              A Offline
                              aleks-83
                              wrote on last edited by
                              #23

                              Nochmal vielen Dank für die schnelle Hilfe!

                              Ich hatte vergessen unter Allgemein den Datenpunkt anzupassen. :lol:

                              = Dell Optiplex Micro - 10GB RAM - 200GB SSD - Debian VM =
                              = Node.js v20.19.6 = NPM 10.8.2 = JS Controller 7.0.7 =

                              Ubiquiti UAP-AC-LR - UAP-AC-Lite - Synology DS716+II - Fritz!Box 7490
                              Glasfaser 400

                              1 Reply Last reply
                              0
                              • A Offline
                                A Offline
                                aleks-83
                                wrote on last edited by
                                #24

                                Wie sieht es denn mit dem upgrade self vom js.controller aus?

                                hierfür braucht man ja eigentlich mehrere Befehle nacheinander.

                                Kann ich die auch auf einen button legen?

                                Eigentlich müsste der nachfolgende Befehl ja erst warten bis der vorherige zu ende ausgeführt wurde!?

                                sudo iobroker stop
                                sudo iobroker update
                                sudo iobroker upgrade self
                                sudo iobroker start
                                

                                Und, kann man während das update läuft, ein "busy logo" sprich Sanduhr anzeigen?

                                = Dell Optiplex Micro - 10GB RAM - 200GB SSD - Debian VM =
                                = Node.js v20.19.6 = NPM 10.8.2 = JS Controller 7.0.7 =

                                Ubiquiti UAP-AC-LR - UAP-AC-Lite - Synology DS716+II - Fritz!Box 7490
                                Glasfaser 400

                                1 Reply Last reply
                                0
                                • smartboartS Offline
                                  smartboartS Offline
                                  smartboart
                                  wrote on last edited by
                                  #25

                                  Den upgrade self habe ich aus diesem Grund bei mir nicht mehr visualisiert siehe meine letzten bilder.. bild oben und führe das update aus dem grund für den js-controller weiterhin über die konsole aus… mit iobroker stop werden die adapter beendet auch der javascript adapter...

                                  Ein Update des Js Controller kommt auch nicht so oft vor...

                                  Habe es auch noch nicht ausprobiert ob es klappt... Wer es ausprobiert hat, möge seine Erfahrung dazu mitteilen...

                                  Eine busy Anzeige habe ich bei mir mehr oder weniger mit dem info button realisiert zumindest für das update/ upgrade....hab den info button welcher verfügbare updates anzeigt und wenn kein update mehr verfügbar weil durchgeführt wieder verschwindet.und ein script welches ein telegramm schickt bei Verfügbarkeit und wenn update durchgeführt.

                                  Dafür gibt es ein objekt von admin.0 updateslist mit dessen infos du dir zumindest die verfügbaren updates anzeigen lassen kannst...wenn ein update verfügbar, kann dies mit dem update button abgefragt werden..passiert aber auch automatisch einmal am tag...

                                  Für alle anderen wie reboot, stop usw. hast du ja vis...welches dann mit dem rad keine verbindung meldet...

                                  Gesendet von meinem SM-G800F mit Tapatalk

                                  1 Reply Last reply
                                  0
                                  • P Offline
                                    P Offline
                                    plazmatic07
                                    wrote on last edited by
                                    #26

                                    Hi Zusammen,

                                    hat jemand vielleicht eine Idee, wie ich das in einer Multihost Umgebung löse?

                                    Die Kommands werden natürlich nur auf dem Host ausgeführt, auf dem die Instanz gerade läuft

                                    Grüße und Danke

                                    1 Reply Last reply
                                    0
                                    • smartboartS Offline
                                      smartboartS Offline
                                      smartboart
                                      wrote on last edited by
                                      #27

                                      Ja einfach das script nochmal auf dem 2. host laufen lassen also ne 2. Javascript Instanz auf dem 2. Host installieren und dort das script nochmal mit angepassten states…im idealfall einfach die 0 gegen die 1 tauschen...und in vis auch nochmal alles kopieren und dort auch die 0 mit der 1 anpassen... ( instanz nummer vom javascriptadapter) geht am schnellsten...

                                      Läuft bei mir auch so..

                                      Gesendet von meinem SM-G800F mit Tapatalk

                                      1 Reply Last reply
                                      0
                                      • F Offline
                                        F Offline
                                        fraeggle
                                        wrote on last edited by
                                        #28

                                        Ähmm musste gerade feststellen das das nicht mehr geht werde shutdown noch reboot.

                                        nachdem ich den iobroker geupdatet habe.

                                        Hat jmd das gleiche Problem?

                                        javascript.0 2019-01-18 17:27:12.888 silly inMem message * javascript.0.t2c_System.LinuxRestart_Bestaetigung

                                        javascript.0 2019-01-18 17:27:12.655 silly inMem message * javascript.0.t2c_System.LinuxRestart_command

                                        javascript.0 2019-01-18 17:27:12.654 info script.js.Dienste_System.Neustart: Command stop

                                        aber machen tut er nichts.

                                        Achso ja im Javascript ist auführen von Exec aktiv.

                                        1 Reply Last reply
                                        0
                                        • G Offline
                                          G Offline
                                          Gunster
                                          wrote on last edited by
                                          #29

                                          Ich habe das gleiche Problem, auch ein sudo reboot funktioniert bei mir nicht.

                                          1 Reply Last reply
                                          0

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          400

                                          Online

                                          32.7k

                                          Users

                                          82.6k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe