DOIF wird ausgeführt bei KEINER Änderungen der Readings im RssFeed

Begonnen von Soc, 24 November 2017, 18:14:37

Vorheriges Thema - Nächstes Thema

Soc

Hallo,

ich habe einen RssFeed definiert, welchen ich mit folgenden DOIF überwache:


defmod doif_RSSPushover DOIF ([WEB_myRSS:n00_title]) \
(set Pushover msg message="[WEB_myRSS]" url_title="Jetzt lesen" action="[WEB_myRSS:n00_link]" expire=18000)
attr doif_RSSPushover DbLogExclude .*
attr doif_RSSPushover alias Pushover Nachricht bei neuen Beiträgen auf h....com
attr doif_RSSPushover checkReadingEvent 1
attr doif_RSSPushover do always


Der RssFeed ist wie folgt definiert:


defmod WEB_myRSS rssFeed https://h....com/feed.xml 18000
attr WEB_myRSS DbLogExclude .*
attr WEB_myRSS event-on-change-reading .*
attr WEB_myRSS icon remotecontrol/black_btn_RSS
attr WEB_myRSS rfAllReadingsEvents 1
attr WEB_myRSS rfEncode utf8
attr WEB_myRSS rfReadings title,pubDate,link


Ich erhalte alle 5 Stunden eine Nachricht, dass angeblich ein neuer Feed da wäre, was aber nicht stimmt.

Hat jemand einen Tipp was ich da falsch definiert habe?

Danke und Gruß

Soc

automatisierer

Hallo,
durch die Bedingung:
([WEB_myRSS:n00_title])

Bei der Reading Auswertung, prüft das DOIF bei jedem Event des betreffenden Device, ob sich das Reading verändert hat. Da du keine Prüfung, aller '([WEB_myRSS:n00_title] eq "xyz")'  vornimmst, ist die Bedingung ja immer wahr. Ich hab nun keine Ahnung wie die Events von 'WEB_myRSS' aussehen, aber du könntest versuchen direkt auf Events zu triggern.

([WEB_myRSS:"n00_title"])

Soc

Hier ein Auszug aus den RssFeed:


Internals:
   CHANGED
   DEF        https://haus-automatisierung.com/feed.xml 18000
   INTERVAL   18000
   NAME       WEB_myRSS
   NOTIFYDEV  global
   NR         46
   NTFY_ORDER 50-WEB_myRSS
   STATE      24.11.2017 - Docker auf dem Raspberry Pi
   TYPE       rssFeed
   URL        https://haus-automatisierung.com/feed.xml
   READINGS:
     2017-11-24 20:46:48   f_link          https://haus-automatisierung.com/
     2017-11-24 20:46:48   f_pubDate       Fri, 24 Nov 2017 15:21:29 +0100
     2017-11-24 20:46:48   f_title         haus-automatisierung.com
     2017-11-24 20:46:47   gzippedFeed     0
     2017-11-24 20:46:48   n00_link        http://haus-automatisierung.com/hardware/fhem/2017/11/24/docker-auf-raspberry-pi.html
     2017-11-24 20:46:48   n00_pubDate     Fri, 24 Nov 2017 00:00:00 +0100
     2017-11-24 20:46:48   n00_title       Docker auf dem Raspberry Pi
     2017-11-24 20:46:48   n01_link        http://haus-automatisierung.com/hardware/2017/11/23/nextion-display-part-4.html
     2017-11-24 20:46:48   n01_pubDate     Thu, 23 Nov 2017 00:00:00 +0100
     2017-11-24 20:46:48   n01_title       Nextion Display - Teil 4 - Integration in FHEM und Node-Red
     2017-11-24 20:46:48   n02_link        http://haus-automatisierung.com/hardware/fhem/2017/11/19/fhem-tutorial-reihe-part-45-wunderlist.html
     2017-11-24 20:46:48   n02_pubDate     Sun, 19 Nov 2017 00:00:00 +0100
     2017-11-24 20:46:48   n02_title       FHEM Tutorial-Reihe - Part 45: wunderlist integrieren
     2017-11-24 20:46:48   n03_link        http://haus-automatisierung.com/hardware/fhem/2017/11/18/fhem-tutorial-reihe-part-44-nano-cul.html
     2017-11-24 20:46:48   n03_pub


Der Inhalt von n00_title ändert sich nur alle x Tage. Auf den Inhalt kann ich den DOIF nicht abfragen, da mir natürlich der Wert nicht bekannt ist.

Gruß

Soc

automatisierer

da du bei dem RSS Device event-on-change-reading gesetzt hast, wird nur dann ein Event erzeugt, wenn sich der Titel ändert. Somit sollte mein Vorschlag funktionieren.

Soc

Leider ohne Erfolg.
Habe ein Update auf den RssFeed gemacht und gleich kam die Nachricht.

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus


Soc

Ach ja, wenn ich den Updatebeim RssFeed durchführe, erscheint im Eventmonitor alle Readings.

Frank_Huber

Nur auf Verdacht, teste mal ohne attr WEB_myRSS rfAllReadingsEvents 1

Mit dem Handy online, daher kurz gefasst...


Soc

Dein Verdacht war Gold wert. Jetzt passt es.
Beim set WEB_myRSS update bleibt es ruhig. Beim setreading auf n00_title kommt eine Nachricht.

Super. Danke und Dir noch ein schönes Wochenende.

Frank_Huber

Ja, die commandref oder das Modul scheint hier evtl fehlerhaft zu sein.
Jede Änderung im device scheint alle readings zu aktualisieren.
Und auch events auszulösen. Event-on-change-reading wird dabei dann scheinbar ausser Acht gelassen.

Mit dem Handy online, daher kurz gefasst...


Mohrengemuse

Gibt´s eine Lösung für das Problem? Bei mir ist´s nämlich genau so.

Soc

Ja, aber eine Umgehung die aber funktioniert.

Ich habe ein UserReading in MyRSS angelegt, indem der letzte Title gespeichert wird.
Im DOIF sieht es dann wie folgt aus:


([WEB_myRSS:"n00_title"] and [WEB_myRSS:n00_title] ne [WEB_myRSS:T_n00_title])
(setreading WEB_myRSS T_n00_title [WEB_myRSS:n00_title],
set Pushover msg message="(T) [WEB_myRSS]" url_title="Jetzt lesen" action="[WEB_myRSS:n00_link]" expire=18000)


Damit wird wirklich nur der Pushover ausgelöst wenn eine NEUE Nachricht da ist.

Ich hoffe das hilft Dir.