NEWS
Guntamatic Biostar Pelletheizung auslesen
-
Moin,
ich habe mich den Abend damit beschäftigt Daten aus meiner Holzpelletheizung zu extrahieren.
Dieser Foren-Thread hat mir dabei ziemlich geholfen
Die Daten werden mittels Shell script vom Kessel geholt, etwas bereinigt und dann in JS weiter verarbeitet.ACHTUNG: In dem Code wird noch kein einziger von vielen möglichen Fehlerfällen abgefangen. Das mache ich noch, dadurch wird es aber unübersichtlich. Also bekommt ihr hier die Quick&Dirty Lösung.
Das funktioniert mit und ohne Key, ohne bekommt man weniger Daten... aber das st schon ein Anfang. Ich habe eine Biostar33, das sollte so aber auch für die anderen Modelle gehen.#!/bin/bash IP="192.168.178.68" KEY="" cd /home/iobroker/ wget -O daqdesc.csv http://$IP/daqdesc.cgi?key=$KEY wget -O daqdata.csv http://$IP/daqdata.cgi?key=$KEY paste -d ';' daqdesc.csv daqdata.csv > guntamatic.csv sed -i '/reserved/d' guntamatic.csv sed -i '1s/.*$/Bezeichnung;Einheit;Wert\n&/g' file
const csv = require('csv-parser'); const fs = require('fs'); const results = []; function WerteHolen(){ exec('/home/iobroker/KindlyAskGuntamatic.sh'); fs.createReadStream('/home/iobroker/guntamatic.csv') .pipe(csv({ separator: ';', columns: true})) .on('data', function(csvrow) { results.push(csvrow); }) .on('end',function() { console.log(results[1]); for (const element of results) { var idDP = "Guntamatic."+element["Bezeichnung"]; createState(idDP, element["Wert"], false, { name: element["Bezeichnung"], desc: "", type: "string", role: "value", unit: element["Einheit"] }); setState("Guntamatic."+element["Bezeichnung"],element["Wert"] ); } }); }; schedule("*/2 * * * *", function(){WerteHolen(); });
velleicht kann damit der ein oder andere ja was anfangen.
Grüße von der Küste -
@goerdy
HiDas ist wirklich interessant
Hast du deinen Code in der Zwischenzeit geändert? Oder hast du einen Adapter gefunden?
Bist du mit deiner Heizung zufrieden?Danke!!!