NEWS
Grünbeck Objectid umwandeln in liter
-
Hallo, ich bin ein absoluter Neuling in Blockly.
Ich bekomme von der Grünbeck die Restkapazität in m3 und möchte eine neue Object id
in Liter erstellen die ich in Vis anzeigen kann. Geht das in Blockly ?
Gruß Tom
-
@slkschlumpf
Version js-controller (Reiter "Hosts") ?
RAW-Ansicht der Eigenschaften des Grünbeck Restkapazität-Datenpunktes (in Code tags) ? -
Versteh nur Bahnhof....
In Home Assistant kann man eine neue Variable mit einem anderen Namen machen und die z.b. mit 1000 multiplizieren.
Im Adapter steht das :
{
"from": "system.host.ioBroker-RasPi4.cli",
"ts": 1572600212129,
"common": {
"name": "Restkapazität",
"type": "number",
"role": "number",
"desc": "Restkapazität",
"unit": "m³*°dH",
"read": true,
"write": false,
"def": false
},
"native": {},
"acl": {
"object": 1638,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator",
"state": 1638
},
"_id": "gruenbeck.0.info.D_A_1_2",
"type": "state"
} -
@slkschlumpf sagte:
In Home Assistant kann man eine neue Variable mit einem anderen Namen machen und die z.b. mit 1000 multiplizieren.
Das kann man in ioBroker auch, allerdings auf verschiedenen Wegen: Mit eigenem Datenpunkt (unter javascript.0 oder unter 0_userdata.0) und einem Skript, das umwandelt. Oder mit einem Alias-Datenpunkt (ab js-controller-Version 2.x), der die Umwandlung ohne Skript macht, wenn man ihn richtig konfiguriert.
// Original-Datenpunkt const idOrigin = 'gruenbeck.0.info.D_A_1_2'; // Alias-Datenpunkt const idAlias = 'gruenbeck.restkapazitaet'; const typeNew = null; // 'boolean', 'number', keine Typwandlung: null function createAlias(idSrc, idDst, typeAlias) { if(getObject('alias.0.' + idDst)) log ('Alias schon vorhanden !', 'warn'); else { var obj = {}; obj.type = 'state'; obj.common = getObject(idSrc).common; if(typeAlias) obj.common.type = typeAlias; obj.common.alias = {}; obj.common.alias.id = idSrc; obj.common.alias.read = 'val * 1000'; // Umwandlung m³ --> l obj.common.unit = 'l'; // Umwandlung in l obj.common.role = 'value'; // Korrektur Rolle obj.common.def = 0; // Korrektur Default setObject('alias.0.' + idDst, obj); } } createAlias(idOrigin, idAlias, typeNew);
Das Skript braucht nur einmal kurz gestartet werden, um den Alias-Datenpunkt zu erstellen.