Node Red - Hilfe-/Frage-/Ideen-/Austausch - Thread

Nimm den RBE-Node. Dessen Hauptfunktion ist Nachrichten nur dann durchzulassen, wenn sich der Payload ändert.

Die Ändern sich ja, da komm ich mit dem RBE nicht weit :smiley:

Erst ist ein Gerät nicht verfügbar und dann zählt das innerhalb von Sekunden hoch bis 34 Geräte :cry:

Du kannst den auch so einstellen, dass sich der Wert um x verändern muss. Hilft das vielleicht? Kommen die Werte in einem festen Intervall oder unregelmäßig?

Die Werte kommen unregelmäßig und es sind recht groß. Hier mal ein Ausschnitt:

14 Geräte sind nicht erreichbar - (Comet DECT #12) und FRITZ!DECT 200 #6 und (Comet DECT #15) und (Comet DECT #19) und (Comet DECT #17) und (Comet DECT #16) und (FRITZ!DECT 200 #8) und (Comet DECT #11) und (Comet DECT #21) und (FRITZ!Powerline 546E) und (FRITZ!DECT 200 #1) und (FRITZ!Powerline 546E) und (FRITZ!Powerline546E) und (Comet DECT #20) ausserdem 0 Geräte werden aktualisiert -

das fängt mit 1-3 Geräten an und zählt dann bis 35, alles in der selben Minute und dann ist der Spuk vorbei. Ausgefallen ist aber keines der Geräte.

Edit2: Ich habe da glaube ich was gefunden: node-red-contrib-stoptimer-varidelay. Hällt für eine bestimmte Zeit die Ausgaben zurück und gibt dann nur die Letzte aus. Müsste erstmal so funktionieren…

Trotzdem Danke…

Hallo @JayJayX,
ich sehe, Du benutzt auch den Flow für die Ausfallüberwachung. Ich kenne das Problem auch von meiner Fritzbox Anbindung (~1 Mal pro Woche). Ich habe es aber bisher ignoriert.
Eigentlich müsste man irgendwie auslesen, dass der Ausfall alle Geräte der Fritzbox-Integration betrifft und dann eine AUsnahme im Flow machen (denke ich). Leider weiß ich nicht, man die Integration zu jedem Gerät auslesen kann.
Solltest Du eine Lösung haben, sag bitte mal Bescheid :wink:

Das scheint ja so zu sein, dass dies von den Ereignissen getriggert ist. Kann man das so umstellen, dass man das über einen Inject-Node Zeit getriggert macht? Dann kann man den Intervall nach eigenem Gusto einstellen. Dahinter den RBE-Node, der dann nur noch Änderungen durch lässt.
Ich hatte das selbe Problem bei iobroker, der iobroker-in ist von dem Datenpunkt getriggert und da kommen im Zweifel mehrere Nachrichten jede Sekunde. Hatte das dann auf iobroker-get umgestellt, wo ich mir den Intervall selber einstellen kann.

Puh, da komm ich nicht mehr mit @SteffenTM, bin mal froh, dass ich mir einfache Sachen zusammenbasteln kann :smiley: Vielleicht weiß @Micha da mehr, das Urskript ist ja von ihm…

@holger.tangermann
Also bei mir ist das mindestens einmal am Tag, kurz nach Mitternacht und dann gefühlt bei hoher Belastung (Netzlast) der Fritzbox… Den Trockentest hat node-red-contrib-stoptimer-varidelay schon bestanden, jetzt muss es sich nur noch im Betrieb bewähren, was es ja oft dann nicht tut :smiley:

Ich glaube @SteffenTM meint diesen Unterschied:

Oben stellst du das Intervall ein, wie du magst, unten kommt es durch iobroker gesteuert, immer wenn sich ein Wert ändert.

1 „Gefällt mir“

Genau so habe ich das gemeint! :+1:

1 „Gefällt mir“

Hatte das eben gerade bei mir auf GET geändert, da meine Werte eben nicht kamen, wenn ich sie brauchte. Passte gerade gut :wink:

Hallo zusammen,

ich hoffe, ich bin im richtigen Thread für meine Frage:

Gibt es im Node „virtualHomee“ ein Attribut, das es mir erlaubt dem Master-Homee zu melden, dass das Gerät nicht verfügbar ist.

Ich habe eine TP-Link Steckdose integriert und würde diese gerne in der Homee Oberfläche ausgrauen, wenn ich in Node Red erkenne, dass sie nicht mehr erreichbar ist.

Das einzige, was ich bisher in diesem Kontext gefunden habe ist das Attribut „Verbindungsqualität“, dort kann ich aber nur Werte von 1-4 übergeben, was aber leider nur schwach bis stark entspricht. Einen Verbindungsabbruch kann ich so nicht übergeben.

Viele Grüße :blush:

@Micha Hallo Micha, ich bräuchte nochmal deine Hilfe. Wie muss diese einfache function node mit der neuen Syntax aussehen ? Ich bekomme das nicht hin :frowning:

node.send({payload:{"id":101,"value":parseFloat(msg.payload)}})

Ich übernehme das mal eben. :wink:

Der Payload muss so aussehen:
node.send ({payload:{„attribute“:{„id“:1451,„value“:Aussentemp}}});

Du musst also einfach die „attribute“: einfügen.

Yes!!! :slight_smile: Tausend Dank!

Immer gerne.

Schau dir mal Alarm Fehlfunktion (70) an. Bei einem Fehler übergibst du Value = 1 und im data kannst du den Fehler als Text übergeben. Das sieht dann auch recht schick in der App aus mit dem Alarm und dem Text.

1 „Gefällt mir“

Dein Gerät muss aber auch einen Status „available“, „alive“ o.ä. senden.
Das übergibst Du dann als „state“ und nicht als attribute:

1 für verfügbar, 2 für nicht verfügbar.
Im homee Device selber brauchst Du nichts mehr.

1 „Gefällt mir“

Vielen Dank, ich werd’s morgen testen :+1:

Guten Morgen @pino73 und @whoami,

vielen Dank für eure Vorschläge! Das war genau das, was ich gesucht habe! Das Einzige, was noch nicht funktioniert ist die Anzeige des Textes im Feld „data“ aus @whoami’s Vorschlag. Aber zumindest das Ausrufezeichen kommt in der App :+1:

Auch wenn die Programmierung bestimmt noch nicht schön (aber stabil funktioniert) ist, hier mein Flow, falls jemand in Zukunft die gleiche Frage hat:

[{"id":"7dcd1928.ca34b8","type":"tab","label":"Export TP-Link","disabled":false,"info":""},{"id":"214e7018.68cf9","type":"kasa","z":"7dcd1928.ca34b8","name":"TP Link 110 - HS100(EU)","device":"192.168.2.116","interval":"60000","eventInterval":"0","payload":"getInfo","payloadType":"info","debug":false,"x":410,"y":400,"wires":[["26d5ea80.0c2dd6"]]},{"id":"26d5ea80.0c2dd6","type":"json","z":"7dcd1928.ca34b8","name":"","property":"payload","action":"","pretty":false,"x":590,"y":400,"wires":[["9ced8137.4f43b","ae915749.62f818"]]},{"id":"9ced8137.4f43b","type":"switch","z":"7dcd1928.ca34b8","name":"","property":"payload","propertyType":"msg","rules":[{"t":"cont","v":"\"powerOn\":true,\"state\":true","vt":"str"},{"t":"cont","v":"\"relay_state\":1","vt":"str"},{"t":"cont","v":"\"powerOn\":false,\"state\":false","vt":"str"},{"t":"cont","v":"\"relay_state\":0","vt":"str"}],"checkall":"true","repair":false,"outputs":4,"x":730,"y":400,"wires":[["72c0c392.7f2afc"],["72c0c392.7f2afc"],["1bdf2bec.c85d54"],["1bdf2bec.c85d54"]]},{"id":"72c0c392.7f2afc","type":"change","z":"7dcd1928.ca34b8","name":"true","rules":[{"t":"set","p":"payload","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":870,"y":380,"wires":[["13b86133.1a35ff"]]},{"id":"1bdf2bec.c85d54","type":"change","z":"7dcd1928.ca34b8","name":"false","rules":[{"t":"set","p":"payload","pt":"msg","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":870,"y":420,"wires":[["13b86133.1a35ff"]]},{"id":"1d45eee9.971e41","type":"ui_switch","z":"7dcd1928.ca34b8","name":"","label":"Schalter","tooltip":"","group":"b7f47402.07aa68","order":4,"width":0,"height":0,"passthru":false,"decouple":"true","topic":"","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":1180,"y":480,"wires":[["64d08a13.fae954"]]},{"id":"ce55c591.cfb1e8","type":"link in","z":"7dcd1928.ca34b8","name":"","links":["7ff59468.3b574c","64d08a13.fae954","ab18f75d.e49288"],"x":215,"y":400,"wires":[["214e7018.68cf9"]]},{"id":"592afb15.1c48a4","type":"link out","z":"7dcd1928.ca34b8","name":"","links":["93729b3.dcc7e68","30ccecf7.7cb4d4","fb6fb478.4e7598"],"x":1275,"y":400,"wires":[]},{"id":"34559b47.218734","type":"inject","z":"7dcd1928.ca34b8","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":"1","topic":"","payload":"startPowerEvents","payloadType":"str","x":150,"y":320,"wires":[["214e7018.68cf9"]]},{"id":"64d08a13.fae954","type":"link out","z":"7dcd1928.ca34b8","name":"","links":["ce55c591.cfb1e8"],"x":1275,"y":480,"wires":[]},{"id":"ee7e597e.084288","type":"inject","z":"7dcd1928.ca34b8","name":"","props":[{"p":"payload"}],"repeat":"60","crontab":"","once":true,"onceDelay":"2","topic":"","payload":"getInfo","payloadType":"str","x":180,"y":560,"wires":[["214e7018.68cf9","19a1f7c9.b5c0c8"]]},{"id":"13b86133.1a35ff","type":"rbe","z":"7dcd1928.ca34b8","name":"","func":"rbei","gap":"","start":"","inout":"out","property":"payload","x":1010,"y":400,"wires":[["592afb15.1c48a4","1d45eee9.971e41"]]},{"id":"19a1f7c9.b5c0c8","type":"function","z":"7dcd1928.ca34b8","name":"Watchdog","func":"//flow.set(\"x\",y), flow.get(\"x\")\n\nif (!flow.get(\"watchdog\")){\n    flow.set(\"watchdog\",0);\n}\nflow.set(\"watchdog\",flow.get(\"watchdog\")+1);\n\nif (flow.get(\"watchdog\")>1){\n    enable = {enabled: false};\n    state = {payload: {\"state\":2}};\n    alarm = {payload: {\"attribute\":{\"id\":2,\"value\":1,\"data\":\"Freitext\"}}};\n}\nelse\n{\n    enable = {enabled: true};\n    state = {payload: {\"state\":1}};\n    alarm = {payload: {\"attribute\":{\"id\":2,\"value\":0}}};\n}\nreturn [enable, [state, alarm]];","outputs":2,"noerr":0,"initialize":"","finalize":"","x":410,"y":560,"wires":[["f6836883.70a3f8"],["70a39651.f267b8","cd252e96.3e016"]]},{"id":"ae915749.62f818","type":"change","z":"7dcd1928.ca34b8","name":"Watchdog reset","rules":[{"t":"set","p":"watchdog","pt":"flow","to":"0","tot":"num"},{"t":"set","p":"payload","pt":"msg","to":"watchdog","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":760,"y":480,"wires":[[]]},{"id":"f6836883.70a3f8","type":"rbe","z":"7dcd1928.ca34b8","name":"","func":"rbei","gap":"","start":"","inout":"out","property":"payload","x":1010,"y":560,"wires":[["1d45eee9.971e41"]]},{"id":"70a39651.f267b8","type":"link out","z":"7dcd1928.ca34b8","name":"TP-Link Fehler","links":["f72f3f5d.8d06e","256fb2eb.0c43de"],"x":595,"y":600,"wires":[]},{"id":"cd252e96.3e016","type":"debug","z":"7dcd1928.ca34b8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":660,"y":660,"wires":[]},{"id":"1974fb1b.0dd225","type":"homeeDevice","z":"7dcd1928.ca34b8","virtual-homee":"","name":"TP-Link Steckdose","nodeId":"1","showNodeId":true,"profile":"10","icon":"nodeicon_plug","attributes":[{"type":1,"state":1,"instance":0,"minimum":0,"maximum":1,"current_value":0,"target_value":0,"last_value":0,"data":"","name":"","unit":"","step_value":1,"editable":1,"last_changed":1612862170,"changed_by":1,"changed_by_id":0,"based_on":1,"options":[],"id":1,"node_id":1},{"type":70,"state":1,"instance":0,"minimum":0,"maximum":1,"current_value":0,"target_value":0,"last_value":0,"data":"","name":"","unit":"n%2Fa","step_value":1,"editable":0,"last_changed":1613545418,"changed_by":1,"changed_by_id":0,"based_on":1,"options":[],"id":2,"node_id":1}],"statusTemplate":"","x":580,"y":180,"wires":[["bf9b8a27.a77da8"]]},{"id":"bf9b8a27.a77da8","type":"json","z":"7dcd1928.ca34b8","name":"","property":"payload","action":"","pretty":false,"x":770,"y":180,"wires":[["9d2339e5.58b208"]]},{"id":"9d2339e5.58b208","type":"switch","z":"7dcd1928.ca34b8","name":"","property":"payload","propertyType":"msg","rules":[{"t":"cont","v":"targetValue\":1","vt":"str"},{"t":"cont","v":"\"targetValue\":0","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":890,"y":180,"wires":[["efb24d9a.262bf"],["5afb8251.7aa32c"]]},{"id":"efb24d9a.262bf","type":"change","z":"7dcd1928.ca34b8","name":"true","rules":[{"t":"set","p":"payload","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":1030,"y":160,"wires":[["ab18f75d.e49288"]]},{"id":"5afb8251.7aa32c","type":"change","z":"7dcd1928.ca34b8","name":"false","rules":[{"t":"set","p":"payload","pt":"msg","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":1030,"y":200,"wires":[["ab18f75d.e49288"]]},{"id":"56ddb61.432e548","type":"switch","z":"7dcd1928.ca34b8","name":"","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":230,"y":160,"wires":[["698cf26c.cb7c2c"],["6c53d201.f946ec"]]},{"id":"698cf26c.cb7c2c","type":"change","z":"7dcd1928.ca34b8","name":"true","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"attribute\":{\"id\":1,\"value\":1}}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":370,"y":140,"wires":[["1974fb1b.0dd225"]]},{"id":"6c53d201.f946ec","type":"change","z":"7dcd1928.ca34b8","name":"false","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"attribute\":{\"id\":1,\"value\":0}}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":370,"y":180,"wires":[["1974fb1b.0dd225"]]},{"id":"ab18f75d.e49288","type":"link out","z":"7dcd1928.ca34b8","name":"","links":["afb02a64.f519b8","5bd13fd5.51079","30ccecf7.7cb4d4","ce55c591.cfb1e8"],"x":1135,"y":180,"wires":[]},{"id":"fb6fb478.4e7598","type":"link in","z":"7dcd1928.ca34b8","name":"","links":["80da57ec.b0c858","89b0ca4b.8d0958","88066839.061488","592afb15.1c48a4"],"x":135,"y":160,"wires":[["56ddb61.432e548"]]},{"id":"256fb2eb.0c43de","type":"link in","z":"7dcd1928.ca34b8","name":"","links":["3878d032.ff23c","70a39651.f267b8"],"x":395,"y":220,"wires":[["1974fb1b.0dd225"]]},{"id":"b7f47402.07aa68","type":"ui_group","name":"TP-Link","tab":"7eefb52.12b584c","order":2,"disp":true,"width":"6","collapse":false},{"id":"7eefb52.12b584c","type":"ui_tab","name":"Home","icon":"dashboard","disabled":false,"hidden":false}]

Wenn ich das ganze in ein ansehnliches Format gebracht habe, aktualsiere ich den Flow nochmal.

Wie sieht das Json aus, welches den Alarm setzt? Kannst es mal aus dem debugger rauskopieren und hier reinkopieren?