NEWS
Test/Support für Adapter rssfeed und vis-2-widgets-rssfeed
-
@dicken sagte in Test Adapter rssfeed v0.0.x:
@oliverio sagte in Test Adapter rssfeed v0.0.x:
Um welchen rss handelt es sich? Dann kann ich mal schauen.
Ist mir jetzt bei mehreren Aufgefallen, der Aufbau im Datenpunkt scheint überall gleich.
Beispiel: https://www.movie-infos.net/cms/index.php/NewsFeed/pubdate":"2021-03-23T07:38:12.000Z"
beim neusten Beitrag wird immer mit aktualisiert im Datenpunkt (also ändert sich, auch wenn der Beitrag kein neuer ist).
probiere mal folgendes Skript
Die beiden Datenpunkte am Anfang des Skripts musst du selbst manuell erstellen. Beide sind vom typ numerisch.
In den Datenpunkt lastread schreibst du dann den Zeitpunkt wann du gelesen hast als Timestamp mitnew Date().toTime()
Einen Schwachpunkt gibt es noch.
Wenn du längers den RSS nicht liest, dann verändert sich die Zahl maxread auch nicht mehr, da die Provider ja meist nur eine gewisse Anzahl von Artikel über RSS bereitstellenvar rssFeedDP = "rssfeed.0.tagesschau"; var lastreadDP ="0_userdata.0.lastread"; var unreadDP ="0_userdata.0.unread"; var articles,maxdate,unread; on(rssFeedDP, function (obj) { unread=0; maxdate = getState(lastreadDP).val; try { var rssObj = JSON.parse(obj.state.val); articles = rssObj.articles; } catch { return; } articles.forEach(function(item){ if (maxdate<new Date(item.pubdate).getTime()) unread=unread+1; }); setState(unreadDP,unread); });
-
Hey vielen Dank
@oliverio sagte in Test Adapter rssfeed v0.0.x:
In den Datenpunkt lastread schreibst du dann den Zeitpunkt wann du gelesen hast als Timestamp mit
new Date().toTime()Wie mach ich das denn?
Kenn mich da nich so aus, bis jetzt nur ein bisschen mit Blockly gespielt immer.
-
@dicken sagte in Test Adapter rssfeed v0.0.x:
Wenn ich dann über die Navigation auf meine RSS View gehe, wird mein Datenpunkt wieder auf 0 gesetzt
Zeig mal den Code, wo du das umgesetzt hast
Mit Blockly kenn ich mich gar nicht aus. -
@oliverio sagte in Test Adapter rssfeed v0.0.x:
@dicken sagte in Test Adapter rssfeed v0.0.x:
Wenn ich dann über die Navigation auf meine RSS View gehe, wird mein Datenpunkt wieder auf 0 gesetzt
Zeig mal den Code, wo du das umgesetzt hast
Mit Blockly kenn ich mich gar nicht aus.Ne, ich wollte damit nur sagen dass ich normalerweise bis jetzt nur mit Blockly gearbeitet habe
Bin grad auf der Arbeit, aber ich habe deinen Code 1:1 in ein JS Script gepackt.var rssFeedDP = "rssfeed.0.tagesschau"; var lastreadDP ="0_userdata.0.lastread"; var unreadDP ="0_userdata.0.unread"; var articles,maxdate,unread; on(rssFeedDP, function (obj) { unread=0; maxdate = getState(lastreadDP).val; try { var rssObj = JSON.parse(obj.state.val); articles = rssObj.articles; } catch { return; } articles.forEach(function(item){ if (maxdate<new Date(item.pubdate).getTime()) unread=unread+1; }); setState(unreadDP,unread); });
Und die Datenpunkte als nummerisch angelegt.
Ich wollte nur wissen ob ich noch was zusätzlich machen muss, weil ich nicht verstanden hab, was du mit diesem Schritt meinst, bzw. was ich da machen soll:@oliverio sagte in Test Adapter rssfeed v0.0.x:
In den Datenpunkt lastread schreibst du dann den Zeitpunkt wann du gelesen hast als Timestamp mit
new Date().toTime() -
@dicken sagte in Test Adapter rssfeed v0.0.x:
Wenn ich dann über die Navigation auf meine RSS View gehe, wird mein Datenpunkt wieder auf 0 gesetzt
Anstatt beim lesen einen datenpunkt auf 0 zu stellen musst du den Zeitpunkt wann du gelesen hast in Millisekunden in den datenpunkt schreiben.
-
@oliverio sagte in Test Adapter rssfeed v0.0.x:
@dicken sagte in Test Adapter rssfeed v0.0.x:
Wenn ich dann über die Navigation auf meine RSS View gehe, wird mein Datenpunkt wieder auf 0 gesetzt
Anstatt beim lesen einen datenpunkt auf 0 zu stellen musst du den Zeitpunkt wann du gelesen hast in Millisekunden in den datenpunkt schreiben.
Ah also in den Buttoneinstellungen in der View muss das dann rein, werde ich nachher testen und berichten
-
@dicken sagte in Test Adapter rssfeed v0.0.x:
@oliverio sagte in Test Adapter rssfeed v0.0.x:
@dicken sagte in Test Adapter rssfeed v0.0.x:
Wenn ich dann über die Navigation auf meine RSS View gehe, wird mein Datenpunkt wieder auf 0 gesetzt
Anstatt beim lesen einen datenpunkt auf 0 zu stellen musst du den Zeitpunkt wann du gelesen hast in Millisekunden in den datenpunkt schreiben.
Ah also in den Buttoneinstellungen in der View muss das dann rein, werde ich nachher testen und berichten
Probier mal. In vis sind manche Dinge wieder etwas anders wie in blockly oder Skript
-
@oliverio sagte in Test Adapter rssfeed v0.0.x:
@dicken sagte in Test Adapter rssfeed v0.0.x:
@oliverio sagte in Test Adapter rssfeed v0.0.x:
@dicken sagte in Test Adapter rssfeed v0.0.x:
Wenn ich dann über die Navigation auf meine RSS View gehe, wird mein Datenpunkt wieder auf 0 gesetzt
Anstatt beim lesen einen datenpunkt auf 0 zu stellen musst du den Zeitpunkt wann du gelesen hast in Millisekunden in den datenpunkt schreiben.
Ah also in den Buttoneinstellungen in der View muss das dann rein, werde ich nachher testen und berichten
Probier mal. In vis sind manche Dinge wieder etwas anders wie in blockly oder Skript
Funktioniert leider nicht, wenn ich beim Button in der VIS wo ich den Wert übergebe "new Date().toTime()" eintrage, schreibt der auch 1:1 "new Date().toTime()" in den Datenpunkt lastread.
-
@dicken
Welches Widget verwendest du dafür genau? -
@oliverio sagte in Test Adapter rssfeed v0.0.x:
@dicken
Welches Widget verwendest du dafür genau?Den hier:
-
@dicken
Bitte einen Export davon machen -
@oliverio sagte in Test Adapter rssfeed v0.0.x:
@dicken
Bitte einen Export davon machen[{"tpl":"i-vis-universal","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"iUniversalWidgetType":"Navigation","iValueType":"boolean","iValueComparison":"equal","iStateResponseTime":"0","iStateResetValueTime":"0","iNavWait":"99","iPopUpBackground":"#666666","iPopUpPreventClickOutside":"","iPopUpShowTitle":"true","iPopUpTitle":"","iPopUpTitleColor":"#ffffff","iPopUpCloseBtnColor":"#dc2e2e","iPopUpWidth":"800px","iPopUpHeight":"500px","iPopUpPosition":"center","iPopUpCornerRadiusUL":"12","iPopUpCornerRadiusUR":"0","iPopUpCornerRadiusLR":"12","iPopUpCornerRadiusLL":"0","iPopUpShadowXOffset":"2","iPopUpShadowYOffset":"2","iPopUpShadowBlur":"2","iPopUpShadowSpread":"1","iPopUpShadowColor":"#111111","iButtonCol":"#537EA6","iButtonActive":"#3e5a74","iButtonColHover":"","iOpacityBack":"1","iCornerRadiusUL":"0","iCornerRadiusUR":"0","iCornerRadiusLR":"0","iCornerRadiusLL":"0","iContentFlexDirection":"vertical","iContentVertAlign":"iSpace-between","iContentOrder":"orderImgText","iOpacityCtn":"1","iTextColor":"#ffffff","iTextSize":"16","iTextAlign":"iCenter","iTextSpaceTop":"0","iTextSpaceBottom":"0","iTextSpaceLeft":"0","iTextSpaceRight":"0","iIconSize":"70","iImgAlign":"iCenter","iImgSpaceTop":"-5","iImgSpaceBottom":"-10","iImgSpaceLeft":"0","iImgSpaceRight":"0","iImgRotation":"0","iImgBlinkFalse":"0","iImgBlinkTrue":"0","iImgColorFalse":"","iImgColorTrue":"","iShadowXOffset":"0","iShadowYOffset":"0","iShadowBlur":"0","iShadowSpread":"0","iShadowColor":"#111111","iShadowColorActive":"#111111","iShadowColorHover":"","iShadowInnerXOffset":"0","iShadowInnerYOffset":"0","iShadowInnerBlur":"0","iShadowInnerSpread":"0","iShadowInnerColor":"#111111","iShadowInnerColorActive":"#111111","iShadowInnerColorHover":"","iBorderSize":"0","iBorderStyle":"none","iBorderColor":"#ffffff","iBorderColorActive":"#ffffff","iBorderColorHover":"","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"nav_view":"002_predb","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","views":["002_predb"],"iImageFalse":"/icons-mfd-svg/scene_scene.svg","iImageTrue":"/icons-mfd-svg/scene_scene.svg","iTextFalse":"RSS","iTextTrue":"RSS","iImgColorInvertFalse":true,"iImgColorInvertTrue":true,"value":"new Date().toTime() ","oid":"0_userdata.0.rss.movieinfos_lastread"},"style":{"left":"152px","top":"684px","width":"110px","height":"87px"},"widgetSet":"vis-inventwo"}]
-
@dicken sagte in Test Adapter rssfeed v0.0.x:
@oliverio sagte in Test Adapter rssfeed v0.0.x:
@dicken
Bitte einen Export davon machen[{"tpl":"i-vis-universal","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"iUniversalWidgetType":"Navigation","iValueType":"boolean","iValueComparison":"equal","iStateResponseTime":"0","iStateResetValueTime":"0","iNavWait":"99","iPopUpBackground":"#666666","iPopUpPreventClickOutside":"","iPopUpShowTitle":"true","iPopUpTitle":"","iPopUpTitleColor":"#ffffff","iPopUpCloseBtnColor":"#dc2e2e","iPopUpWidth":"800px","iPopUpHeight":"500px","iPopUpPosition":"center","iPopUpCornerRadiusUL":"12","iPopUpCornerRadiusUR":"0","iPopUpCornerRadiusLR":"12","iPopUpCornerRadiusLL":"0","iPopUpShadowXOffset":"2","iPopUpShadowYOffset":"2","iPopUpShadowBlur":"2","iPopUpShadowSpread":"1","iPopUpShadowColor":"#111111","iButtonCol":"#537EA6","iButtonActive":"#3e5a74","iButtonColHover":"","iOpacityBack":"1","iCornerRadiusUL":"0","iCornerRadiusUR":"0","iCornerRadiusLR":"0","iCornerRadiusLL":"0","iContentFlexDirection":"vertical","iContentVertAlign":"iSpace-between","iContentOrder":"orderImgText","iOpacityCtn":"1","iTextColor":"#ffffff","iTextSize":"16","iTextAlign":"iCenter","iTextSpaceTop":"0","iTextSpaceBottom":"0","iTextSpaceLeft":"0","iTextSpaceRight":"0","iIconSize":"70","iImgAlign":"iCenter","iImgSpaceTop":"-5","iImgSpaceBottom":"-10","iImgSpaceLeft":"0","iImgSpaceRight":"0","iImgRotation":"0","iImgBlinkFalse":"0","iImgBlinkTrue":"0","iImgColorFalse":"","iImgColorTrue":"","iShadowXOffset":"0","iShadowYOffset":"0","iShadowBlur":"0","iShadowSpread":"0","iShadowColor":"#111111","iShadowColorActive":"#111111","iShadowColorHover":"","iShadowInnerXOffset":"0","iShadowInnerYOffset":"0","iShadowInnerBlur":"0","iShadowInnerSpread":"0","iShadowInnerColor":"#111111","iShadowInnerColorActive":"#111111","iShadowInnerColorHover":"","iBorderSize":"0","iBorderStyle":"none","iBorderColor":"#ffffff","iBorderColorActive":"#ffffff","iBorderColorHover":"","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"nav_view":"002_predb","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","views":["002_predb"],"iImageFalse":"/icons-mfd-svg/scene_scene.svg","iImageTrue":"/icons-mfd-svg/scene_scene.svg","iTextFalse":"RSS","iTextTrue":"RSS","iImgColorInvertFalse":true,"iImgColorInvertTrue":true,"value":"new Date().toTime() ","oid":"0_userdata.0.rss.movieinfos_lastread"},"style":{"left":"152px","top":"684px","width":"110px","height":"87px"},"widgetSet":"vis-inventwo"}]
Bei Wert muss du so etwas dann eintragen.
Den Datenpunktnamen noch entsprechend anpassen. Das a: ohne leerzeichen danach muss so bleiben
allerdings dient dieser nur als Dummy, so das man im 2.Argument den Zeitwert ermitteln kann. Das erfordert leider die Notation von vis.{a:0_userdata.0.lastread;new Date().getTime()}
-
Hmm?? Sorry ich versteh es leider nicht
Was trag ich jetzt bei Object-ID im Widget und was bei Wert im Widget ein.habe das jetzt bei Wert eingefügt:
{a:0_userdata.0.rss.movieinfos_lastread;new Date().getTime()}
Aber das bringt keine Veränderung im Datenpunkt bei klicken. Jetzt schreibt er garnichts neues mehr in den Datenpunkt.
-
@dicken sagte in Test Adapter rssfeed v0.0.x:
Hmm?? Sorry ich versteh es leider nicht
Was trag ich jetzt bei Object-ID im Widget und was bei Wert im Widget ein.habe das jetzt bei Wert eingefügt:
{a:0_userdata.0.rss.movieinfos_lastread;new Date().getTime()}
Aber das bringt keine Veränderung im Datenpunkt bei klicken. Jetzt schreibt er garnichts neues mehr in den Datenpunkt.
Objectid lässt du wie es war.
Schau mal in die datenpunkt Einstellungen nach.
Bei mir erzeugt Iobroker automatisch immer
Max 100
Und als Einheit ein %
Ich finde das dafür ungünstig.
Lösche beide Einstellungen über den roten Müll Knopf auf der rechten Seite -
Ok, so jetzt wird eine Zahl in den unread Datenpunkt geschrieben beim Buttonklick, zbsp: "1616625483042"
Jetzt muss ich vermutlich mal morgen Abwarten ob es bis dahin einen neuen RSS Beitrag gab um es zu testen.
Viele Dank für deine Ausdauer Werde mich dann melden
Es sei denn du sagst jetzt ich muss noch was ändern, weil die Zahl im unread Datenpunkt so garnicht erwünscht ist
-
@dicken sagte in Test Adapter rssfeed v0.0.x:
Ok, so jetzt wird eine Zahl in den unread Datenpunkt geschrieben beim Buttonklick, zbsp: "1616625483042"
Jetzt muss ich vermutlich mal morgen Abwarten ob es bis dahin einen neuen RSS Beitrag gab um es zu testen.
Viele Dank für deine Ausdauer Werde mich dann melden
Es sei denn du sagst jetzt ich muss noch was ändern, weil die Zahl im unread Datenpunkt so garnicht erwünscht ist
Also es steht noch die letzte Zahl der ungelesenen Artikel drin?
Dann müssen wir im das Skript gleichzeitig triggern das unread auch gleich noch berechnet wird.
Dazu muss man im Skript beim on noch zusätzlich den lastread datenpunkt eintragen.
Das schaue ich morgen mal nach wie man da 2 datenpunkte einträgt.
Wahrscheinlich per Array -
-
@dicken sagte in Test Adapter rssfeed v0.0.x:
Ach sorry bin durcheinander gekommen,
lastread = 1616625483042" nach klick
unread = 0Also passt nun alles?
-
Das werde ich wohl erst sehen, wenn ein neuer RSS Beitrag kommt. Denke morgen früh sollte einer da sein. Werde aber dann bescheid geben.
Sollte alles so laufen wie gewollt, würde ich das Workaround auch nochmal in einem Beitrag zusammen fassen, damit andere es auch verwenden können, ohne sich an den zich Beiträgen hier langhangeln zu müssen.
Vielen Dank auf jedenfall schonmal/nochmal für deine Geduld und Hilfe