Hallo zusammen,
ich verwende auf dem Smartphone AIO Creator NEO. Für die HmIP-Geräte auf der CCU3 läuft das sehr gut, aber Datenpunkte des ioB, die ich über die entsprechende AIO-Erweiterung einbinden kann, brauchen ewig, bis sie auf dem Smartphone angezeigt werden.
Um das zu vermeiden, möchte ich die ioB-Datenpunkte zusätzlich auf der CCU3 als Systemvariablen anlegen und bei Änderung dieser Datenpunkte synchronisieren. Die Systemvariablen finde ich im ioB unter Objekte/hm-rega.
Dazu habe ich diesen (bislang 16) Datenpunkten eine Kategorie/Funktion zugeordnet, die ich über 'IDs vom Selektor' abgreife.
Die Zuordnung bzw. das Parsen erfolgt über eine als Datenpunkt angelegte JSON-Tabelle, von der ich einen Datensatz im Foto zeige.
Grundsätzlich funktioniert mein Blockly, allerdings werden auch unerwartete Infos und ein Fehler angezeigt, die ich mir nicht erklären kann (siehe Log-File im Spoiler).
Kann mir jemand helfen, den Fehler zu identifizieren, bitte?
PS: der Blockly-Teil mit dem eigentlichen Mapping fehlt hier noch.
var vl_DP, js_Sync_CCU3, z_JSON;
on({ id: [].concat(Array.prototype.slice.apply($('state[id=*](functions=AIO_NEO)'))), change: 'ne' }, async (obj) => {
let value = obj.state.val;
let oldValue = obj.oldState.val;
// JSON aus Datenpunkt in Liste laden
js_Sync_CCU3 = (() => { try { return JSON.parse(getState('0_userdata.0.Variablen.allgemein.json_Sync_CCU3').val); } catch (e) { return {}; }})();
// Schleife durch die Liste
for (z_JSON = 1; z_JSON <= 16; z_JSON++) {
// Prüfen, ob Element "DP1" der Liste gleich geändertem Datenpunkt (aus Trigger)
if (getAttr((js_Sync_CCU3[(z_JSON - 1)]), 'DP1') == obj.id) {
// Abbruch, wenn gefunden
break;
}
}
// Ausgabe des Elements DP2 zum gefundenen Datensatz
console.info(getAttr((js_Sync_CCU3[(z_JSON - 1)]), 'DP2'));
});