NEWS
Test/Support für Adapter rssfeed und vis-2-widgets-rssfeed
-
@OliverIO sagte in Test Adapter rssfeed v0.0.x:
@sigi234
danke fürs bedankenDu bist mein Held! :+1:
Wie kann ich mehrere Meldungen anzeigen lassen?
Habe jetzt einfach das Widget kopiert.

-
@Bostil sagte in Test Adapter rssfeed v0.0.x:
@OliverIO Wenn du schon so provokant fragst ... :dog: natürlich alles nur Spinnerei und bloß "food for thought" :
- Timerfunktion für jeweilige Rss-Feeds - entweder vllt ein Ablaufender (... Nach x Minuten wechseln auf den nächsten RSS-Feed) oder per Zeitplan (siehe mein Ansatz oben)
hm, das war mal angedacht. ein von mir sogenanntes multiwidget. d.h. man definiert in einem widget mehrere feeds und das widget gibt die Nachrichten der Reihe nach aus, wie als ob es ein feed wäre
- vllt Statusse von Datenbanken oder Log ausgeben können?!
hat das was mit einem rss feed zu tun oder wäre das ein anderer adapter?
- Anbindung an Social-Media zum Wiedergeben von Twitter-Feeds
hat das was mit einem rss feed zu tun oder wäre das ein anderer adapter? hm ein twitter adapter könnte man noch ins auge fassen
- kein laufender Ticker, aber vertikales Ein-/Ausblenden von Schlagzeilen
also kein scrollen von rechts nach links, sondern von oben nach unten? oder immer nur eine schlagzeile mit einem überblendeffekt?
- Poststempel der letzten Aktualisierung optional ausweisen
das kann man heute schon über das template umsetzen.
Datum/uhrzeit steht in meta.date und/oder meta.pubdate....
:-)
@OliverIO said in Test Adapter rssfeed v0.0.x:
hm, das war mal angedacht. ein von mir sogenanntes multiwidget. d.h. man definiert in einem widget mehrere feeds und das widget gibt die Nachrichten der Reihe nach aus, wie als ob es ein feed wäre
Die Idee finde ich Klasse.
Wäre es auch möglich, nicht nur die Anzahl der anzuzeigenden Artikel einzustellen, sondern auch welcher, oder ab welchen Artikel?
-
@OliverIO said in Test Adapter rssfeed v0.0.x:
hm, das war mal angedacht. ein von mir sogenanntes multiwidget. d.h. man definiert in einem widget mehrere feeds und das widget gibt die Nachrichten der Reihe nach aus, wie als ob es ein feed wäre
Die Idee finde ich Klasse.
Wäre es auch möglich, nicht nur die Anzahl der anzuzeigenden Artikel einzustellen, sondern auch welcher, oder ab welchen Artikel?
@Oli sagte in Test Adapter rssfeed v0.0.x:
@OliverIO said in Test Adapter rssfeed v0.0.x:
hm, das war mal angedacht. ein von mir sogenanntes multiwidget. d.h. man definiert in einem widget mehrere feeds und das widget gibt die Nachrichten der Reihe nach aus, wie als ob es ein feed wäre
Die Idee finde ich Klasse.
Wäre es auch möglich, nicht nur die Anzahl der anzuzeigenden Artikel einzustellen, sondern auch welcher, oder ab welchen Artikel?
was würde das bringen?
RSS ist ja ein Feedformat. d.,h. die Artikel wandern zeitlich durch.
Kommt ein neuer Artikel, dann ist der bisherige 1. Artikel nun der 2. Artikel usw.
Es macht mE keinen sinn immer den 2-4 Artikel nur zu sehen.
aber im Template kann jeder so etwas selbst umsetzen, da geht das
Dann heißt die Schleife nicht forEach, sondern
for(var i=2;i<=4;i++)
var item = articles[i]; -
@Oli sagte in Test Adapter rssfeed v0.0.x:
@OliverIO said in Test Adapter rssfeed v0.0.x:
hm, das war mal angedacht. ein von mir sogenanntes multiwidget. d.h. man definiert in einem widget mehrere feeds und das widget gibt die Nachrichten der Reihe nach aus, wie als ob es ein feed wäre
Die Idee finde ich Klasse.
Wäre es auch möglich, nicht nur die Anzahl der anzuzeigenden Artikel einzustellen, sondern auch welcher, oder ab welchen Artikel?
was würde das bringen?
RSS ist ja ein Feedformat. d.,h. die Artikel wandern zeitlich durch.
Kommt ein neuer Artikel, dann ist der bisherige 1. Artikel nun der 2. Artikel usw.
Es macht mE keinen sinn immer den 2-4 Artikel nur zu sehen.
aber im Template kann jeder so etwas selbst umsetzen, da geht das
Dann heißt die Schleife nicht forEach, sondern
for(var i=2;i<=4;i++)
var item = articles[i]; -
@Oli
binding nicht, lässt sich aber sicherlich anders umsetzen.
dazu musst du sagen was du genau erreichen willst
Rechts lasse ich mir alle Warnungen anzeigen, die vorhanden sind.
Links möchte ich mir nur die Warnungen anzeigen lassen, welche ich noch nicht gelesen habe, die Anzahl steht in einem Datenpunkt,
Jetzt möchte ich über Binding im Widget bei maxarticles auf den Datenpunkt die Anzahl der zu zeigenden Artikel ändern.
Beispiel:
Wenn im Datenpunkt 3 hinterlegt ist, dann soll er mir die ersten 3 Artikel anzeigen. -

Rechts lasse ich mir alle Warnungen anzeigen, die vorhanden sind.
Links möchte ich mir nur die Warnungen anzeigen lassen, welche ich noch nicht gelesen habe, die Anzahl steht in einem Datenpunkt,
Jetzt möchte ich über Binding im Widget bei maxarticles auf den Datenpunkt die Anzahl der zu zeigenden Artikel ändern.
Beispiel:
Wenn im Datenpunkt 3 hinterlegt ist, dann soll er mir die ersten 3 Artikel anzeigen.@Oli
ok verstehe, aber warum Anzahl?
Gehen wir davon aus, der Anbieter des Feeds liefert immer 20 Artikel aus.
Der älteste verschwindet, wen vorn ein neuer reinkommt.
Was für eine Aussagekraft hat dann Anzahl?
Wäre nicht das Datum des zuletzt gelesenen Artikels sinnvoller?
Wie triggerst du dann die Änderung deines Datenpunktes?
Hast du einen Knopf, der dann den neuen Wert einträgt?Wie man an den weiteren Datenpunkt kommt muss ich erst testen. Dürfte aber kein Problem sein. Im Template stehen dir auch alle vis-internen Befehle zur Verfügung. Also auch die, die das Binding intern nutzt. Den Befehl um einen Datenpunkt abzurufen, den kann man ebenfalls verwenden. Interessant könnte es werden, da die Daten asynchron abgerufen werden. Das widget aber den widget-Inhalt alles in einem Rutsch erzeugt.
Das muss ich erst testen
-
@Oli
ok verstehe, aber warum Anzahl?
Gehen wir davon aus, der Anbieter des Feeds liefert immer 20 Artikel aus.
Der älteste verschwindet, wen vorn ein neuer reinkommt.
Was für eine Aussagekraft hat dann Anzahl?
Wäre nicht das Datum des zuletzt gelesenen Artikels sinnvoller?
Wie triggerst du dann die Änderung deines Datenpunktes?
Hast du einen Knopf, der dann den neuen Wert einträgt?Wie man an den weiteren Datenpunkt kommt muss ich erst testen. Dürfte aber kein Problem sein. Im Template stehen dir auch alle vis-internen Befehle zur Verfügung. Also auch die, die das Binding intern nutzt. Den Befehl um einen Datenpunkt abzurufen, den kann man ebenfalls verwenden. Interessant könnte es werden, da die Daten asynchron abgerufen werden. Das widget aber den widget-Inhalt alles in einem Rutsch erzeugt.
Das muss ich erst testen
der Datenpunkt wird von meinem alten Script für die Lebensmittelwarnungen getriggert, dieses liest den RSS-Feed aus und füllt verschiedene Datenpunkte, im Script wird das Datum des letzten Eintrags verglichen, ist es unterschiedlich, wird der Datenpunkt "Anzahl_Warnungen" um 1 erhöht und der Datenpunkt "neue_Warnungen" auf true gesetzt.

-

Rechts lasse ich mir alle Warnungen anzeigen, die vorhanden sind.
Links möchte ich mir nur die Warnungen anzeigen lassen, welche ich noch nicht gelesen habe, die Anzahl steht in einem Datenpunkt,
Jetzt möchte ich über Binding im Widget bei maxarticles auf den Datenpunkt die Anzahl der zu zeigenden Artikel ändern.
Beispiel:
Wenn im Datenpunkt 3 hinterlegt ist, dann soll er mir die ersten 3 Artikel anzeigen.@Oli @OliverIO Hallo, auch ich bin begeistert von der RssFeed. Im IO Broker läuft diese optimal. Jedoch weder auf dem Tablet noch auf dem Handy (Android IO Broker View) ist der Text von RSS Feed Title marquee 2 zu sehen. Ist dieses dafüür nicht gedacht oder liegt bei mir ein Denkfehler vor?
Vielen Dank und Grüße -
@Oli @OliverIO Hallo, auch ich bin begeistert von der RssFeed. Im IO Broker läuft diese optimal. Jedoch weder auf dem Tablet noch auf dem Handy (Android IO Broker View) ist der Text von RSS Feed Title marquee 2 zu sehen. Ist dieses dafüür nicht gedacht oder liegt bei mir ein Denkfehler vor?
Vielen Dank und Grüße@Günter-Jauch sagte in Test Adapter rssfeed v0.0.x:
@Oli @OliverIO Hallo, auch ich bin begeistert von der RssFeed. Im IO Broker läuft diese optimal. Jedoch weder auf dem Tablet noch auf dem Handy (Android IO Broker View) ist der Text von RSS Feed Title marquee 2 zu sehen. Ist dieses dafüür nicht gedacht oder liegt bei mir ein Denkfehler vor?
Vielen Dank und GrüßeDas ist das alte Probleme mit widget-sets, die die App nicht kennt. die Lösung ist view-in-view
Ein Workaround dazu ist:
1: ein weiterer View hinzufügen
2: dort ein iframe hinzufügen
3:im iframe die webadresse des ersten views einsetzen. -
@Günter-Jauch sagte in Test Adapter rssfeed v0.0.x:
@Oli @OliverIO Hallo, auch ich bin begeistert von der RssFeed. Im IO Broker läuft diese optimal. Jedoch weder auf dem Tablet noch auf dem Handy (Android IO Broker View) ist der Text von RSS Feed Title marquee 2 zu sehen. Ist dieses dafüür nicht gedacht oder liegt bei mir ein Denkfehler vor?
Vielen Dank und GrüßeDas ist das alte Probleme mit widget-sets, die die App nicht kennt. die Lösung ist view-in-view
Ein Workaround dazu ist:
1: ein weiterer View hinzufügen
2: dort ein iframe hinzufügen
3:im iframe die webadresse des ersten views einsetzen.@OliverIO Hi Danke für deine schnelle Reaktion. leider funktioniert das für mich nicht. Ich wollte es als Headline in einer bestehenden View laufen lassen. Trotzdem Danke.
-
@OliverIO Hi Danke für deine schnelle Reaktion. leider funktioniert das für mich nicht. Ich wollte es als Headline in einer bestehenden View laufen lassen. Trotzdem Danke.
@Günter-Jauch nutzt du die Android-App von VIS? Oder nen Browser, zB FullyBrowser (den nutze ich zB)...
-
@Günter-Jauch nutzt du die Android-App von VIS? Oder nen Browser, zB FullyBrowser (den nutze ich zB)...
@Kueppert Ich nutze die Android App von VIS
-
@OliverIO Hi Danke für deine schnelle Reaktion. leider funktioniert das für mich nicht. Ich wollte es als Headline in einer bestehenden View laufen lassen. Trotzdem Danke.
@Günter-Jauch sagte in Test Adapter rssfeed v0.0.x:
@OliverIO Hi Danke für deine schnelle Reaktion. leider funktioniert das für mich nicht. Ich wollte es als Headline in einer bestehenden View laufen lassen. Trotzdem Danke.
Dann füge in deine bestehende view den iframe ein
-
der Datenpunkt wird von meinem alten Script für die Lebensmittelwarnungen getriggert, dieses liest den RSS-Feed aus und füllt verschiedene Datenpunkte, im Script wird das Datum des letzten Eintrags verglichen, ist es unterschiedlich, wird der Datenpunkt "Anzahl_Warnungen" um 1 erhöht und der Datenpunkt "neue_Warnungen" auf true gesetzt.

-
Mir ist noch was eingefallen..du hast ja die Kategorien eingeführt. Wäre es da vielleicht eine Idee, z.B. bei Marque, wenn man statt der Quelle eine Kategorie auswählen kann, und er sammelt die Einträge (z.B. aus zwei Nachrichtenquellen), sortiert sie nach Datum und gibt sie gesammelt im Marque aus? z.B: wenn man Internationale und Lokale Nachrichten mischen möchte.
-
Mir ist noch was eingefallen..du hast ja die Kategorien eingeführt. Wäre es da vielleicht eine Idee, z.B. bei Marque, wenn man statt der Quelle eine Kategorie auswählen kann, und er sammelt die Einträge (z.B. aus zwei Nachrichtenquellen), sortiert sie nach Datum und gibt sie gesammelt im Marque aus? z.B: wenn man Internationale und Lokale Nachrichten mischen möchte.
@jackblackson
Alles klar, passt.
Bin gerade dabei ein multiwidget auf Basis des normalen RSS feeds zu erstellen.
Geht dann auch für das marquee -
Unter Abteilung Tester konnte ich kein Topic anlegen. Bitte dort hin verschieben.
Nachdem ich immer weider lese, wie sich die Leute mit rss-Feeds abmühen,
habe ich einen Adapter dazu geschrieben.
Dieser hat aktuell minimale Fähigkeiten, man kann damit aber
schon annehmbare Ergebnisse erzielen.Verwendete Bausteine
Um die Flexibilität bei der Anzeige der Feeds bieten zu können, erfolgt die Formatierung der Ausgabe
über ein template-system.
Eine Vorlage werde ich hier weiter unten kopieren.
Beschreibung der Formatierung und Syntax finden sich auf den folgenden Seiten
https://ejs.co/ und https://github.com/mde/ejsEinlesen der Feeds.
Dazu verwende ich ein node modul namens feedparser.
Dieses Modul kann verschiedene RSS-Standards (RSS, Atom, and RDF).
Dazu ist er noch dazu in der Lage, die Attribute zu normalisieren, so das es in der Ausgabe egal ist,
wie der jeweilige Standard ein bestimmtes Feld nennt.
https://github.com/danmactough/node-feedparserInstallation und Einrichtung
Schritt 1 - Installation
Der Adapter ist aktuell nur auf github verfügbar.
Name des Repository ist https://github.com/oweitman/iobroker.rssfeedSchritt 2 - Instanz hinzufügen
Der Adapter müsste dann im Abschnitt adapter im iobroker angezeigt werden.
Manchmal kommt es vor, das insbesondere bei Webänderungen (Widgets/Konfigurationsdialog) die Änderungen nicht sichtbar sind, muss evtl. auf der Kommandozeile folgender Befehl ausgeführt werden:
iobroker upload rssfeed
Im rechten Bereich in der Zeile des Adapters kann über den Plus-Knopf eine Instanz hinzugefügt werdenSchritt 3 - Konfiguration
Die Konfiguration ist relativ simpel. Es gibt nur wenige Felder
Refresh: ist die generelle Vorgabe, wie oft in Minuten der Feed neu abgerufen werden soll. Voreinstellung ist 60
Maximale Artikel im Datenpunkt: Hier kann die Gesamtmenge der zu verarbeitenden Daten begrenz werden.Dann je neuen Feed:
Name: Ein eindeutiger Name, darf nicht doppelt vorkommen
Url: Die vollständige Adresse des Feed (mit http:// oder https://)
Refresh: Bei Erfassung kann ein abweichender Wert angegeben werden. Ansonsten wird die generelle Vorgabe genommenNach Neustart und Abruf der Daten ist der Feed als JSON-Datenpunkt im Objektbaum zu finden.
Schritt 4 - vis und widgets
Um die Feeds anzuzeigen gibt es ein widget. Dieses kann über den Suchfilter in vis mittels rssfeed gefunden werden.
Das widget hat folgende Einstellmöglichkeiten
rss_oid Hier wird der JSON-Datenpunkt des gewünschten feeds ausgewählt. Ich habe festgestellt, das der Objektbrowser hier nicht imnmer zufriedenstellend funktioniert, da er die im JSON enthaltenen HTML-Anteile versucht dazustellen.
Alternativ die Datenpunkt ID direkt aus vis kopieren.
template: Hier kann ein template erfasst werden, welches javascript und html gemischt enthalten kann.maxarticles: Hier kann widget individuell die Anzahl der Artikel begrenzt werden.
Alle anderen Einstellungen sind identisch zu den anderen widgets, Die Formatvorgaben gellten generell für alle widgetinhalte
Die widgets rssfeed Meta helper und rssfeed Article helper unterstützen bei der Erstellung eines Templates,
indem dort komfortabel die meta-Informationen und die Attribute eines Artikels angezeigt werden.
Im widget rssfeed Article Helper kann man den Artikel auswählen, dessen Attribute angezeigt werden soll, sowie das Präfix anpassen, so dass es einfacher ist dieses in das Template zu kopieren.Ein weiteres widget hat nichts direkt mir rssfeed zu tun und ist in diesem adapter voraussichtlich temporär zu Gast.
Template anhand von Beispielen
Ein Beispiel, welches ich mit den folgenden RSS Feeds getestet habe:<%= meta.title %> <% articles.forEach(function(item){ %> <p><small><%- vis.formatDate(item.pubdate, "TT.MM.JJJJ SS:mm") %></small></p> <h3><%- item.title %></h3> <p><%- item.description %></p> <div style="clear:both;" /> <% }); %>Das Templatesystem arbeitet mit bestimmten Tags.
Die verwendeten Tags bedeuten das folgenden
<%= Der Inhalt des enthaltenen Ausdrucks/Variable wird escaped ausgegenen.
<%- Der Inhalt des enthaltenen Ausdrucks/Variable wird unescaped ausgegenen.
<% Tag ohne Ausgabe, wird für javascriptanweisungen verwendet
%> ist generell ein schließender Tag um eines der vorherigen abzuschließen
Alles was außerhalb dieser Tags ist, wird genau so dann angezeigt bzw. wenn es HTML ist als HTML interpretiert ausgegeben. (siehe bspw das p-tag,div-tag,small-tagInnerhalb des Templates habt ihr 2 vorgegebene variablen zur Verfügung
meta: Hier sind alle Metainformationen zum Feed enthalten. Die folgenden Inhalte stehen zur Verfügung. Ich denke die Bezeichner sind selbst erklärend. In der Hilfe werde ich diese noch genauer Beschreiben. bzw den Inhalt spezifizieren (manche sind Arrays)
meta.title
meta.description
meta.link
meta.xmlurl
meta.date
meta.pubdate
meta.author
meta.language
meta.image
meta.favicon
meta.copyright
meta.generator
meta.categoriesarticles: Ist ein Array mit einzelnen Elementen (javascript array). Jedes Element hat die folgenden Eigenschaften.
Damit es zum Beispiel passt mache ich hier mal das Prefix item davor. Aber wenn ihr wollt könnt ihr das selbst wählen. Es muss dann nur in der Schleife (forEach) entsprechend benannt werden. Auch hjier sind die Bezeichner erst einmal selbst erklärend. Nicht in jedem Feed sind alle attribute auch gefüllt. Die wichtigsten sind im obigen Template bereits enthalten.item.title
item.description
item.summary
item.link
item.origlink
item.permalink
item.date
item.pubdate
item.author
item.guid
item.comments
item.image
item.categories
item.source
item.enclosures"<%= meta.title %> <% articles.forEach(function(item){ %> <p><small><%- vis.formatDate(item.pubdate, "TT.MM.JJJJ SS:mm") %></small></p> <h3><%- item.title %></h3> <p><%- item.description %></p> <div style="clear:both;" /> <% }); %>Kurze Beschreibung was in den einzelnen Zeilen passiert
Z1: Der Feed-titel wird ausgegeben
Z2: Ohne Ausgabe. Schleife über alle articles, bei jedem Durchgang wird das aktuelle Element der variable item zugewiesen.
Z3: Datum und Uhrzeit wird ausgegeben und wird in einem p/small-Tag eingeschlossen zur Formatierung. Zur Formatierung wird die vis-eigene Datumsformatfunktion verwendet. Beschreibung ist im adapter vis zu finden.
Z4: Der Titel des Artikels wird ausgegeben. Zur Formatierung wird der Tag für Überschrift 3 verwendet
Z5: Der Inhalt des Artikels wird ausgegeben und in einem p-Tag eingeschlossen. Hier ist, zumindest bei den beiden Beispielen, HTML-code enthalten, der meist ein Bild, sowie beschreibenden Text mitbringt
Z6: Ein div-Tag, das ausgegeben werden muss, um eine spezielle Formatierung im Feed wieder aufzuheben.
Z7: Ohne Ausgabe. Hier wird die Schleife geschlossen. Alles was zwischen Z2 und Z7 definiert wurde, wird für jeden einzelnen Artikel wiederholt.Ich freue mich über reges testen und Vorschlag von Erweiterungen.
Fehler können hier, aber auch auf github https://github.com/oweitman/ioBroker.rssfeed
gemeldet werden. -
hast Du ein Backup eingespielt und warst ungeduldig beim Restore ?
dann kommt sowas...hatte ich auch schon.@skokarl sagte in Test Adapter rssfeed v0.0.x:
hast Du ein Backup eingespielt und warst ungeduldig beim Restore ?
dann kommt sowas...hatte ich auch schon.Nein
