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->
-
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.
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