NEWS
Datenpunktlisten zusammenfassen
-
Hallo
Ich habe
const EspDevice = "483FDA35C141"; var Sensors = $("esphome.0." + EspDevice + ".Sensor.*.state"); var Switches = $("esphome.0." + EspDevice + ".Switch.*.state");alle Sensoren und Schalter in 2 Arrays(?)
Wie kann ich die zusammenfassen?var Statess = [Sensors, Switches];geht nicht.
-
Hallo
Ich habe
const EspDevice = "483FDA35C141"; var Sensors = $("esphome.0." + EspDevice + ".Sensor.*.state"); var Switches = $("esphome.0." + EspDevice + ".Switch.*.state");alle Sensoren und Schalter in 2 Arrays(?)
Wie kann ich die zusammenfassen?var Statess = [Sensors, Switches];geht nicht.
@wolfgangfb sagte in Datenpunktlisten zusammenfassen:
in 2 Arrays(?)
Das sind keine Arrays, sondern Objekte. Mit each-Schleifen kann man sie in einem Array zusammenfassen:
const EspDevice = "483FDA35C141"; var Sensors = $("esphome.0." + EspDevice + ".Sensor.*.state"); var Switches = $("esphome.0." + EspDevice + ".Switch.*.state"); const ids = []; Sensors.each(function(id, i) { ids.push(id); }); Switches.each(function(id, i) { ids.push(id); }); -
@wolfgangfb sagte in Datenpunktlisten zusammenfassen:
in 2 Arrays(?)
Das sind keine Arrays, sondern Objekte. Mit each-Schleifen kann man sie in einem Array zusammenfassen:
const EspDevice = "483FDA35C141"; var Sensors = $("esphome.0." + EspDevice + ".Sensor.*.state"); var Switches = $("esphome.0." + EspDevice + ".Switch.*.state"); const ids = []; Sensors.each(function(id, i) { ids.push(id); }); Switches.each(function(id, i) { ids.push(id); });Danke, so ganz verstehe ich den Unterschied aber noch nicht.
const Sensor = $("esphome.0.483FDA35C141.Sensor.*.state"); const ids = []; Sensor.each(function(id, i) { ids.push(id); }); console.log("Sensor:") console.log(Sensor); console.log("ids: ") console.log(ids); for (var i=0; i<Sensor.length;i++){ var obj = getObject(Sensor[i]); console.log(obj); console.log("Sensor[" + i + "]: "); console.log(Sensor[i]); console.log(getState(Sensor[i]).val) var obj = getObject(ids[i]); console.log(obj); console.log("ids[" + i + "]: "); console.log(ids[i]); console.log(getState(ids[i]).val) }liefert
12:07:33.283 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: Sensor: 12:07:33.283 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: {'0':'esphome.0.483FDA35C141.Sensor.2992319204.state','1':'esphome.0.483FDA35C141.Sensor.4035668188.state','length':2} 12:07:33.284 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: ids: 12:07:33.284 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: ['esphome.0.483FDA35C141.Sensor.2992319204.state','esphome.0.483FDA35C141.Sensor.4035668188.state'] 12:07:33.284 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: {'type':'state','common':{'modify':'','name':'State of D7.humidity Temperatur 0 humidity','type':'number','role':'state','read':true,'unit':'%','write':false},'from':'system.adapter.esphome.0','user':'system.user.admin','ts':1656065642107,'_id':'esphome.0.483FDA35C141.Sensor.2992319204.state','acl':{'object':1636,'state':1636,'owner':'system.user.admin','ownerGroup':'system.group.administrator'}} 12:07:33.285 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: Sensor[0]: 12:07:33.285 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: esphome.0.483FDA35C141.Sensor.2992319204.state 12:07:33.285 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: 63 12:07:33.286 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: {'type':'state','common':{'modify':'','name':'State of D7.humidity Temperatur 0 humidity','type':'number','role':'state','read':true,'unit':'%','write':false},'from':'system.adapter.esphome.0','user':'system.user.admin','ts':1656065642107,'_id':'esphome.0.483FDA35C141.Sensor.2992319204.state','acl':{'object':1636,'state':1636,'owner':'system.user.admin','ownerGroup':'system.group.administrator'}} 12:07:33.286 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: ids[0]: 12:07:33.286 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: esphome.0.483FDA35C141.Sensor.2992319204.state 12:07:33.287 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: 63 12:07:33.287 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: {'type':'state','common':{'modify':'','name':'State of D7.temperature Temperatur 0 temperature','type':'number','role':'state','read':true,'unit':'°C','write':false},'from':'system.adapter.esphome.0','user':'system.user.admin','ts':1656065642107,'_id':'esphome.0.483FDA35C141.Sensor.4035668188.state','acl':{'object':1636,'state':1636,'owner':'system.user.admin','ownerGroup':'system.group.administrator'}} 12:07:33.287 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: Sensor[1]: 12:07:33.288 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: esphome.0.483FDA35C141.Sensor.4035668188.state 12:07:33.288 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: 20.4 12:07:33.288 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: {'type':'state','common':{'modify':'','name':'State of D7.temperature Temperatur 0 temperature','type':'number','role':'state','read':true,'unit':'°C','write':false},'from':'system.adapter.esphome.0','user':'system.user.admin','ts':1656065642107,'_id':'esphome.0.483FDA35C141.Sensor.4035668188.state','acl':{'object':1636,'state':1636,'owner':'system.user.admin','ownerGroup':'system.group.administrator'}} 12:07:33.289 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: ids[1]: 12:07:33.289 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: esphome.0.483FDA35C141.Sensor.4035668188.state 12:07:33.290 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: 20.4Ist Sensors quasi ein Array von Objekten während ids "nur" ein Array von Objektnamen ist?
Kann man Sensors und Switches echt zusammenfassen oder geht das nicht, weil die Objekte ja unterschiedliche Eigenschaften haben (können)? -
Danke, so ganz verstehe ich den Unterschied aber noch nicht.
const Sensor = $("esphome.0.483FDA35C141.Sensor.*.state"); const ids = []; Sensor.each(function(id, i) { ids.push(id); }); console.log("Sensor:") console.log(Sensor); console.log("ids: ") console.log(ids); for (var i=0; i<Sensor.length;i++){ var obj = getObject(Sensor[i]); console.log(obj); console.log("Sensor[" + i + "]: "); console.log(Sensor[i]); console.log(getState(Sensor[i]).val) var obj = getObject(ids[i]); console.log(obj); console.log("ids[" + i + "]: "); console.log(ids[i]); console.log(getState(ids[i]).val) }liefert
12:07:33.283 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: Sensor: 12:07:33.283 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: {'0':'esphome.0.483FDA35C141.Sensor.2992319204.state','1':'esphome.0.483FDA35C141.Sensor.4035668188.state','length':2} 12:07:33.284 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: ids: 12:07:33.284 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: ['esphome.0.483FDA35C141.Sensor.2992319204.state','esphome.0.483FDA35C141.Sensor.4035668188.state'] 12:07:33.284 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: {'type':'state','common':{'modify':'','name':'State of D7.humidity Temperatur 0 humidity','type':'number','role':'state','read':true,'unit':'%','write':false},'from':'system.adapter.esphome.0','user':'system.user.admin','ts':1656065642107,'_id':'esphome.0.483FDA35C141.Sensor.2992319204.state','acl':{'object':1636,'state':1636,'owner':'system.user.admin','ownerGroup':'system.group.administrator'}} 12:07:33.285 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: Sensor[0]: 12:07:33.285 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: esphome.0.483FDA35C141.Sensor.2992319204.state 12:07:33.285 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: 63 12:07:33.286 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: {'type':'state','common':{'modify':'','name':'State of D7.humidity Temperatur 0 humidity','type':'number','role':'state','read':true,'unit':'%','write':false},'from':'system.adapter.esphome.0','user':'system.user.admin','ts':1656065642107,'_id':'esphome.0.483FDA35C141.Sensor.2992319204.state','acl':{'object':1636,'state':1636,'owner':'system.user.admin','ownerGroup':'system.group.administrator'}} 12:07:33.286 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: ids[0]: 12:07:33.286 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: esphome.0.483FDA35C141.Sensor.2992319204.state 12:07:33.287 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: 63 12:07:33.287 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: {'type':'state','common':{'modify':'','name':'State of D7.temperature Temperatur 0 temperature','type':'number','role':'state','read':true,'unit':'°C','write':false},'from':'system.adapter.esphome.0','user':'system.user.admin','ts':1656065642107,'_id':'esphome.0.483FDA35C141.Sensor.4035668188.state','acl':{'object':1636,'state':1636,'owner':'system.user.admin','ownerGroup':'system.group.administrator'}} 12:07:33.287 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: Sensor[1]: 12:07:33.288 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: esphome.0.483FDA35C141.Sensor.4035668188.state 12:07:33.288 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: 20.4 12:07:33.288 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: {'type':'state','common':{'modify':'','name':'State of D7.temperature Temperatur 0 temperature','type':'number','role':'state','read':true,'unit':'°C','write':false},'from':'system.adapter.esphome.0','user':'system.user.admin','ts':1656065642107,'_id':'esphome.0.483FDA35C141.Sensor.4035668188.state','acl':{'object':1636,'state':1636,'owner':'system.user.admin','ownerGroup':'system.group.administrator'}} 12:07:33.289 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: ids[1]: 12:07:33.289 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: esphome.0.483FDA35C141.Sensor.4035668188.state 12:07:33.290 info javascript.0 (26728) script.js.Programmieren.Objekte.DollarArray: 20.4Ist Sensors quasi ein Array von Objekten während ids "nur" ein Array von Objektnamen ist?
Kann man Sensors und Switches echt zusammenfassen oder geht das nicht, weil die Objekte ja unterschiedliche Eigenschaften haben (können)?@wolfgangfb sagte: Ist Sensors quasi ein Array von Objekten während ids "nur" ein Array von Objektnamen ist?
Sensors ist ein Objekt mit den Attributen 0, 1, ... , die IDs enthalten und dann am Ende length.
ids ist ein Array von Datenpunkt-IDs und kann die IDs von Sensors und Switches enthalten.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden