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

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Automatische Übersicht aller Sonoff Geräte

Geplant Angeheftet Gesperrt Verschoben Visualisierung
vishow-to
104 Beiträge 12 Kommentatoren 10.2k Aufrufe 22 Watching
  • Ä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.
  • 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
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #102

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

      M 1 Antwort Letzte Antwort
      0
      • AphofisA Aphofis

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

        M Offline
        M Offline
        MaikDor
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #104

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

          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

          562

          Online

          32.6k

          Benutzer

          82.2k

          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