Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Automatische Übersicht aller Sonoff Geräte

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Automatische Übersicht aller Sonoff Geräte

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      MaikDor @Kuddel last edited by 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 1 Reply Last reply Reply Quote 0
      • K
        Kuddel @MaikDor last edited by

        @maikdor kannst du zum Test ja einfach mal rausnehmen

        M 1 Reply Last reply Reply Quote 0
        • M
          MaikDor @Kuddel last edited by

          @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 Aphofis 2 Replies Last reply Reply Quote 0
          • K
            Kuddel @MaikDor last edited by

            @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 Reply Quote 0
            • M
              MaikDor @Kuddel last edited by

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

              1 Reply Last reply Reply Quote 0
              • M
                MaikDor @Kuddel last edited by

                @kuddel So schaut es nun bei mir aus. wegen C&P 😁 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 Reply Quote 0
                • Aphofis
                  Aphofis @Kuddel last edited by

                  @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 Reply Quote 0
                  • Aphofis
                    Aphofis @MaikDor last edited by

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

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      MaikDor @Aphofis last edited by

                      @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);
                          
                      }); 
                       
                      
                      
                      Aphofis 1 Reply Last reply Reply Quote 0
                      • Aphofis
                        Aphofis @MaikDor last edited by

                        @maikdor Danke 👍 👍 👍

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        990
                        Online

                        31.6k
                        Users

                        79.4k
                        Topics

                        1.3m
                        Posts

                        how-to vis
                        12
                        104
                        6132
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo