NEWS
[Skript] RSS feed-generator
-
nachdem nun mein Anfängerscript im Projekt-forum neu mit dem node.js modul rss läuft, ist wohl hier der bessere Ort.
Die Idee dahinter ist, dass iobroker selbst ein RSS-feed zur Verfügung stellt, damit auf dem Desktop oder Smartphone wichtige Eckdaten permanent dargestellt werden können. RSS-clients gibts ja einige.
Die Einrichtung ist relativ einfach. In den Eigenschaften der Javascript Instanz muss unter "Zusätzliche NPM-Module" rss eingefügt werden. Zudem wird noch ein eigenes Web-Verzeichnis /var/www benötigt. In den iobroker proxy adapter Einstellungen verweise ich dann auf dieses Verzeichnis (Kontext : /www URL: /var/www/) Der Feed ist dann unter http://<ip- iobroker="">:8082/proxy.0/www/bs.xml erreichbar. (bs.xml ist das feed-file, welches untenstehendes script in /var/www/ ablegt)
das Skript selbst ist immer noch rudimentär aber funktioniert hier bestens.
schedule("*/15 * * * *", function () { // alle 15 Minute // Modul laden var Feed = require('rss'); var fs = require('fs'); var fn = "/var/www/bs.xml"; //--------------timestamp var ts = new Date(); ts = formatDate(ts, "hh:mm") ; // file neu fs.open(fn, 'w', function (err, file) { if (err) throw err; // console.log('feed update!'); }); // daten von iobroker holen var aussen=getState("hm-rpc.3.IEQ0020678.1.TEMPERATURE").val; var Heizg=getState("hm-rpc.3.IEQ0405376.1.TEMPERATURE").val; var wz_t=getState("hm-rpc.3.MEQ0476362.1.TEMPERATURE").val; var wz_h=getState("hm-rpc.3.MEQ0476362.1.HUMIDITY").val; var k_t=getState("hm-rpc.3.MEQ0477427.1.TEMPERATURE").val; var k_h=getState("hm-rpc.3.MEQ0477427.1.HUMIDITY").val; // init module var feed = new Feed({ title: 'Werte BS um ' + ts, // docs: 'docs', description: 'Verwendung des RSS-moduls!', }); // Datenpunkt_1 feed.item({ title: 'aussen: ' + aussen + ' °C', // date: new Date(), }); //Datenpunkt_2 feed.item({ title: 'Heizg: ' + Heizg + ' °C', }); //Datenpunkt_3 feed.item({ title: 'Wohnz_t: ' + wz_t + ' °C', }); //Datenpunkt_4 feed.item({ title: 'Wohnz_h: ' + wz_h + ' %rH', }); //Datenpunkt_5 feed.item({ title: 'Keller_t: ' + k_t + ' °C', }); //Datenpunkt_6 feed.item({ title: 'Keller_h: ' + k_h + ' %rH', }); // feed in file schreiben var output = feed.xml({indent: true}); fs.appendFileSync(fn, output + "\n"); });
Link zum ursprünglichen Beitrag http://forum.iobroker.net/viewtopic.php?f=35&t=8079</ip->
-
Cool!
Bin darüber gestolpert als die Adaptervorschläge von Trello zu Github geholt wurden.
Coole Idee!
-
Wenn jemand diesen Thread findet, im https://forum.iobroker.net/viewtopic.php?f=35&t=8079 gibt es noch folgende Hinweise:
Kleiner Denkanstoß, vielleicht ist das ja eine Option:
Statt in eine Datei zu schreiben, könnte man auch einen String zusammenbasteln und den in einen State schreiben. Mit simple-api könnte man den in Rohform zurückgeben, und sollte damit keinen externen http-Server benötigen. => https://github.com/ioBroker/ioBroker.si … ainvalue-1 `
An alle Interessierten: Adapter-Request ist jetzt auf Github unter https://github.com/ioBroker/AdapterRequests/issues/30 zu finden. Bitte dort wie unter https://github.com/ioBroker/AdapterRequ … o-use-this beschrieben voten! `
Das mit der simple-api werde ich mal versuchen umzusetzen.