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

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

                  @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

                  arteck M 2 Replies Last reply Reply Quote 0
                  • arteck
                    arteck Developer Most Active @Kuddel last edited by

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

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

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

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

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

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            870
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

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