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
    509

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

  • 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.5k 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.
  • M Offline
    M Offline
    MaikDor
    wrote on last edited by
    #85

    Mahlzeit. Ich hätte eine Frage?
    Kann das sein das ab Tasmota 9.5.0 das Script die Geräte nicht mehr findet? Habe es jetzt erst gefunden und finde es klasse für mein VIS. Nur leider alle Geräte die über 9.3.1 sind werden nicht gefunden.
    Kann man das irgendwie Fixen? habe leider zu wenig ahnung in sache Javascript.

    MFG

    K 1 Reply Last reply
    0
    • M MaikDor

      Mahlzeit. Ich hätte eine Frage?
      Kann das sein das ab Tasmota 9.5.0 das Script die Geräte nicht mehr findet? Habe es jetzt erst gefunden und finde es klasse für mein VIS. Nur leider alle Geräte die über 9.3.1 sind werden nicht gefunden.
      Kann man das irgendwie Fixen? habe leider zu wenig ahnung in sache Javascript.

      MFG

      K Offline
      K Offline
      Kuddel
      wrote on last edited by
      #86

      @maikdor meine SOnoff Aktoren habe die FW Version 9.5.0

      Hier ist mein aktuelles Skript

      // 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 für alle Geräte außer Sonoff 4CH Pro R2
                  if(geraet != "Sonoff 4CH Pro"){var powerschalter = "sonoff.0." + devicenameName + ".POWER"};
                  if(geraet == "Sonoff 4CH Pro"){var powerschalter = "sonoff.0." + devicenameName + ".POWER1"};
      
                  //Power
                  if(geraet != "Sonoff 4CH Pro"){var power = getState("sonoff.0." + devicenameName + ".POWER").val};
                  if(geraet == "Sonoff 4CH Pro"){var power = getState("sonoff.0." + devicenameName + ".POWER1").val};
                  var power = String(power)
      
                  //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: 'string', 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);
          
      }); 
      
      
      M 1 Reply Last reply
      0
      • K Kuddel

        @maikdor meine SOnoff Aktoren habe die FW Version 9.5.0

        Hier ist mein aktuelles Skript

        // 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 für alle Geräte außer Sonoff 4CH Pro R2
                    if(geraet != "Sonoff 4CH Pro"){var powerschalter = "sonoff.0." + devicenameName + ".POWER"};
                    if(geraet == "Sonoff 4CH Pro"){var powerschalter = "sonoff.0." + devicenameName + ".POWER1"};
        
                    //Power
                    if(geraet != "Sonoff 4CH Pro"){var power = getState("sonoff.0." + devicenameName + ".POWER").val};
                    if(geraet == "Sonoff 4CH Pro"){var power = getState("sonoff.0." + devicenameName + ".POWER1").val};
                    var power = String(power)
        
                    //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: 'string', 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);
            
        }); 
        
        
        M Offline
        M Offline
        MaikDor
        wrote on last edited by
        #87

        @kuddel
        Super danke danke danke.
        Hat geklappt. Sogar die Firmware 10.0.0 erkennt er und finde es klasse das er nun auch die Wlan Stärke mit übernimmt.

        K 1 Reply Last reply
        0
        • M MaikDor

          @kuddel
          Super danke danke danke.
          Hat geklappt. Sogar die Firmware 10.0.0 erkennt er und finde es klasse das er nun auch die Wlan Stärke mit übernimmt.

          K Offline
          K Offline
          Kuddel
          wrote on last edited by
          #88

          @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?

          M AphofisA 2 Replies Last reply
          0
          • 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?

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

            @kuddel Ich gehe immer auf die Admin Seite von den Aktor und aktualisiere immer da über das Firmware Update. Aber nicht per Web-Server sondern über Datei hochladen, update über Web-Server klappt bei mir auch nicht immer. Ich habe auch paar Steckdosen wo ich vorher auf minimal flashen muss und dann kann ich erst die Haupt Firmware Flashen.

            PS: die Firmware 11.0.0 zeigt das Script auch an :+1:

            Aber ich bekomme nun immer warnungen im Script.

            09:17:30.009 warn javascript.0 (4105437) at script.js.Vis.Sonoff_Device:59:56
            09:17:30.009 warn javascript.0 (4105437) at Object.<anonymous> (script.js.Vis.Sonoff_Device:12:19)

            kann ich die ignorieren? Habe es 1 zu 1 kopiert von dir.

            K 1 Reply Last reply
            0
            • M MaikDor

              @kuddel Ich gehe immer auf die Admin Seite von den Aktor und aktualisiere immer da über das Firmware Update. Aber nicht per Web-Server sondern über Datei hochladen, update über Web-Server klappt bei mir auch nicht immer. Ich habe auch paar Steckdosen wo ich vorher auf minimal flashen muss und dann kann ich erst die Haupt Firmware Flashen.

              PS: die Firmware 11.0.0 zeigt das Script auch an :+1:

              Aber ich bekomme nun immer warnungen im Script.

              09:17:30.009 warn javascript.0 (4105437) at script.js.Vis.Sonoff_Device:59:56
              09:17:30.009 warn javascript.0 (4105437) at Object.<anonymous> (script.js.Vis.Sonoff_Device:12:19)

              kann ich die ignorieren? Habe es 1 zu 1 kopiert von dir.

              K Offline
              K Offline
              Kuddel
              wrote on last edited by
              #90

              @maikdor ich versuche mal einen Aktor auf Version 11 zu bekommen, damit ich das Problem nachstellen kann.

              Nochmal zum Update:

              Ich habe mit die Datei "tasmota-DE.bin.gz" von http://ota.tasmota.com/tasmota/release/ heruntergeladen und dann im Aktor als Updatedatei verwendet:

              9f7ec668-923a-4a0c-86ae-41d7ab3bcecd-grafik.png

              arteckA M 2 Replies Last reply
              0
              • K Kuddel

                @maikdor ich versuche mal einen Aktor auf Version 11 zu bekommen, damit ich das Problem nachstellen kann.

                Nochmal zum Update:

                Ich habe mit die Datei "tasmota-DE.bin.gz" von http://ota.tasmota.com/tasmota/release/ heruntergeladen und dann im Aktor als Updatedatei verwendet:

                9f7ec668-923a-4a0c-86ae-41d7ab3bcecd-grafik.png

                arteckA Offline
                arteckA Offline
                arteck
                Developer Most Active
                wrote on last edited by
                #91

                @kuddel nimm erst die mini
                dann die tasmota-DE.bin.gz

                zigbee hab ich, zwave auch, nuc's genauso und HA auch

                1 Reply Last reply
                0
                • K Kuddel

                  @maikdor ich versuche mal einen Aktor auf Version 11 zu bekommen, damit ich das Problem nachstellen kann.

                  Nochmal zum Update:

                  Ich habe mit die Datei "tasmota-DE.bin.gz" von http://ota.tasmota.com/tasmota/release/ heruntergeladen und dann im Aktor als Updatedatei verwendet:

                  9f7ec668-923a-4a0c-86ae-41d7ab3bcecd-grafik.png

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

                  @kuddel
                  Das habe ich auch ab und zu dann muss ich erst die minimal flashen. Dann die Richtige. Ich denke mal das dann für beide Firmwares der Speicher zu klein ist.
                  Wegen den Fehler habe noch einige mit 9.5.0 und 10.0.0 am laufen. Werde heute oder morgen auch mal alle auf 11 Updaten. Dann mal schauen ob ich den immer noch habe.

                  K 1 Reply Last reply
                  0
                  • M MaikDor

                    @kuddel
                    Das habe ich auch ab und zu dann muss ich erst die minimal flashen. Dann die Richtige. Ich denke mal das dann für beide Firmwares der Speicher zu klein ist.
                    Wegen den Fehler habe noch einige mit 9.5.0 und 10.0.0 am laufen. Werde heute oder morgen auch mal alle auf 11 Updaten. Dann mal schauen ob ich den immer noch habe.

                    K Offline
                    K Offline
                    Kuddel
                    wrote on last edited by
                    #93

                    @maikdor

                    3e16e638-0ad8-42a8-b105-2a358114555b-grafik.png

                    Mit FW 11.0.0 habe ich keine Fehler im Log

                    @arteck vielen Dank für den Hinweis

                    M 2 Replies Last reply
                    0
                    • K Kuddel

                      @maikdor

                      3e16e638-0ad8-42a8-b105-2a358114555b-grafik.png

                      Mit FW 11.0.0 habe ich keine Fehler im Log

                      @arteck vielen Dank für den Hinweis

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

                      @kuddel ok werde heute oder morgen alle mal auf 11 Updaten dann mal schauen. Werde berichten dann

                      1 Reply Last reply
                      0
                      • K Kuddel

                        @maikdor

                        3e16e638-0ad8-42a8-b105-2a358114555b-grafik.png

                        Mit FW 11.0.0 habe ich keine Fehler im Log

                        @arteck vielen Dank für den Hinweis

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

                        @kuddel ich glaube den Fehler habe ich gefunden im Script bei mir mit der Warnung

                        //Powerschalter für alle Geräte außer Sonoff 4CH Pro R2
                        if(geraet != "Sonoff 4CH Pro"){var powerschalter = "sonoff.0." + devicenameName + ".POWER"};
                        if(geraet == "Sonoff 4CH Pro"){var powerschalter = "sonoff.0." + devicenameName + ".POWER1"};

                        So ein Sonoff 4CH Pro habe ich nicht. Und in der Zeile kommt auch meine Warnung. Kann ich die dann einfach löschen?

                        Habe nun alle aktive auf 11 gebracht und der Fehler ist immer noch bei mir

                        K 1 Reply Last reply
                        0
                        • M MaikDor

                          @kuddel ich glaube den Fehler habe ich gefunden im Script bei mir mit der Warnung

                          //Powerschalter für alle Geräte außer Sonoff 4CH Pro R2
                          if(geraet != "Sonoff 4CH Pro"){var powerschalter = "sonoff.0." + devicenameName + ".POWER"};
                          if(geraet == "Sonoff 4CH Pro"){var powerschalter = "sonoff.0." + devicenameName + ".POWER1"};

                          So ein Sonoff 4CH Pro habe ich nicht. Und in der Zeile kommt auch meine Warnung. Kann ich die dann einfach löschen?

                          Habe nun alle aktive auf 11 gebracht und der Fehler ist immer noch bei mir

                          K Offline
                          K Offline
                          Kuddel
                          wrote on last edited by
                          #96

                          @maikdor kannst du zum Test ja einfach mal rausnehmen

                          M 1 Reply Last reply
                          0
                          • K Kuddel

                            @maikdor kannst du zum Test ja einfach mal rausnehmen

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

                            @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

                            K AphofisA 2 Replies 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

                              K Offline
                              K Offline
                              Kuddel
                              wrote on last edited by
                              #98

                              @maikdor ja stimmt.

                              so wie ich das sehe, habe ich alle DPs als Strings definiert.

                              Wenn der Aktor nicht verbunden ist, kann ich die Strings so besser leeren mit dem Inhalt ""

                              M 2 Replies Last reply
                              0
                              • K Kuddel

                                @maikdor ja stimmt.

                                so wie ich das sehe, habe ich alle DPs als Strings definiert.

                                Wenn der Aktor nicht verbunden ist, kann ich die Strings so besser leeren mit dem Inhalt ""

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

                                @kuddel Ok wieder was gelernt. Bin noch Anfänger und versuche es immer wieder mit C&P zu lernen wie was wo geht :grin: und Fummel mich dann ein zurecht. Wie jetzt zb

                                1 Reply Last reply
                                0
                                • K Kuddel

                                  @maikdor ja stimmt.

                                  so wie ich das sehe, habe ich alle DPs als Strings definiert.

                                  Wenn der Aktor nicht verbunden ist, kann ich die Strings so besser leeren mit dem Inhalt ""

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

                                  @kuddel So schaut es nun bei mir aus. wegen C&P :grin: habe ich auch einiges von dein zweiten VIS geklaut. Ich finde das sieht mega aus dein VIS

                                  Bild_2022-03-03_101223.png

                                  1 Reply Last reply
                                  0
                                  • 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

                                          349

                                          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