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' fileconst 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 -
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' fileconst 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
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