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
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login