Dashboard scrollbarer Text funktioniert nur wenn Tab geöffnet

Node-RED als CCU3/RaspberryMatic Addon, WebApp, HomeKit, ...

Moderator: Co-Administratoren

Antworten
ersthelfer
Beiträge: 54
Registriert: 04.06.2018, 17:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 3 Mal

Dashboard scrollbarer Text funktioniert nur wenn Tab geöffnet

Beitrag von ersthelfer » 17.12.2020, 12:02

Hallo,

ich hab in meinem Dashboard eine Loganzeige in Form eines scrollbaren Textes angelegt
Dash1.PNG
Dash1.PNG (20.3 KiB) 913 mal betrachtet
funktioniert soweit auch ganz gut, wenn der Tab geöffnet ist und eine neue Nachricht eintrifft.
Wird der Tab jedoch erst geöffnet, wenn die letzte Nachricht bereits eingetroffen ist, wird der Tab erst richtig angezeigt wenn eine neue Nachricht eingetragen wird.
Dash2.PNG
Dash2.PNG (5.15 KiB) 913 mal betrachtet
Auch ein "aktualisieren" im Web-Browser hilft dann nicht :(

Was muss ich tun, damit die Seite korrekt aufgebaut wird?

Vielen Dank für Eure Hilfe....
Dateianhänge
flows.txt
(2.64 KiB) 36-mal heruntergeladen

ersthelfer
Beiträge: 54
Registriert: 04.06.2018, 17:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 3 Mal

Re: Dashboard scrollbarer Text funktioniert nur wenn Tab geöffnet

Beitrag von ersthelfer » 24.12.2020, 11:24

Das Problem ist, dass der Text nur aktualisiert wird, wenn neue Nachrichten einlaufen.
Ist das nicht der Fall, wird bis dahin auch kein Text angezeigt :(

Als Notlösung speichere ich jetzt die Nachrichten und habe ich jetzt einen Reload - Button eingebaut um das Ganze zu triggern.
Ist nicht ganz so schön, aber funktioniert.

Kann man vom Dashboard Nachrichten bekommen, wenn ein bestimmter Tab aufgerufen wird?
Dann könnte ich das als Reload-Signal nutzen.

Vielen Dank

rstuck
Beiträge: 94
Registriert: 17.11.2018, 19:53
Hat sich bedankt: 5 Mal
Danksagung erhalten: 16 Mal

Re: Dashboard scrollbarer Text funktioniert nur wenn Tab geöffnet

Beitrag von rstuck » 24.12.2020, 12:12

Das geht mit der Dashboard Node ui control.

ersthelfer
Beiträge: 54
Registriert: 04.06.2018, 17:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 3 Mal

Re: Dashboard scrollbarer Text funktioniert nur wenn Tab geöffnet

Beitrag von ersthelfer » 24.12.2020, 13:13

Danke, damit hat es geklappt.

Entstanden ist daraus eine Log Seite.

Wer möchte kann den Flow gern verwenden. Benötigt wird "node-red-contrib-ring-buffer"
Dash1.PNG
Dash1.PNG (23.84 KiB) 746 mal betrachtet
und liefert 2 Log-Listen
Dash2.PNG
Dash2.PNG (19.59 KiB) 746 mal betrachtet
Alles was im topic "Error" oder "Alarm" enthält landet in der Error Liste, der Rest in der Info Liste.

Automatisch wird eine Uhrzeit hinzu gefügt. Gelistet wird dann "Uhrzeit", topic, payload

Vielen Dank für Eure Hilfe...

Code: Alles auswählen

[{"id":"4c57e8ea.6685f8","type":"template","z":"d2925832.343ec8","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"<!DOCTYPE html>\n<html>\n    <head></head>\n    <body>\n        <ul>\n            {{#payload}}\n                <li>{{time}}, {{event}}</li>\n            {{/payload}}\n        </ul>\n</body>\n</html>","x":1060,"y":180,"wires":[["f394edc1.ce6ad"]]},{"id":"19a0bd4b.6245e3","type":"ui_template","z":"d2925832.343ec8","group":"c1be1683.223588","name":"Info","order":1,"width":20,"height":5,"format":"<style>\n\n    #tex1 {\n        font-weight:bolder;\n        font-family: Menlo, monospace;\n        font-size: 5;\n        letter-spacing: 4px;\n        color: black;\n    }\n    \n</style>\n<div ng-bind-html=\"msg.payload\" id=\"tex1\"></div>\n","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":false,"templateScope":"local","x":1450,"y":180,"wires":[[]]},{"id":"3d7ce2d1.d9be2e","type":"ring-buffer","z":"d2925832.343ec8","name":"","capacity":"256","order":"new-to-old","sendOnlyIfFull":false,"pushAfterClear":false,"extra":false,"perTopic":false,"x":880,"y":180,"wires":[["4c57e8ea.6685f8"]]},{"id":"c6c0bd4f.4f0bb","type":"function","z":"d2925832.343ec8","name":"build String","func":"let Ereignis = msg.payload;\nlet Topic = msg.topic;\n\nvar now = new Date();\n\nvar hour = now.getHours();\nvar minute = now.getMinutes();\nvar second = now.getSeconds();\n\nif(hour.toString().length == 1) \n    hour = '0'+hour;\n\nif(minute.toString().length == 1) \n    minute = '0'+minute;\n\nif(second.toString().length == 1) \n    second = '0'+second;\n\n\nmsg.payload = {\"time\" : hour+':'+minute+':'+second, \"event\" : Topic+', '+Ereignis};\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":410,"y":160,"wires":[["47a1fdd1.47fc54"]]},{"id":"b748bd72.b5e34","type":"comment","z":"d2925832.343ec8","name":"System Log schreiben","info":"","x":320,"y":120,"wires":[]},{"id":"8904ce05.c741","type":"ring-buffer","z":"d2925832.343ec8","name":"","capacity":"256","order":"new-to-old","sendOnlyIfFull":false,"pushAfterClear":false,"extra":false,"perTopic":false,"x":880,"y":60,"wires":[["953591e1.7db2b"]]},{"id":"953591e1.7db2b","type":"template","z":"d2925832.343ec8","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"<!DOCTYPE html>\n<html>\n    <head></head>\n    <body>\n        <ul>\n            {{#payload}}\n                <li>{{time}}, {{event}}</li>\n            {{/payload}}\n        </ul>\n</body>\n</html>","x":1060,"y":60,"wires":[["dc95d6d7.41dce8"]]},{"id":"be51c345.02d37","type":"ui_template","z":"d2925832.343ec8","group":"90dbfbee.4d75c8","name":"Error","order":1,"width":"20","height":"5","format":"<style>\n\n    #tex1 {\n        font-weight:bolder;\n        font-family: Menlo, monospace;\n        font-size: 5;\n        letter-spacing: 4px;\n        color: black;\n    }\n    \n</style>\n<div ng-bind-html=\"msg.payload\" id=\"tex1\"></div>\n","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":false,"templateScope":"local","x":1450,"y":60,"wires":[[]]},{"id":"47a1fdd1.47fc54","type":"switch","z":"d2925832.343ec8","name":"Error / Alarm?","property":"topic","propertyType":"msg","rules":[{"t":"cont","v":"Error","vt":"str"},{"t":"cont","v":"Alarm","vt":"str"},{"t":"else"}],"checkall":"false","repair":false,"outputs":3,"x":640,"y":160,"wires":[["8904ce05.c741"],["8904ce05.c741"],["3d7ce2d1.d9be2e"]],"outputLabels":["Error","Alarm","sonst"]},{"id":"dc95d6d7.41dce8","type":"function","z":"d2925832.343ec8","name":"Meldungen buffern","func":"// Meldungen buffern, damit ein Reload durchgeführt werden kann,\n// falls der Sys-Log Tab nicht aktiv war, wenn Meldungen auflaufen.\n//\n// Anzeige wird nur aktualisiert, wenn Nachrichten einlaufen.\n\nvar Text=context.get('Text') ;\nif (typeof Text==\"undefined\")\nText=\"Keine Meldungen\";\n\n// Benötigte Werte aus den einzelnen Eingangsmeassages extrahieren\n// und abspeichern\nswitch (msg.topic) {\n  case 'Reload':\n    msg.payload = Text;\n    break;\n  default:\n    Text = msg.payload;\n    context.set('Text',Text); // Wert speichern\n    break;\n}\n\n\nreturn msg;\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1270,"y":60,"wires":[["be51c345.02d37"]]},{"id":"f394edc1.ce6ad","type":"function","z":"d2925832.343ec8","name":"Meldungen buffern","func":"// Meldungen buffern, damit ein Reload durchgeführt werden kann,\n// falls der Sys-Log Tab nicht aktiv war, wenn Meldungen auflaufen.\n//\n// Anzeige wird nur aktualisiert, wenn Nachrichten einlaufen.\n\nvar Text=context.get('Text') ;\nif (typeof Text==\"undefined\")\nText=\"Keine Meldungen\";\n\n// Benötigte Werte aus den einzelnen Eingangsmeassages extrahieren\n// und abspeichern\nswitch (msg.topic) {\n  case 'Reload':\n    msg.payload = Text;\n    break;\n  default:\n    Text = msg.payload;\n    context.set('Text',Text); // Wert speichern\n    break;\n}\n\n\nreturn msg;\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1270,"y":180,"wires":[["19a0bd4b.6245e3"]]},{"id":"dff2f5ea.8a4458","type":"ui_ui_control","z":"d2925832.343ec8","name":"","events":"all","x":900,"y":120,"wires":[["fbc9fef9.90a5c"]]},{"id":"fbc9fef9.90a5c","type":"change","z":"d2925832.343ec8","name":"topic Reload","rules":[{"t":"set","p":"topic","pt":"msg","to":"Reload","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1070,"y":120,"wires":[["dc95d6d7.41dce8","f394edc1.ce6ad"]]},{"id":"95323502.871fd8","type":"comment","z":"d2925832.343ec8","name":"Reload bei Tab Change","info":"","x":1280,"y":120,"wires":[]},{"id":"c1be1683.223588","type":"ui_group","name":"Info","tab":"ba447e0f.ac1b9","order":2,"disp":true,"width":"20","collapse":true},{"id":"90dbfbee.4d75c8","type":"ui_group","name":"Error","tab":"ba447e0f.ac1b9","order":1,"disp":true,"width":20,"collapse":true},{"id":"ba447e0f.ac1b9","type":"ui_tab","name":"System-Log","icon":"fa-file","order":16,"disabled":false,"hidden":false}]

ersthelfer
Beiträge: 54
Registriert: 04.06.2018, 17:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 3 Mal

Re: Dashboard scrollbarer Text funktioniert nur wenn Tab geöffnet

Beitrag von ersthelfer » 23.03.2021, 09:33

Hallo,

ich habe noch ein kleines Problem gefunden.

Ich habe noch einen Inject-Node eingebaut, um die Liste zu löschen. Dazu sende ich "msg.clearAll" an den ring buffer.
Dieser wird auch gelöscht, aber in der Anzeige werden weiterhin die alten Einträge angezeigt :shock:

Kann mir jemand sagen, was ich noch tun muss, damit auch die Anzeige "gelöscht" wird?
Ein zusätzlicher Aufruf vom topic Reload hat nicht geholfen :(

Vielen Dank.....

Antworten

Zurück zu „RedMatic“