NEWS
Sourceanalytix und Vitoconnect Viessmann API Adapter
-
Hallo,
im Viessmann Adapter wird der Strom- und Gasverbrauch in der Form
[0.37,0.641,0.783,0.79,0.766,0.793,0.692,0.809]
dargestellt. Wobei Jeder Wert für einen Tag steht. Der Aktuelle Tag ist also 0.37. Wie bekomme ich den Wert jetzt einzeln?
Meine Idee wäre jetzt z.B. über ein Skript, das alle x Minuten läuft und den Wert über ein RegEx oder so ähnlich extrahiert und in ein neues Objekt schreibt?
Mit Skripten und / oder Blockly habe ich bisher jedoch noch gar nichts gemacht.Hat hier jemand eine Idee oder vielleicht schon eine Umsetzung?
Danke schon mal!
Gruß Mark
-
@MarkA sagte:
in der Form
[0.37,0.641,0.783,0.79,0.766,0.793,0.692,0.809]
dargestellt.Checke erst einmal, ob der Datenpunkt ein Array oder ein JSON enthält.
log('Vito: ' + typeof getState('Datenpunkt-ID').val); // richtige ID eintragen !
Existiert der (eigene) Datenpunkt schon, den Du an Sourceanalytix übergeben willst ?
-
Hier ist die Ausgabe "string" bzw.
script.js.Test01.Skript_1: Vito: string
Nein, der Datenpunkt existiert noch nicht, das bekomme ich aber hin.
Laut regex101.com würde die Regular Expression
[(.*?)\,
ein Match ergeben, wobei noch ein Backslash davor muss, der aber hier nicht angezeigt wird (in der Vorschau schon).
-
@MarkA
Das macht man nicht mit RegEx, sondern so:// IDs anpassen ! const idDay = 'viessmann.0.xyz.heating.day'; const idHeute = '0_userdada.0.Viessmann.Heizung.Heute' var arr = JSON.parse(getState(idDay).val); setState(idHeute, arr[0], true); on(idDay, function(dp) { // triggert bei Wertänderung arr = JSON.parse(dp.state.val); setState(idHeute, arr[0], true); });
-
Herzlichen Dank, das hat super funktioniert!