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