Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. MaikDor

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    M
    • Profile
    • Following 0
    • Followers 0
    • Topics 0
    • Posts 10
    • Best 0
    • Groups 1

    MaikDor

    @MaikDor

    Starter

    0
    Reputation
    5
    Profile views
    10
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    MaikDor Follow
    Starter

    Latest posts made by MaikDor

    • RE: Automatische Übersicht aller Sonoff Geräte

      @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);
          
      }); 
       
      
      
      posted in Visualisierung
      M
      MaikDor
    • RE: Automatische Übersicht aller Sonoff Geräte

      @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

      posted in Visualisierung
      M
      MaikDor
    • RE: Automatische Übersicht aller Sonoff Geräte

      @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

      posted in Visualisierung
      M
      MaikDor
    • RE: Automatische Übersicht aller Sonoff Geräte

      @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

      posted in Visualisierung
      M
      MaikDor
    • RE: Automatische Übersicht aller Sonoff Geräte

      @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

      posted in Visualisierung
      M
      MaikDor
    • RE: Automatische Übersicht aller Sonoff Geräte

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

      posted in Visualisierung
      M
      MaikDor
    • RE: Automatische Übersicht aller Sonoff Geräte

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

      posted in Visualisierung
      M
      MaikDor
    • RE: Automatische Übersicht aller Sonoff Geräte

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

      posted in Visualisierung
      M
      MaikDor
    • RE: Automatische Übersicht aller Sonoff Geräte

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

      posted in Visualisierung
      M
      MaikDor
    • RE: Automatische Übersicht aller Sonoff Geräte

      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

      posted in Visualisierung
      M
      MaikDor
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo