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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Automatische Übersicht aller Sonoff Geräte

    This topic has been deleted. Only users with topic management privileges can see it.
    • chucky666
      chucky666 last edited by

      Hallo
      ich möchte dein Script gerne testen , aber ich lese irgendwas löscht es ?
      löscht es die Datenpunkte im sonoff adapter ? ich habe angst das gleich nichts mehr geht

      K 1 Reply Last reply Reply Quote 0
      • K
        Kuddel @chucky666 last edited by

        @chucky666 der Befehl ist noch auskometiert, das er nicht funkrioniert.

        Ziel war es, bei jedem Neustart des SKriptes, einmal alle durch das Skript erstellen DPs zu löschen um aufzuräumen.

        1 Reply Last reply Reply Quote 0
        • chucky666
          chucky666 last edited by

          ich bekomme sehr viele Warnungen

          javascript.0	2020-01-29 16:37:00.840	warn	(937) at Timer.processTimers (timers.js:223:10)
          javascript.0	2020-01-29 16:37:00.840	warn	(937) at listOnTimeout (timers.js:263:5)
          javascript.0	2020-01-29 16:37:00.840	warn	(937) at tryOnTimeout (timers.js:300:5)
          javascript.0	2020-01-29 16:37:00.839	warn	(937) at ontimeout (timers.js:438:13)
          javascript.0	2020-01-29 16:37:00.839	warn	(937) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1314:29)
          javascript.0	2020-01-29 16:37:00.839	warn	(937) at Object.setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1258:20)
          javascript.0	2020-01-29 16:37:00.839	warn	(937) Wrong type of javascript.0.Sonoff-Devices.Device_26.Uptime: "object". Please fix, while deprecated and will not work in next versions.
          javascript.0	2020-01-29 16:37:00.827	warn	(937) at Timer.processTimers (timers.js:223:10)
          javascript.0	2020-01-29 16:37:00.827	warn	(937) at listOnTimeout (timers.js:263:5)
          javascript.0	2020-01-29 16:37:00.827	warn	(937) at tryOnTimeout (timers.js:300:5)
          javascript.0	2020-01-29 16:37:00.827	warn	(937) at ontimeout (timers.js:438:13)
          javascript.0	2020-01-29 16:37:00.827	warn	(937) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1314:29)
          javascript.0	2020-01-29 16:37:00.827	warn	(937) at Object.setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1258:20)
          javascript.0	2020-01-29 16:37:00.827	warn	(937) Wrong type of javascript.0.Sonoff-Devices.Device_23.Uptime: "object". Please fix, while deprecated and will not work in next versions.
          javascript.0	2020-01-29 16:37:00.822	warn	(937) at Timer.processTimers (timers.js:223:10)
          javascript.0	2020-01-29 16:37:00.822	warn	(937) at listOnTimeout (timers.js:263:5)
          javascript.0	2020-01-29 16:37:00.822	warn	(937) at tryOnTimeout (timers.js:300:5)
          javascript.0	2020-01-29 16:37:00.822	warn	(937) at ontimeout (timers.js:438:13)
          javascript.0	2020-01-29 16:37:00.822	warn	(937) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1314:29)
          javascript.0	2020-01-29 16:37:00.822	warn	(937) at Object.setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1258:20)
          javascript.0	2020-01-29 16:37:00.821	warn	(937) Wrong type of javascript.0.Sonoff-Devices.Device_17.Uptime: "object". Please fix, while deprecated and will not 
          
          K 1 Reply Last reply Reply Quote 0
          • K
            Kuddel @chucky666 last edited by

            @chucky666 das bedeutet, dass die Uptime für das jeweilge Gerät nicht ausgelesen werden konnte und der DP nicht gefüllt werden konnte.

            Habe ich noch auf der ToDo liste, dass da ein Check reinkommt

            1 Reply Last reply Reply Quote 0
            • chucky666
              chucky666 last edited by

              ahh ok , das sind meine offline Sonoffs bestimmt

              K 1 Reply Last reply Reply Quote 0
              • K
                Kuddel @chucky666 last edited by

                @chucky666 es sind die Devices Nr 17, 23 und 26.

                Wenn die offline sind, sollte die Uptime eigentlich nicht abgefragt werden

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

                  @Kuddel said in Automatische Übersicht aller Sonoff Geräte:

                  @Bluelinux habe dein Problem beheben können (siehe Screesnhot auf Seite 1).

                  Bitte lad dir die neuste Version runter und teste mal bei dir.

                  Ich bedanke mich recht herzlich bei dir. Ich konnte es jetzt erst Testen und kann dir sagen das alles super läuft bis jetzt... vielen Dank für dein support!!!!!

                  Kann es sein, dass die Power state weg sind. Also ob an oder aus sind???

                  K 1 Reply Last reply Reply Quote 0
                  • K
                    Kuddel @Bluelinux last edited by

                    @Bluelinux ja der Powerstate ist weg.

                    den visualisiere ich direkt über das Schalter Widget

                    Bluelinux 1 Reply Last reply Reply Quote 1
                    • Bluelinux
                      Bluelinux @Kuddel last edited by

                      @Kuddel said in Automatische Übersicht aller Sonoff Geräte:

                      @Bluelinux ja der Powerstate ist weg.

                      den visualisiere ich direkt über das Schalter Widget

                      Ok... aber man kann das mit einbinden oder??? denn es könnte sich ja ein device ändern von device1 zu device 3 zum beispiel dann stimmt der zustand in der liste nicht mehr oder sehe ich das falsch???

                      ach und mein sonoff pow wird nicht erkannt kann das sein???

                      K 1 Reply Last reply Reply Quote 0
                      • K
                        Kuddel @Bluelinux last edited by

                        @Bluelinux der powerstatus wird über "Powerschalter" und das Schalter Widget korrekt und immer aktuell dargestellt.
                        Das Skirpt läuft alle 60 Sekunden. Würde ich den Powerwert abfragen, kann der Wert bis zu 60 Sekunden alt sein.

                        Da ich keinen POW habe, kann ich das nicht testen.

                        Bekommst du irgendwelche Fehler im Log?
                        Wie sehen die Datenpunkte aus ?

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

                          @Kuddel said in Automatische Übersicht aller Sonoff Geräte:

                          @Bluelinux der powerstatus wird über "Powerschalter" und das Schalter Widget korrekt und immer aktuell dargestellt.
                          Das Skirpt läuft alle 60 Sekunden. Würde ich den Powerwert abfragen, kann der Wert bis zu 60 Sekunden alt sein.

                          Da ich keinen POW habe, kann ich das nicht testen.

                          Bekommst du irgendwelche Fehler im Log?
                          Wie sehen die Datenpunkte aus ?

                          Guten Morgen, also ich habe den sonoff Pow mal die aktuelle tasmota software gegönnt und jetzt wird er Angezeigt. Leider ist jetzt genau das passiert mit dem status ob AN oder AUS was ich mir gedacht hatte... dadurch das die liste sich alphabetisch auflistet stimmt die reihenfolge nicht mehr.

                          eventuell kannst du das bei deinem nächstes skript berücksichtigen.... grüße und danke

                          K 1 Reply Last reply Reply Quote 0
                          • K
                            Kuddel @Bluelinux last edited by

                            @Bluelinux so ganz verstehe ich dein Problem nicht.

                            kannst du das irgendwie kurz mit Screenshots verdeutlichen?

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

                              @Kuddel said in Automatische Übersicht aller Sonoff Geräte:

                              @Bluelinux so ganz verstehe ich dein Problem nicht.

                              kannst du das irgendwie kurz mit Screenshots verdeutlichen?

                              das ist der Datenpunkt bei Powerschalter:


                              bild 1.JPG

                              wenn er dort true oder false anzeigen würde je nach power state der sonoff geräte wäre es perfekt!

                              K 2 Replies Last reply Reply Quote 0
                              • K
                                Kuddel @Bluelinux last edited by

                                @Bluelinux wenn man den DP beim Schalter hinterlegtmit {jabascript.0.Sonoff-Devices.Device_1.Powerschalter}, dann zeigt dein Widget den Status des Status aus dem Sonoff-Adapter an.

                                1 Reply Last reply Reply Quote 0
                                • K
                                  Kuddel @Bluelinux last edited by

                                  @Bluelinux ich glaube jetzt verstehe ich dein Problem.

                                  Mein einer Sonoff, der gerade automatisch mein Tablet läd ist aktiv (POWER = true).

                                  Das Widget im View ist allerdings aus.

                                  Keine Ahnung warum der Status nicht richtig dargestellt wird.

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

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

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

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

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

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

                                            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 Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            415
                                            Online

                                            31.9k
                                            Users

                                            80.3k
                                            Topics

                                            1.3m
                                            Posts

                                            how-to vis
                                            12
                                            104
                                            7144
                                            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