NEWS
Node Red und Blockly Scripte
-
@mickym said in Node Red und Blockly Scripte:
@labamba Natürlich muss Du Deinen entprechenden Blocklies stoppen.
Wenn der Datenpunkt aus dem Shelly Adapter mit stop triggert - dann triggert er ja sowohl den NodeRed Flow und Dein Blockly.
Kann ich das z.B. nur auf NODE-RED einstellen?
Die Buttons aus dem Tablett triggern nichts - aber der 2. Teil des Blocklies.
Habe ich mit gedacht!
Warum Du die payload in percentage wandelst - verstehe ich auch nicht. Wie gesagt nutze den Flow mit der Http-Request Node (also Höhe des Raffstores).
Ich habe im Shelly Adapter einen Datenpunkt zu Höhe der über mqtt läuft. Diesen habe ich gerade verwendet. Funktioniert für die Höheneinstellung super.
Die Winkel habe ich nicht verstanden, da habe ich ja nur Zeiten gesehen im 2. Teil des Blocklies. Wie willst Du denn gleichzeitig den Winkel und die Höhe übergeben?
DIe Raffstore haben Lamellen. Ich möchte sie am liebsten Flexibel in eine gewisse Höhe fahren. Hierfür habe ich die Prozentanzeige über den Shelly Adapter und mqtt. Das funktioniert ja super.
Gleichzeitig möchte ich noch verschiedene Winkel. z.B. 90° (Raffstore geschlossen, keine Sicht nach Außen, 45° Sicht nach Außen aber Verschattung z.B. im Sommer. 0° volle Sicht nach Außen oder -30°C für einen Energieeintrag im Winter aber keine Einsicht in die Räumlichkeiten von außen.Habe mir jetzt überlegt ob ich es so machen kann.
Befehl:
Büro Raffstore 90 (zu) - Position flexibel und 90° für Lamelle geschlossen
Büro Raffstore 45 - Positon flexibel und 45° für Lamelle mit durchsicht aber gleichzeitig Verschattung
usw.Du hast irgendwo mal geschrieben das man auch einen Button vom Tablet über Node-Red so steuern könnte. Ich frage mich wie sowas gehen könnte.
-
@labamba sagte in Node Red und Blockly Scripte:
@labamba Natürlich muss Du Deinen entprechenden Blocklies stoppen.
Wenn der Datenpunkt aus dem Shelly Adapter mit stop triggert - dann triggert er ja sowohl den NodeRed Flow und Dein Blockly.Kann ich das z.B. nur auf NODE-RED einstellen?
Na da musst Du doch einfach das Blockly für diesen Adapter stoppen - bzw. man kann den Baustein der triggert einfach deaktivieren, dann bleibt Dir immer noch der Rückweg:
@labamba sagte in Node Red und Blockly Scripte:
Warum Du die payload in percentage wandelst - verstehe ich auch nicht. Wie gesagt nutze den Flow mit der Http-Request Node (also Höhe des Raffstores).
Ich habe im Shelly Adapter einen Datenpunkt zu Höhe der über mqtt läuft. Diesen habe ich gerade verwendet. Funktioniert für die Höheneinstellung super.
Ja aber hier ist das Unsinn - ich sehe auch nicht, dass Du wieder in einen Datenpunkt schreibst, das brauchst Du nicht warum? - Du willst doch ohne das Blockly auskommen.
Ich habe Dir den Flow mit dem http Request doch gepostet. Die payload enthält doch bereits die Prozentzahl.
Klemme einfach diese beiden Nodes hinter Deine Alexa Nodes (schmeiss die Change Node mit percentage raus, als ersetzen durch die setze msg.url Change Node) und das jeweilige Raffstore sollte um diese Prozentzahl öffnen.
Die anderen Nodes - mit dem Drehwinkel schmeisst erst mal raus und schaust ob das man dem Öffen und Schließen passt.
Es fehlen halt noch die Alexa Kommandos für stop, close und open - poste mal was da raus kommt. Wie gesagt das mit dem Drehwinkel müssen dann eigene Befehle sein und haben mit dem Öffnen und Schließen und steuern über HTTP nichts zu tun.
Die IP Adresse in der Change Node musst halt anpassen - damit der richtige Shelly angesteuert wird.
-
@labamba sagte in Node Red und Blockly Scripte:
Du hast irgendwo mal geschrieben das man auch einen Button vom Tablet über Node-Red so steuern könnte. Ich frage mich wie sowas gehen könnte.
Nun Du hast doch für jeden Button einen Datenpunkt erstellt. (Deaktiviere nur wieder den entsprechenden Blockly Baustein, dass nicht beide Triggern).
Ich werde es Dir wieder an dem Blockly erläutern.
Die Variable lasse ich mal weg - weil ich mir noch nicht klar über den Sinn bin.
Bis auf die Variable macht dieser Flow exakt das Gleiche wie das Blockly:
Wie gesagt aber wieder aufpassen, dass nicht NodeRed und Blockly mit dem Datenpunkt getriggert werden.
Falls man wirklich die Variable brauchen sollte - setzt man diese als FlowVariable:
-
@mickym said in Node Red und Blockly Scripte:
Sorry, ich hatte leider in den letzten Tagen sehr wenig Zeit. Mit Job und Kind muss man da immer schauen wann Zeit vorhanden ist.
Ich habe mich mal ein wenig weiter reingearbeitet.@labamba sagte in Node Red und Blockly Scripte:
@labamba Natürlich muss Du Deinen entprechenden Blocklies stoppen.
Wenn der Datenpunkt aus dem Shelly Adapter mit stop triggert - dann triggert er ja sowohl den NodeRed Flow und Dein Blockly.Kann ich das z.B. nur auf NODE-RED einstellen?
Na da musst Du doch einfach das Blockly für diesen Adapter stoppen - bzw. man kann den Baustein der triggert einfach deaktivieren, dann bleibt Dir immer noch der Rückweg:
Sehr interessant, ich wusste nicht, dass man Bausteine im Blockly so einfach deaktivieren kann. Wieder etwas gelernt.
@labamba sagte in Node Red und Blockly Scripte:
Warum Du die payload in percentage wandelst - verstehe ich auch nicht. Wie gesagt nutze den Flow mit der Http-Request Node (also Höhe des Raffstores).
Ich habe im Shelly Adapter einen Datenpunkt zu Höhe der über mqtt läuft. Diesen habe ich gerade verwendet. Funktioniert für die Höheneinstellung super.
Ja aber hier ist das Unsinn - ich sehe auch nicht, dass Du wieder in einen Datenpunkt schreibst, das brauchst Du nicht warum? - Du willst doch ohne das Blockly auskommen.
Für die Höhe des Raffstore ist es aus meiner Sicht eigentlich egal ob ich das über ein procentage mache oder den http Befehl verwende. Beides funktioniert ohne ein Blockly. Ich hatte jetzt angenommen, dass der weg über Procentage (mqtt) sogar der elegantere weg ist. Da ich wirklich flexibel die fahrhöhe vorgeben kann. Der http befehl ist immer eine feste Fahrhöhe. Wenn ich es mit einem Button verbinden möchte, ist der http Befehl für die Höhe des Raffstore sicherlich besser geeignet da ein Button auch immer eine definierte Höhe des Raffstores hat.
Ich habe Dir den Flow mit dem http Request doch gepostet. Die payload enthält doch bereits die Prozentzahl.
Klemme einfach diese beiden Nodes hinter Deine Alexa Nodes (schmeiss die Change Node mit percentage raus, als ersetzen durch die setze msg.url Change Node) und das jeweilige Raffstore sollte um diese Prozentzahl öffnen.
Die anderen Nodes - mit dem Drehwinkel schmeisst erst mal raus und schaust ob das man dem Öffen und Schließen passt.
Wie gesagt das funktioniert über http oder mqtt als Prozentbefehl.
Es fehlen halt noch die Alexa Kommandos für stop, close und open
Hier verstehe ich nicht zu was ich diese Befehle brauche. Zu ist bei mir 0% und auf 100% über den mqtt Datenpunkt im Shelly Adapter.
poste mal was da raus kommt. Wie gesagt das mit dem Drehwinkel müssen dann eigene Befehle sein und haben mit dem Öffnen und Schließen und steuern über HTTP nichts zu tun.
Die IP Adresse in der Change Node musst halt anpassen - damit der richtige Shelly angesteuert wird.
Den Prozentwert habe ich als Datenpunkt aus dem Shelly Adapter der per mqtt angesteuert wird.
Für mich geht es jetzt darum, wie ich am sinnvollsten die Hohe des Raffstores mit dem Drehwinkel kombiniere.
Ich wollte dies nicht als getrennte Befehle. Sondern z.B.
den Befehl über Alexa z,B. "Büroraffstore 45 (Alexa Name) auf 20% (Variable)" Folglich wird die Höhe des Raffstore auf 20% gefahren und der Winkel auf 45°.
bzw. "Büroraffstore 90 auf 0%". usw.
Ich habe das getestet. Das funktioniert auch gut.Jedoch habe ich jetzt ein Problem. Ich würde gerne meine Buttons über das Tablet und Handy trotzdem weiter nutzen können. z.B. wenn ich nicht zu Hause bin kann ich die Raffstore dann auch in die gewünschte Position fahren. Folglich stelle ich mir die Frage ob es möglich ist dies auch über node-red auf die Buttons in iobroker vis einbinden zu können.
Denn verwende ich parallel das Blockly wird der Winkel immer dopelt getriggert was natürlich nicht funktioniert.
-
@mickym said in Node Red und Blockly Scripte:
@labamba sagte in Node Red und Blockly Scripte:
Du hast irgendwo mal geschrieben das man auch einen Button vom Tablet über Node-Red so steuern könnte. Ich frage mich wie sowas gehen könnte.
Nun Du hast doch für jeden Button einen Datenpunkt erstellt. (Deaktiviere nur wieder den entsprechenden Blockly Baustein, dass nicht beide Triggern).
Ich werde es Dir wieder an dem Blockly erläutern.
Die Variable lasse ich mal weg - weil ich mir noch nicht klar über den Sinn bin.
Bis auf die Variable macht dieser Flow exakt das Gleiche wie das Blockly:
Wie gesagt aber wieder aufpassen, dass nicht NodeRed und Blockly mit dem Datenpunkt getriggert werden.
Falls man wirklich die Variable brauchen sollte - setzt man diese als FlowVariable:
Das muss ich mir mal die Tage anschauen. Grundsätzlich glaube ich aber, dass ich die Idee verstanden habe. Über den erstellten Datenpunkt wird dann seperat der Button über Node Red gesteuert. Vielleicht brauche ich einfach einen zweiten Datenpunkt für die Button damit nicht beides getriggert wird.
-
@labamba Wie Du am letzten Posting siehst - musst/kannst Du zwar einen 2. Datenpunkt erstellen, ist aber nicht nötig.
Die Kommunikation zwischen vis und Blockly oder vis und NodeRed ist doch komplett identisch.
Du veränderst mit vis einen selbst erstellten Datenpunkt, darauf kann man im NodeRed über einen iobroker-IN Node oder über einen Blockly Trigger reagieren.
Nun kannst Du doch entscheiden:
- Du erstellst 2 Datenpunkte, dann brauchst aber auch 2 vis Buttons, die unterschiedliche Datenpunkte schreiben
- Du schreibst mit vis in den bisherigen Datenpunkt - triggert dann Flows in Blockly und in NodeRed.
- Du schreibst mit vis in den bisherigen Datenpunkt - deaktivierst den Blockly Trigger und schaltest damit nur den Node-Red Flow scharf.
- Du deaktivierst die iobroker-In Node und schaltest damit nur den Blockly Teil scharf.
2 Datenpunkte helfen Dir also nur, wenn Du unterschiedliche Datenpunkte beschreiben willst. Du kannst natürlich auch weiterhin den jetzigen Datenpunkt nur das Blockly triggern, das zusätzlich zum jetzigen Teil noch einen weiteren Datenpunkt triggert und vice versa. Also 6 Möglichkeiten, wobei in meinen Augen nur 3 und 4 Sinn macht. Wie gesagt den Trigger in den einen (Blockly) oder anderen System (NodeRed) zu deaktivieren ist ein Mausklick.
Das mit den Raffstores habe ich inzwischen kapiert - die Prozentzahl wie sich die Lamellen drehen, ist in beiden Fällen nur zeitgesteuert. Insofern nutzt Dir die Öffnung über den HTTP Befehl nicht direkt was.
Den Subflow kannst Du meines Erachtens auch löschen bzw. Du müsstest die Zeiten für den Winkel der ja nur funktioniert wenn die Zeiten für jeden Raffstore identisch sind. Ich würde ihn nochmal löschen und erst mal für einen das so implementieren, wie es im Blockly funktioniert und das Schritt für Schritt.
Ich frage mich, wenn Du das alles bereits im Blockly realisiert hast, warum Du es nochmal implementieren willst. Im Prinzip kannst Du fast alles auch mit NodeRed machen. Lediglich bestimmte Teile, wie der vorherige Wert muss man in NodeRed etwas anders realisieren, da hier NodeRed nicht mit der gleichen Prioriät oder Funktionalität von den Entwicklern, wie bei den Blocklies gepflegt wird.
Dafür gibt es im NodeRed Nodes, für die es im Blockly keine Entsprechungen gibt bzw. als Unterfunktionen erst implementiert werden müssen.Das Triggern über die Alexa Nodes Deiner Blocklies funktioniert doch jetzt? - Dachte ich?
Wenn Du die Blocklies durch NodeRed ablösen willst. Dann nimm Dir halt ein Blockly vor, was Du peu a peu deaktivierst und die entsprechenden Teile im Node Red ablöst.
Im den letzten von Dir zitierten Post habe ich Dir ja gezeigt, wie eine Implementierung im Blockly in NodeRed ausschauen würde.
Ich würde Dir auch nicht empfehlen alles zu ändern, sondern versuch halt erst mal ein Teil umzusetzen und dann kann man es ggf. via Copy & Paste für andere Stores umsetzen.
-
Den Prozentwert habe ich als Datenpunkt aus dem Shelly Adapter der per mqtt angesteuert wird.
Für mich geht es jetzt darum, wie ich am sinnvollsten die Hohe des Raffstores mit dem Drehwinkel kombiniere.
Ich wollte dies nicht als getrennte Befehle. Sondern z.B.
den Befehl über Alexa z,B. "Büroraffstore 45 (Alexa Name) auf 20% (Variable)" Folglich wird die Höhe des Raffstore auf 20% gefahren und der Winkel auf 45°.
bzw. "Büroraffstore 90 auf 0%". usw.
Ich habe das getestet. Das funktioniert auch gut.Mit einem Zustand funktioniert es wunderbar. Jedoch beinflusst der Drehwinkel die verschiedenen Varianten.
Der Drehwinkel des Subscribt wird sogar getriggert wenn der Windwächter nur auf fährt (ohne Winkeleinstellung). Es wird dann von Node Red im offenen Zustand immer wieder versucht einen Winkel einzustellen.Jedoch zeigt sich, dass der Subflow bei jedem Alexa Befehl aktiviert wird.
Ebenso ist dies auch bei allen Blockly der Fall.Jedoch habe ich jetzt ein Problem. Ich würde gerne meine Buttons über das Tablet und Handy trotzdem weiter nutzen können. z.B. wenn ich nicht zu Hause bin kann ich die Raffstore dann auch in die gewünschte Position fahren. Folglich stelle ich mir die Frage ob es möglich ist dies auch über node-red auf die Buttons in iobroker vis einbinden zu können.
Denn verwende ich parallel das Blockly wird der Winkel immer dopelt getriggert was natürlich nicht funktioniert.
-
@labamba sagte in Node Red und Blockly Scripte:
Jedoch zeigt sich, dass der Subflow bei jedem Alexa Befehl aktiviert wird.
Ebenso ist dies auch bei allen Blockly der Fall.Du siehst doch was triggert - der Drehwinkel wird nicht durch Alexa getriggert, sondern immer wenn der state Deines Shellies auf stop geht.
-
@mickym said in Node Red und Blockly Scripte:
@labamba sagte in Node Red und Blockly Scripte:
Jedoch zeigt sich, dass der Subflow bei jedem Alexa Befehl aktiviert wird.
Ebenso ist dies auch bei allen Blockly der Fall.Du siehst doch was triggert - der Drehwinkel wird nicht durch Alexa getriggert, sondern immer wenn der state Deines Shellies auf stop geht.
Dann geht diese Lösung aber nicht! Es ist ja keine eindeutige Zuordnung vom Drehwinkel vorhanden.
-
@labamba Ja das meine ich ja - egal ob Blockly oder Node Red - meines Erachtens passt die ganz Logik nicht, zumindest solange Du über den Shelly Datenpunkt triggerst und das machst Du im Blockly und ich hab das ja nur im NodeRed nachgebaut, weil ich der Meinung war, dass Du mit Deiner Blockly Logik zufrieden warst.
Ich würde die Logik halt nochmal systematisch ganz von vorne aufsetzen und deshalb hab ich Dir ja auch empfohlen erst mal die Subflows alle wieder zu löschen und Du stellst quasi in einer Art Tabelle zusammen, welche Drehwinkel welchen Fahrzeiten der Rollos entsprechen.
EDIT:
Ich denke, dass das Trigger durch den Status des Shellies - lediglich dazu dient, um den die letzte Bewegung offen oder geschlossen festzuhalten. Die Steuerung des Drehwinkels alleine über den Button bzw. Tastendruck realisiert werden muss. Das Alexa Kommando triggert den gleichen Datenpunkt, wie der vis Button. Ob das ganze durch Node Red oder Blockly realisiert wird, ist im Prinzip egal. -
@mickym said in Node Red und Blockly Scripte:
@labamba Ja das meine ich ja - egal ob Blockly oder Node Red - meines Erachtens passt die ganz Logik nicht, zumindest solange Du über den Shelly Datenpunkt triggerst und das machst Du im Blockly und ich hab das ja nur im NodeRed nachgebaut, weil ich der Meinung war, dass Du mit Deiner Blockly Logik zufrieden warst.
Du hast ja vollkommen Recht! Ich kannte die Möglichkeiten von NODE-RED nicht. Für mich war das bis jetzt immer nur ein Tool um den Sprachbefehl von Alexa mit den jeweiligen Befehlen zu verknüpfen.
Jedoch wurde jetzt meine Neugier geweckt.Ich würde die Logik halt nochmal systematisch ganz von vorne aufsetzen und deshalb hab ich Dir ja auch empfohlen erst mal die Subflows alle wieder zu löschen und Du stellst quasi in einer Art Tabelle zusammen, welche Drehwinkel welchen Fahrzeiten der Rollos entsprechen.
Ich werde es in den nächsten Tagen mal als Tabelle zusammenstellen.