NEWS
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
-
@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
-
@kuddel
So habe es nun so gemacht und es geht nun kommt kein warning mehr.

aber musste dann den type in power von "string" auf "Boolean" stellen.

-
@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 ""
-
@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 ""
-
@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?
@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. -
@kuddel
So habe es nun so gemacht und es geht nun kommt kein warning mehr.

aber musste dann den type in power von "string" auf "Boolean" stellen.

-
@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 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); });

