Probleme mit der combine-logic

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

Moderator: Co-Administratoren

tloeffel
Beiträge: 447
Registriert: 13.09.2017, 05:11
Hat sich bedankt: 1 Mal
Danksagung erhalten: 12 Mal

Probleme mit der combine-logic

Beitrag von tloeffel » 14.06.2019, 22:16

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) 1834 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) 1834 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) 1834 mal betrachtet

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

Gruß Thomas
972 Kanäle in 165 Geräten: Davon 16 HM, 145 HMIP, 2 Gruppen und 2 CUXD Geräte

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: Probleme mit der combine-logic

Beitrag von hobbyquaker » 14.06.2019, 22:45

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?

tloeffel
Beiträge: 447
Registriert: 13.09.2017, 05:11
Hat sich bedankt: 1 Mal
Danksagung erhalten: 12 Mal

Re: Probleme mit der combine-logic

Beitrag von tloeffel » 16.06.2019, 02:37

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
972 Kanäle in 165 Geräten: Davon 16 HM, 145 HMIP, 2 Gruppen und 2 CUXD Geräte

tloeffel
Beiträge: 447
Registriert: 13.09.2017, 05:11
Hat sich bedankt: 1 Mal
Danksagung erhalten: 12 Mal

Re: Probleme mit der combine-logic

Beitrag von tloeffel » 16.06.2019, 03:06

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
972 Kanäle in 165 Geräten: Davon 16 HM, 145 HMIP, 2 Gruppen und 2 CUXD Geräte

tloeffel
Beiträge: 447
Registriert: 13.09.2017, 05:11
Hat sich bedankt: 1 Mal
Danksagung erhalten: 12 Mal

Re: Probleme mit der combine-logic

Beitrag von tloeffel » 16.06.2019, 03:49

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
972 Kanäle in 165 Geräten: Davon 16 HM, 145 HMIP, 2 Gruppen und 2 CUXD Geräte

vore
Beiträge: 166
Registriert: 28.11.2011, 20:31
System: CCU und Access Point
Hat sich bedankt: 5 Mal
Danksagung erhalten: 5 Mal

Re: Probleme mit der combine-logic

Beitrag von vore » 20.06.2019, 22:44

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
System: Asus TinkerS mit RaspberryMatic und Cubietruck mit IOBroker

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: Probleme mit der combine-logic

Beitrag von hobbyquaker » 20.06.2019, 22:53

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

vore
Beiträge: 166
Registriert: 28.11.2011, 20:31
System: CCU und Access Point
Hat sich bedankt: 5 Mal
Danksagung erhalten: 5 Mal

Re: Probleme mit der combine-logic

Beitrag von vore » 23.06.2019, 17:24

Danke Hobbyquaker..

Gruß
Vore
System: Asus TinkerS mit RaspberryMatic und Cubietruck mit IOBroker

rf4711
Beiträge: 51
Registriert: 17.12.2018, 20:33
Hat sich bedankt: 1 Mal

Re: Probleme mit der combine-logic

Beitrag von rf4711 » 27.10.2019, 12:34

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

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: Probleme mit der combine-logic

Beitrag von hobbyquaker » 27.10.2019, 15:02

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.

Antworten

Zurück zu „RedMatic“