Seite 1 von 2

Probleme mit der combine-logic

Verfasst: 14.06.2019, 22:16
von tloeffel
Hallo Zusammen,

ich tüftele so ein bisschen herum und komme an dieser Stelle nicht weiter.

Fallbeschreibung:
"Nor", "Oder" und "und" sollen verschaltet werden. Aber es funktioniert nicht. Vor allem bei einem Deploy passieren komische Sachen.

Fall 1:
190614_Logic1.PNG
190614_Logic1.PNG (17.88 KiB) 1830 mal betrachtet


Auswirkungen:
Logic "and" schaltet nach Deploy immer durch (siehe unten). Sobald ich den SEC-SC bediene schaltet das "und" wieder normal.
190614_Logic 2.PNG
190614_Logic 2.PNG (11.18 KiB) 1830 mal betrachtet

Code: Alles auswählen

[{"id":"e577694f.206a38","type":"comment","z":"323b3290.61ed06","name":"Markiese bei Wind und Regen einfahren","info":"","x":247.75,"y":882.75,"wires":[]},{"id":"d7cf556.beb0f28","type":"ccu-value","z":"323b3290.61ed06","name":"","iface":"HmIP-RF","channel":"00185709ACB1F4:1 Terr-SWO-PR mSender","datapoint":"RAINING","mode":"","start":true,"change":true,"cache":true,"queue":false,"on":0,"onType":"undefined","ramp":0,"rampType":"undefined","working":false,"ccuConfig":"38263145.35ea0e","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":264.3666687011719,"y":993.75,"wires":[["a9de3a62.26f1b"]]},{"id":"65e2cbb4.3cfdcc","type":"ccu-value","z":"323b3290.61ed06","name":"","iface":"BidCos-RF","channel":"OEQ0169990:1 Terr-Sec-SC-2-Markiese:1","datapoint":"STATE","mode":"","start":true,"change":true,"cache":true,"queue":false,"on":0,"onType":"undefined","ramp":0,"rampType":"undefined","working":false,"ccuConfig":"38263145.35ea0e","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":281.3666687011719,"y":1043.75,"wires":[["a9de3a62.26f1b"]]},{"id":"a9de3a62.26f1b","type":"combine-logic","z":"323b3290.61ed06","name":"","topic":"","operator":"or","defer":250,"timeout":0,"distinction":"topic","x":486.36669921875,"y":1015.25,"wires":[["8015ee03.f15158"]]},{"id":"8015ee03.f15158","type":"combine-logic","z":"323b3290.61ed06","name":"","topic":"","operator":"and","defer":250,"timeout":0,"distinction":"topic","x":785.36669921875,"y":1015.25,"wires":[["8811dd57.bd8978"]]},{"id":"5eb10e9c.3073e","type":"ccu-sysvar","z":"323b3290.61ed06","name":"CCU2_Reboot","ccuConfig":"38263145.35ea0e","topic":"ReGaHSS/${Name}","change":true,"cache":true,"x":254.36666870117188,"y":938.75,"wires":[["316e8d16.57b88a"]]},{"id":"8811dd57.bd8978","type":"debug","z":"323b3290.61ed06","name":"Ergebnis","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":979.36669921875,"y":1014.75,"wires":[]},{"id":"316e8d16.57b88a","type":"combine-logic","z":"323b3290.61ed06","name":"","topic":"","operator":"nor","defer":250,"timeout":0,"distinction":"topic","x":483.75,"y":938.75,"wires":[["8015ee03.f15158"]]},{"id":"38263145.35ea0e","type":"ccu-connection","z":"","name":"localhost","host":"localhost","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":false,"cuxdEnabled":false,"regaPoll":true,"regaInterval":"30","rpcPingTimeout":"60","rpcInitAddress":"127.0.0.1","rpcServerHost":"127.0.0.1","rpcBinPort":"2047","rpcXmlPort":"2048"}]

So geht es:
Mit Variablen scheint es zu funktionieren, auch nach einem Deploy.
190614_Logic_Vari.PNG
190614_Logic_Vari.PNG (23.83 KiB) 1830 mal betrachtet

Sehr komisch... Welchen Fehler mache ich denn da?

Gruß Thomas

Re: Probleme mit der combine-logic

Verfasst: 14.06.2019, 22:45
von hobbyquaker
Damit die Eingangsnachrichten von den Combine Nodes auseinandergehalten werden können müssen sie alle ein individuelles msg.topic Attribut mitbringen. Ist das gegeben? Kannst mal die Nachrichten die in die Combine Nodes reingehen auch ausgeben lassen und zeigen?

Re: Probleme mit der combine-logic

Verfasst: 16.06.2019, 02:37
von tloeffel
Hallo Hobbyquaker,

Du hast mir den entscheidenden Tipp gegeben, danke Dir!
Wobei es sich wieder zeigt, was ich noch alles noch nicht verstehe :-).

Dies bedeutet nun das "msg.topic" quasi der Name von der Nachricht (als Identifizierung) ist und msg.payload enthält ja die Nachricht selbst.

Hier die Lösung auf Basis Deines Tipps:
Aus dem "nor" und dem "or" kommen als Topic = "" heraus. Ich habe einfach zum Testen Topic="nor" und Topic="or" in dem Flow hinterlegt. Dann ging es.

Lieben Gruß Thomas

Re: Probleme mit der combine-logic

Verfasst: 16.06.2019, 03:06
von tloeffel
Hallo Hobbyquaker,

hier eine neue Frage :-).

Um keine unnötigen Funkmeldungen zu erzeugen soll der Flow nachfragen ob die Markise ausgefahren ist. Allerdings habe ich den Sensor HM-Sec-SC-2 im Einsatz, der reagiert auf die Bewegung der Markise. Bei zu hartem Wackeln löst er aus. Dieses leider bei viel Wind im Sekundentakt. Bis die Markise eingefahren ist, kann es somit zu mehrfachen Auslösungen kommen.
Gibt es eine „node“ die eine Meldung akzeptiert und erst nach z.B. 20 Sekunden wieder erneut etwas durchlässt? Vielleicht hast Du auch eine bessere Idee 😊.


Hier die Flow:
190616 Markiese.PNG

Gruß Thomas

Re: Probleme mit der combine-logic

Verfasst: 16.06.2019, 03:49
von tloeffel
Hallo Hobbyquaker,

ich habe ein bisschen getüftelt. Es funktioniert. Aber vielleicht hast Du eine kürzere, oder bessere Lösung :-).


Mit der Node: "node-red-contrib-deduplicate-adv"
190616 Markise 2.PNG
Lieben Gruß Thomas

Re: Probleme mit der combine-logic

Verfasst: 20.06.2019, 22:44
von vore
Hallo Thomas,
wie hast du das msg.topic Attribut gesetzt? Stehe vor dem gleichen Problem. Payload ist klar.. aber gibt es eine Node die das setzen der msg.topic erlaubt?
Gruß
Vore

Re: Probleme mit der combine-logic

Verfasst: 20.06.2019, 22:53
von hobbyquaker
Die CCU Nodes haben fast alle in ihrer Konfiguration die Möglichkeit das Topic Attribut mittels Platzhaltern zusammenzusetzen (z.B. ${channelName})

Ansonsten ist es grundsätzlich mit dem Change Node möglich beliebige Attribute jeder Nachricht zu ändern:
Bildschirmfoto 2019-06-20 um 22.53.02.png

Re: Probleme mit der combine-logic

Verfasst: 23.06.2019, 17:24
von vore
Danke Hobbyquaker..

Gruß
Vore

Re: Probleme mit der combine-logic

Verfasst: 27.10.2019, 12:34
von rf4711
Hallo,
dank diesem thread, klappt jetzt mein AND auch mal. Allerdings habe ich noch ein Problem wenn nachdem ich was geändert habe und deploy drücke. Reagiert das AND nicht mehr richtig bis alle Nodes einmal ihren Zustand gewechselt haben. D.h. schon mit der ersten Eingangsänderung geht das AND auf true obwobl der zweite Eingang noch auf false steht. Ändere ich den zweiten auch einmal auf true danach auf false läuft das AND immer richtig.
Ich hab das gefühl als hätte das AND vergessen wieviele Eingänge dranhängen.
Wie bekommt man diese Problem behoben?
Gruß
rf4711

Re: Probleme mit der combine-logic

Verfasst: 27.10.2019, 15:02
von hobbyquaker
Das ist "works as designed". Der Node kann nicht vorab wissen mit wie vielen unterschiedlichen Topics er Nachrichten bekommen wird. Im Konzept des Nachrichtenflusses von Node-RED kann ein Eingang auch nicht auf false "stehen". Der Node kombiniert einfach ab dem Flow-Start (was bei jedem Deploy passiert) alle eingegangen Nachrichten.
D.h. um Dein Problem zu lösen musst Du dafür sorgen dass beim Flow-Start für alle gewünschten Topics auch Nachrichten am Combine Logic Node eintreffen, wenn die Quelle z.B. ein RPC Event Node ist indem Du die Checkbox bei "Emit cached value on start" setzt.