NEWS
Kommunikation zwischen Blockly und NodeRed
-
Hi Zusammen,
ich bin neu in dem Thema und habe eine spezifische Frage.Ich habe eine Synology Diskstation mit IoBroker am Laufen.
Auf diesem IoBroker läuft ein Adapter mit NodeRed. Das funktioniert auch alles soweit.
Für die Kommunikation mit meinem KNX System habe ich nun KNX Ultimate auf NodeRed am laufen. Hier kann ich auch über NodeRed bereits KNX Telegramme verschicken und Geräte steuern.Jetzt habe ich ein Blockly Skript im IoBroker, was im Endeffekt eine KNX Gruppenadresse ansteuern soll und genau da liegt das Problem.
Wie schaffe ich es aus dem Skripteditor Blockly auf Elemente in Ultra KNX zuzugreifen? Geht das überhaupt?
Mittlerweile habe ich auch den IoBroker Adapter für OpenKNX am laufen, da geht das natürlich nativ und problemlos, aber ich wollte es trotzdem mal wissenBild von Nodered mit knx ultimate
Bild von Blockly Skript (hier bereits Datenpunkt von OpenKNX eingetragen)
-
@r3vo sagte in Kommunikation zwischen Blockly und NodeRed:
hier bereits Datenpunkt von OpenKNX eingetragen
Was für ein Typ hat der Datenpunkt?
-
Nimm halt einfach als Trigger in einer iobroker-In Node - den Datenpunkt, den Du mit dem Blockly schreibst. Sobald Du das machst initiierst Du damit den Flow in NodeRed. In diesem Fall hat doch die KNX Node 0 und nichts mit dem iobroker DP zu tun.
Ansonsten kann ich mich @DJMarc75 nur anschließen. Ich hoffe nicht, dass Du sowohl mit den KNX Nodes und gleichzeitig mit einem gleichfunktionalen Adapter auf Dein KNX System zugreifen willst. Du kannst zwar beide Systeme für Deine Logik nutzen, aber nur ein System darf Zugriff auf die Hardware haben.
-
@djmarc75
hä, wieso? Das war doch gar nicht das Problem?
Der Datenpunkt ist vom Typ: State
@mickym said in Kommunikation zwischen Blockly und NodeRed:
Nimm halt einfach als Trigger in einer iobroker-In Node - den Datenpunkt, den Du mit dem Blockly schreibst. Sobald Du das machst initiierst Du damit den Flow in NodeRed. In diesem Fall hat doch die KNX Node 0 und nichts mit dem iobroker DP zu tun.
Ansonsten kann ich mich @DJMarc75 nur anschließen. Ich hoffe nicht, dass Du sowohl mit den KNX Nodes und gleichzeitig mit einem gleichfunktionalen Adapter auf Dein KNX System zugreifen willst. Du kannst zwar beide Systeme für Deine Logik nutzen, aber nur ein System darf Zugriff auf die Hardware haben.
Das verstehe ich nicht so ganz. wieso darf nur ein System Zugriff auf die HW haben? Oder geht es dabei mehr darum, nicht irgendein Durcheinander zu bekommen?
Problem war einfach, dass ich KNX nur über NodeRed bedienen konnte und aber über das Blockly Script im IoBroker eine Logik gebaut habe mit der ich ein KNX AKtorkanal ansprechen musste. Da hab ich irgendwie ein Denkproblem, wie ich den Brückenschlag hinbekomme.
-
@r3vo sagte in Kommunikation zwischen Blockly und NodeRed:
Das verstehe ich nicht so ganz. wieso darf nur ein System Zugriff auf die HW haben? Oder geht es dabei mehr darum, nicht irgendein Durcheinander zu bekommen?
Ja das ist oft ein Problem, wenn man mit mehreren Systemen auf eine HW zugreift, muss aber nicht sein. Ja und ein Grund kann auch ein Durcheinander werden, weil die Systeme ja oft auch einen best. Zustand einer Hardware annehmen und nicht davon ausgehen, dass parallel ein anderes darauf zugreift. Ob das bei KNX der Fall ist, weiß ich nicht, aber ich würde auch aus Gründen der Fehlersuche oder Fehleranfälligkeit immer einem System die Hoheit zu geben.
Wie gesagt Du kannst über eigene Datenpunkte, die Du mit Blockly beschreibst, jederzeit einen NR Flow triggern und umgekehrt.
Was ist denn das nun für ein Datenpunkt - wo liegt denn der? Im Bereich eines Adapters oder unter 0_userdata.0 ? -
@r3vo sagte in Kommunikation zwischen Blockly und NodeRed:
hä, wieso? Das war doch gar nicht das Problem?
Der Datenpunkt ist vom Typ: Stateaha, also nicht String, Number oder sonstwas... also State... naja...
war ja auch nicht das Problem ...mach mal weiter... bin da raus
-
@mickym said in Kommunikation zwischen Blockly und NodeRed:
Wie gesagt Du kannst über eigene Datenpunkte, die Du mit Blockly beschreibst, jederzeit einen NR Flow triggern und umgekehrt.
Was ist denn das nun für ein Datenpunkt - wo liegt denn der? Im Bereich eines Adapters oder unter 0_userdata.0 ?Kannst du mir das mal anhand einem plakativen Beispiel aufzeigen? Dann wird es für mich vielleicht klarer.
Der Datenpunkt ist eine Gruppenadresse zum Schalten des Stromkreis für das Touchpad. Im Endeffekt ein Schalter.
Es ist unterhalb des Open KNX also innerhalb des Adapters.Ich mach es mal praktisch:
Es wird der akku des Tablets beobachtet. Sobald der Ladezustand kleiner 30% sinkt, soll eine Steckdose angeschaltet werden, damit das GErät wieder aufgeladen wird. Bei größer 90% wird die Steckdose ausgeschaltet. Das Überwachen des Akku läuft dabei über ein Blockly Skript, aber die auszuführende AKtion, nämlich das Steckdose An- und ausschalten funktioniert nur über NodeRed. -
@r3vo Nochmal ich denke Du denkst zu kompliziert. Wenn dieser Datenpunkt OG-FlurTouchpad unter 0_userdata.0 existiert und du diesen Datenpunkt über Dein Blockly schaltest kannst Du doch diesen Datenpunkt über eine iobroker-In Node überwachen. Sprich sobald Dein Blockly diesen Datenpunkt ändert oder aktualisiert läuft Dein NodeRed Flow los und regels damit Deine KNX Aktion.
Allerdings halte ich es halt für gefährlich sowohl den Adapter also auch die Nodes zu verwenden. Ich verstehe auch nicht warum Du den KNX Adapter überhaupt hast, wenn Du darüber nichts steuerst - oder falls Du steuerst warum Du dann NodeRed mit den Nodes noch brauchst. Entscheide Dich halt erst mal welches System Dein KNX steuert. NodeRed oder der iobroker Adapter?
Ich verstehe halt nicht warum Du den KNX Adapter im iobroker brauchst, wenn Du mit NOdeRed alles steuern kannst oder umgekehrt warum Du NodeRed nutzt, wenn Du mit dem iobroker Adapter alles steuerst.
Im Prinzip brauchst in meinen Augen keine 2 Systeme auch Dein Blockly könntest Du ja in NodeRed abbilden, aber ich verstehe wenn Du dich da nicht firm fühlst, dass Du dann beide Systeme betreiben willst. Das BatteryLevel könntest Du ja auch direkt in NodeRed abfragen.
Mal unabhängig davon, Du kannst ja wenn Du das Blockly nimmst - einfach ein iobroker-IN Node mit dem gleichen Datenpunkt für den Flow initiieren. - Meine Anmerkungen dienen halt eher dazu - ob dein gesamtes System mit der Doppelgleisigkeit Sinn macht. Ich persönlich würde ja alles mit NodeRed machen - anstelle der Blocklies - da ich das puzzlen nicht mag.
Oder mit anderen Worten Dein Blockly wird nichts über Dein NodeRed KNX System wissen, aber Du weisst, wenn Du mit dem Blockly einen Datenpunkt schaltet, was NodeRed tun soll.
-
@mickym
Danke für deine hilfreichen Antworten und die Zeit die du dir genommen hast. Ich glaube begriffen zu haben, was du mir sagen wolltest.
Das System ist mehr oder minder historisch gewachsen. Es fing mit IObroker an, damit konnte ich aber kein KNX bedienen. Dann kam ich auf Nodered, was KNX bedienen kann und gleichzeitig mit IOBroker zusammenarbeitet. Naja und dann hatte ich eben das Blockly skript fertig so gefunden für meinen ANwendungsfall. Gleichzeitig aber auch einen neuen Adapter im IOBroker ausprobiert, mit dem ich dann letztlich auch KNX über IOBroker bedienen konnte.
Trotzdem wollte ich das andere Problem (aus Blockly Skript node red triggern) gelöst haben.