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. Visualisierung
  4. Automatische Übersicht aller Sonoff Geräte

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    408

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

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

Automatische Übersicht aller Sonoff Geräte

Scheduled Pinned Locked Moved Visualisierung
vishow-to
104 Posts 12 Posters 10.4k Views 22 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.
  • K Kuddel

    @maikdor bei mir komme ich leider nicht weiter als Version 9.5.0.

    Bisher ging das immer mit dem TasmoAdmin.

    Wie hast du deine Aktoren aktualisiert?

    AphofisA Offline
    AphofisA Offline
    Aphofis
    wrote on last edited by
    #101

    @kuddel
    Ich habe auch 7 ESP8266 im Betrieb für mein Meerwasser Aquarium und installiere erst die aktuelle minimal version und dann die aktuelle gewünschte ob deutsch oder sensoren so klappt es bei mir immer über die admin Seite mit heruntergeladenen bin dateien.

    1 Reply Last reply
    0
    • M MaikDor

      @kuddel
      So habe es nun so gemacht und es geht nun kommt kein warning mehr.
      Screenshot 2022-03-03 092314.png

      aber musste dann den type in power von "string" auf "Boolean" stellen.
      Screenshot 2022-03-03 092434.png

      AphofisA Offline
      AphofisA Offline
      Aphofis
      wrote on last edited by
      #102

      @maikdor
      Hi, kannst du dein Script mal posten !?
      Das wäre nett

      M 1 Reply Last reply
      0
      • AphofisA Aphofis

        @maikdor
        Hi, kannst du dein Script mal posten !?
        Das wäre nett

        M Offline
        M Offline
        MaikDor
        wrote on last edited by
        #103

        @aphofis Klar kein ding.
        Hier hast du das Script von Kuddel, was ich für mich angepasst habe damit es mit den Power klappt.

        // Liest den Adapter Sonoff.0 aus und erstelle neue Datenpunkte unter javascript
         
        schedule('*/10 * * * * *', function (obj) {
        //schedule('* * * * *', function (obj) {
            createState('0_userdata.0.tasmota-devices.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Devices', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
            var counter = 0;
            var status_counter = 0;
        	var offline_devices = 0;
            
            var cacheSelector = $('[id=sonoff.0.*.INFO.Info2_Hostname]');
            counter = counter+1;
            cacheSelector.each(function(id, i) {        
                var devicename = getObject(id).common.name;
                var devicename = devicename.replace("INFO ","")
                var devicename = devicename.replace(" Info2 ","")
                var devicename = devicename.replace(" Hostname","")
                var devicenameName=devicename;
              
                //Gerätetatus
                var connected = getState("sonoff.0." + devicenameName + ".alive").val;
                if(connected == true) {var status = true}
                else{var status = false}
                
                //Infos abfragen
                if(status == true ) {
                    var status = "1"
         
                    //Version
                    var version = getState("sonoff.0." + devicenameName + ".INFO" + ".Info1_Version").val;
                    if(version.indexOf("(sonoff)")){var version = version.replace("(sonoff)", "")}
                    if(version.indexOf("(tasmota)")){var version = version.replace("(tasmota)", "")}
                    // Version als INT für den Vergleich
                    var version_1 = parseInt(version)
         
                    //Uptime aus dem DP UptimeSec (ab Tasmota 7.x)
                    if(version_1 > 6) {
                        var uptime = getState("sonoff.0." + devicenameName + ".UptimeSec").val;
                        var tage = Math.floor(uptime / (24*3600));
                        var stunden = Math.floor((uptime % (24*3600))/3600);
                        var minuten = Math.floor((uptime % (3600))/60);
                        //var sekunden = Math.floor(uptime % 60);      
                        if (stunden < 10) {stunden = "0"+stunden};
                        if (minuten < 10) {minuten = "0"+minuten};				
                        if (tage == 1) {uptime = tage.toString()+" Tag, "+stunden.toString()+" Std, "+minuten.toString()+" Min ";};
                        if (tage != 1) {uptime = tage.toString()+" Tage, "+stunden.toString()+" Std, "+minuten.toString()+" Min ";}
                    }     
                    
                    //IP-Adresse
                    var ip = getState("sonoff.0." + devicenameName + ".INFO" + ".Info2_IPAddress").val;
         
                    //Typ
                    var geraet = getState("sonoff.0." + devicenameName + ".INFO" + ".Info1_Module").val;
         
                    //Powerschalter
                    var power = getState("sonoff.0." + devicenameName + ".POWER").val;
         
                    //WLAN Singna Quali
                    var wlan = getState("sonoff.0." + devicenameName + ".Wifi_RSSI").val;
                    var wlan = String(wlan);
                    var wlan = wlan + ' %';
         
                    
                }
                if(status == false){
                    var status = "0"
                    var uptime = ""
                    var version = ""
                    var ip = ""
                    var geraet = ""
                    var power = ""
                    var wlan = ""
        			offline_devices = offline_devices+1;
                }
                
                //DPs befüllen
         
                // Device-Name
                devicename="0_userdata.0.tasmota-devices.Device_"+counter.toString()+".Device-Name";
                createState(devicename, 'empty', { name: 'Device-Name', desc: '', type: 'string', role: '',read: true, write: true }); 
                setStateDelayed(devicename, devicenameName, 800);
                // Uptime
                devicename="0_userdata.0.tasmota-devices.Device_"+counter.toString()+".Uptime"; 
                createState(devicename, 'empty', { name: 'Uptime', desc: '', type: 'string', role: '',read: true, write: true });
                setStateDelayed(devicename, uptime, 800);
                // Status
                devicename="0_userdata.0.tasmota-devices.Device_"+counter.toString()+".Status";
                createState(devicename, 'empty', { name: 'Status', desc: '', type: 'string', role: '',read: true, write: true }); 
                setStateDelayed(devicename, status, 800);
                // Version
                devicename="0_userdata.0.tasmota-devices.Device_"+counter.toString()+".Version";
                createState(devicename, 'empty', { name: 'Version', desc: '', type: 'string', role: '',read: true, write: true }); 
                setStateDelayed(devicename, version, 800);
                // IP
                devicename="0_userdata.0.tasmota-devices.Device_"+counter.toString()+".IP";
                createState(devicename, 'empty', { name: 'IP', desc: '', type: 'string', role: '',read: true, write: true }); 
                setStateDelayed(devicename, ip, 800);
                // Gereatetyp
                devicename="0_userdata.0.tasmota-devices.Device_"+counter.toString()+".Geraet";
                createState(devicename, 'empty', { name: 'Geraet', desc: '', type: 'string', role: '',read: true, write: true }); 
                setStateDelayed(devicename, geraet, 800);
                //Power
                devicename="0_userdata.0.tasmota-devices.Device_"+counter.toString()+".Power";
                createState(devicename, 'empty', { name: 'Power', desc: '', type: 'boolean', role: '',read: true, write: true }); 
                setStateDelayed(devicename, power, 800);
                //WLAN Qualität
                devicename="0_userdata.0.tasmota-devices.Device_"+counter.toString()+".WLAN";
                createState(devicename, 'empty', { name: 'WLAN', desc: '', type: 'string', role: '',read: true, write: true }); 
                setStateDelayed(devicename, wlan, 800);        
            
                counter = counter+1;
                
                
         
                
        	}); 
         
            // Wegen sonoff.0.info muss vom Counter (Gesamtanzahl) 1 abgezogen werden
            counter = counter - 1
            
             //Anzahl alle Geräte
        	devicename="0_userdata.0.tasmota-devices.Anzahl";
        	createState(devicename, 'empty', { name: 'Anzahl', desc: '', type: 'number', role: '',read: true, write: true }); 
        	setStateDelayed(devicename, counter, 800);
            	
        	//Letzte aktualisierung
            var datum = new Date();
            var heute = datum.getDate()+ "." + (datum.getMonth()+ 1)+"." + datum.getFullYear()+" " +datum.getHours() +":" + datum.getMinutes() +":" + datum.getSeconds() + " Uhr" ;
            createState('0_userdata.0.tasmota-devices.Letztes_Update', 0, { name: 'Letztes_Update', desc: '', type: 'string', role: '',read: true, write: true }); 
            setStateDelayed('0_userdata.0.tasmota-devices.Letztes_Update', heute, 800);
         
        	//Alle Geräte online
        	if(status_counter == counter) {
        		devicename="0_userdata.0.tasmota-devices.Alle_Devices_verbunden";
        		createState(devicename, 'empty', { name: 'Alle_Devices_verbunden', desc: '', type: 'string', role: '',read: true, write: true }); 
        		setStateDelayed(devicename, "1", 800);
        	}
        	else{
        		devicename="0_userdata.0.tasmota-devices.Alle_Devices_verbunden";
        		createState(devicename, 'empty', { name: 'Alle_Devices_verbunden', desc: '', type: 'string', role: '',read: true, write: true }); 
        		setStateDelayed(devicename, "0", 800);
        	}
        	
        	//Anzahl offline Geräte
        	devicename="0_userdata.0.tasmota-devices.Anzahl_offline_Devices";
            createState(devicename, 'empty', { name: 'Anzahl_offline_Devices', desc: '', type: 'number', role: '',read: true, write: true }); 
            setStateDelayed(devicename, offline_devices, 800);
            
        }); 
         
        
        
        AphofisA 1 Reply Last reply
        0
        • M MaikDor

          @aphofis Klar kein ding.
          Hier hast du das Script von Kuddel, was ich für mich angepasst habe damit es mit den Power klappt.

          // Liest den Adapter Sonoff.0 aus und erstelle neue Datenpunkte unter javascript
           
          schedule('*/10 * * * * *', function (obj) {
          //schedule('* * * * *', function (obj) {
              createState('0_userdata.0.tasmota-devices.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Devices', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
              var counter = 0;
              var status_counter = 0;
          	var offline_devices = 0;
              
              var cacheSelector = $('[id=sonoff.0.*.INFO.Info2_Hostname]');
              counter = counter+1;
              cacheSelector.each(function(id, i) {        
                  var devicename = getObject(id).common.name;
                  var devicename = devicename.replace("INFO ","")
                  var devicename = devicename.replace(" Info2 ","")
                  var devicename = devicename.replace(" Hostname","")
                  var devicenameName=devicename;
                
                  //Gerätetatus
                  var connected = getState("sonoff.0." + devicenameName + ".alive").val;
                  if(connected == true) {var status = true}
                  else{var status = false}
                  
                  //Infos abfragen
                  if(status == true ) {
                      var status = "1"
           
                      //Version
                      var version = getState("sonoff.0." + devicenameName + ".INFO" + ".Info1_Version").val;
                      if(version.indexOf("(sonoff)")){var version = version.replace("(sonoff)", "")}
                      if(version.indexOf("(tasmota)")){var version = version.replace("(tasmota)", "")}
                      // Version als INT für den Vergleich
                      var version_1 = parseInt(version)
           
                      //Uptime aus dem DP UptimeSec (ab Tasmota 7.x)
                      if(version_1 > 6) {
                          var uptime = getState("sonoff.0." + devicenameName + ".UptimeSec").val;
                          var tage = Math.floor(uptime / (24*3600));
                          var stunden = Math.floor((uptime % (24*3600))/3600);
                          var minuten = Math.floor((uptime % (3600))/60);
                          //var sekunden = Math.floor(uptime % 60);      
                          if (stunden < 10) {stunden = "0"+stunden};
                          if (minuten < 10) {minuten = "0"+minuten};				
                          if (tage == 1) {uptime = tage.toString()+" Tag, "+stunden.toString()+" Std, "+minuten.toString()+" Min ";};
                          if (tage != 1) {uptime = tage.toString()+" Tage, "+stunden.toString()+" Std, "+minuten.toString()+" Min ";}
                      }     
                      
                      //IP-Adresse
                      var ip = getState("sonoff.0." + devicenameName + ".INFO" + ".Info2_IPAddress").val;
           
                      //Typ
                      var geraet = getState("sonoff.0." + devicenameName + ".INFO" + ".Info1_Module").val;
           
                      //Powerschalter
                      var power = getState("sonoff.0." + devicenameName + ".POWER").val;
           
                      //WLAN Singna Quali
                      var wlan = getState("sonoff.0." + devicenameName + ".Wifi_RSSI").val;
                      var wlan = String(wlan);
                      var wlan = wlan + ' %';
           
                      
                  }
                  if(status == false){
                      var status = "0"
                      var uptime = ""
                      var version = ""
                      var ip = ""
                      var geraet = ""
                      var power = ""
                      var wlan = ""
          			offline_devices = offline_devices+1;
                  }
                  
                  //DPs befüllen
           
                  // Device-Name
                  devicename="0_userdata.0.tasmota-devices.Device_"+counter.toString()+".Device-Name";
                  createState(devicename, 'empty', { name: 'Device-Name', desc: '', type: 'string', role: '',read: true, write: true }); 
                  setStateDelayed(devicename, devicenameName, 800);
                  // Uptime
                  devicename="0_userdata.0.tasmota-devices.Device_"+counter.toString()+".Uptime"; 
                  createState(devicename, 'empty', { name: 'Uptime', desc: '', type: 'string', role: '',read: true, write: true });
                  setStateDelayed(devicename, uptime, 800);
                  // Status
                  devicename="0_userdata.0.tasmota-devices.Device_"+counter.toString()+".Status";
                  createState(devicename, 'empty', { name: 'Status', desc: '', type: 'string', role: '',read: true, write: true }); 
                  setStateDelayed(devicename, status, 800);
                  // Version
                  devicename="0_userdata.0.tasmota-devices.Device_"+counter.toString()+".Version";
                  createState(devicename, 'empty', { name: 'Version', desc: '', type: 'string', role: '',read: true, write: true }); 
                  setStateDelayed(devicename, version, 800);
                  // IP
                  devicename="0_userdata.0.tasmota-devices.Device_"+counter.toString()+".IP";
                  createState(devicename, 'empty', { name: 'IP', desc: '', type: 'string', role: '',read: true, write: true }); 
                  setStateDelayed(devicename, ip, 800);
                  // Gereatetyp
                  devicename="0_userdata.0.tasmota-devices.Device_"+counter.toString()+".Geraet";
                  createState(devicename, 'empty', { name: 'Geraet', desc: '', type: 'string', role: '',read: true, write: true }); 
                  setStateDelayed(devicename, geraet, 800);
                  //Power
                  devicename="0_userdata.0.tasmota-devices.Device_"+counter.toString()+".Power";
                  createState(devicename, 'empty', { name: 'Power', desc: '', type: 'boolean', role: '',read: true, write: true }); 
                  setStateDelayed(devicename, power, 800);
                  //WLAN Qualität
                  devicename="0_userdata.0.tasmota-devices.Device_"+counter.toString()+".WLAN";
                  createState(devicename, 'empty', { name: 'WLAN', desc: '', type: 'string', role: '',read: true, write: true }); 
                  setStateDelayed(devicename, wlan, 800);        
              
                  counter = counter+1;
                  
                  
           
                  
          	}); 
           
              // Wegen sonoff.0.info muss vom Counter (Gesamtanzahl) 1 abgezogen werden
              counter = counter - 1
              
               //Anzahl alle Geräte
          	devicename="0_userdata.0.tasmota-devices.Anzahl";
          	createState(devicename, 'empty', { name: 'Anzahl', desc: '', type: 'number', role: '',read: true, write: true }); 
          	setStateDelayed(devicename, counter, 800);
              	
          	//Letzte aktualisierung
              var datum = new Date();
              var heute = datum.getDate()+ "." + (datum.getMonth()+ 1)+"." + datum.getFullYear()+" " +datum.getHours() +":" + datum.getMinutes() +":" + datum.getSeconds() + " Uhr" ;
              createState('0_userdata.0.tasmota-devices.Letztes_Update', 0, { name: 'Letztes_Update', desc: '', type: 'string', role: '',read: true, write: true }); 
              setStateDelayed('0_userdata.0.tasmota-devices.Letztes_Update', heute, 800);
           
          	//Alle Geräte online
          	if(status_counter == counter) {
          		devicename="0_userdata.0.tasmota-devices.Alle_Devices_verbunden";
          		createState(devicename, 'empty', { name: 'Alle_Devices_verbunden', desc: '', type: 'string', role: '',read: true, write: true }); 
          		setStateDelayed(devicename, "1", 800);
          	}
          	else{
          		devicename="0_userdata.0.tasmota-devices.Alle_Devices_verbunden";
          		createState(devicename, 'empty', { name: 'Alle_Devices_verbunden', desc: '', type: 'string', role: '',read: true, write: true }); 
          		setStateDelayed(devicename, "0", 800);
          	}
          	
          	//Anzahl offline Geräte
          	devicename="0_userdata.0.tasmota-devices.Anzahl_offline_Devices";
              createState(devicename, 'empty', { name: 'Anzahl_offline_Devices', desc: '', type: 'number', role: '',read: true, write: true }); 
              setStateDelayed(devicename, offline_devices, 800);
              
          }); 
           
          
          
          AphofisA Offline
          AphofisA Offline
          Aphofis
          wrote on last edited by
          #104

          @maikdor Danke :+1: :+1: :+1:

          1 Reply Last reply
          0
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          Support us

          ioBroker
          Community Adapters
          Donate

          524

          Online

          32.7k

          Users

          82.5k

          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