NEWS
Node-Red: Loop gebaut, statt Statusrückmeldungen
-
Bei dem Switch den Haken bei Pass Through raus machen und Indictor shows status on input (bei dem switch).
Bei dem Numeric schalter ebenfalls.
-
Hi,
vielen Dank für die schnelle Rückmeldung. Das hatte ich schon so eingestellt.
Mache ich grundsätzlich irgendwas falsch? Das Vorgehen müsste doch so ein, wie in den Screenshots eingangs? -
Nun - dann dürfte doch jetzt erst mal keine Endlosschleife vorliegen. Richtig? - Wenn ja dann zeig die Konfig der anderen Nodes.
Bei dem Switch ist das eindeutig - da Du wahrscheinlich erst mal nur strings rausbekommst.
Wenn der Ausgang ein boolean sein muss - dann mache eine change node vor dem switch indem Du
true als String in true boolean und entsprechend bei false davor setzt. -
Stimmt, wenn der "Path-Trough" Haken draußen ist, gibt es keinen Loop (Irgendwie Sinnvoll =).
Leider funktioniert es dann trotzdem nicht. Bei beiden.Hier Numeric. Es wird Links der Richtige Zustand ermittelt, aber am Schalter nicht angezeigt:
Zustand:
Node Config:
Anzeige:
Beim Switch ist das Ähnlich:
Optisch zwar okey, aber schalten und anzeigen geht nicht:
Switch Node Config:
Ich fühle mich wie ein blutiger Anfänger
-
@tomily Na das ist doch kein Problem.
- Ich mach Dir mal 1 node - den Du einfach in die Zwischenablage kopierst und dann in Dein Node-Red importiertst importierst.
Bei dem Wert musst Du darauf achten, dass Du nicht einen value sondern ein command in dem letzten Node schickst.
Dann ist kein ack flag gesetzt und nur dann passiert was.Das weiterhin 94 angezeigt wird, heißt einfach, dass der gesendete 100 Wert nicht von Deiner HW bestätigt (acknowledged) wurde.
Wie gesagt mach den Change Node noch vor Deinen Switch - kopier das einfach in die Zwischenablage und dann importiere diese.
[ { "id": "e0c24880.74fb88", "type": "change", "z": "6e170384.60c96c", "name": "translate", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "str", "to": "true", "tot": "bool" }, { "t": "change", "p": "payload", "pt": "msg", "from": "false", "fromt": "str", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 240, "y": 4420, "wires": [ [] ] } ]
WICHTI bei dem Roladen _Node - COMMAND und nicht VALUE nach außen schreiben.
-
Genial! Danke! Ich muss es heute abend nochmal zuhause testen (Aktuell per Remote), aber die Sache mit dem Switch scheint dank dem Translate zu funktionieren. DANKE! Nur wieso?
Du wandelst also nur einen "String" in einen "Boolean", damit es funktioniert?
Zu der Sache mit dem Rollladen/Heizung/Dimmer:
Nach dem Umstellen auf "Command" funktioniert auch das. Super! Allerdings tritt nun folgendes Phänomen auf:
Der auf und ab Knopf soll den Rollladen jeweils an den Endpunkt fahren. Deshalb habe ich "Step 100" ausgewählt.
Der Status wird aber nur sauber zurück geschrieben, wenn ich "Step 1" auswähle.So schnell kann ich den Wert gar nicht einstellen, bevor er nicht schon vom neuen Status überschrieben worden ist.
Da muss ich noch ein bisschen dran spielen. Gibt es evtl. ähnlich zum "translate" einen Delay? Dass der Wert erst nach X Sekunden aktualisiert wird?Grüße
-
@tomily
Ja lass das mit dem Step 1.
Hier ist der Trigger Node nützlich denn Du hinter DEinen nummerischen Output schaltest.[ { "id": "98fd10e5.dee8", "type": "trigger", "z": "a0bc94f0.ccb338", "op1": "", "op2": "", "op1type": "nul", "op2type": "payl", "duration": "5", "extend": true, "units": "s", "reset": "", "bytopic": "all", "name": "", "x": 1530, "y": 1140, "wires": [ [ "32cc4c94.abcce4", "f1ee532c.95b88" ] ] } ]
In dem Fall darf sich der Wert 5 s lang nicht mehr ändern - kannst natürlich auch auf 1 s stellen - bis dann der Wert gesendet wird.
Ach und auf Deine Frage wieso Du den translate vorschalten muss - ist da der Node-Red Adapter alles in Strings umwandelt.
Das kann man zwar abschalten - aber ich habs auch so belassen - dann weißt Du dass halt immer Srings rauskommen
-
GEIL GEIL GEIL!!!! DANKE....das ist genial. Bin mit beiden Punkten einen entscheidenden Schritt weiter. Und das in so kurzer Zeit. Kann ich Dir virtuell eine Umarmung zukommen lassen? Ach das geht ja Dank Corona nicht
Das mit dem Rollladen und dem Trigger funktioniert und ist ein akzeptabler Workaround.
Eine letzte Frage dazu:Die Werte gehen ja von 0-100%. Ich würde gerne den Zustand im Schalter sehen, das geht aber nur mit Step 1**.
Zum Rollladen schließen, müsste ich also 100x auf Ab drücken oder drauf bleiben, bis der Wert auf 0 ist. Das Sofortige setzen von 100 auf 0 geht aber nur mit Step 100. Gibt es hierfür auch noch eine Lösung?Mit diesem Vorgehen würden sich neben Rollläden auch Heizungen oder Dimmer gut schalten lassen, oder?
-
@tomily
Also Du kannst schon 0-100 machen und Step 10 oder andere Schrittweite.Wenn Du ein Problem hast - kann das ebenfalls sein, dass das mit dem String nicht aus iobroker funktionierts und Du konvertierst das in eine Zahl. Also damit kann ich jede Schrittweite erzeugen.
[ { "id": "c31e7f09.ce296", "type": "change", "z": "6e170384.60c96c", "name": "to Number", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "$number(msg.payload)\t", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 470, "y": 4560, "wires": [ [] ] } ]
Für komplett auf und zu würde ich halt einen Button machen, indem du dann direkt 0 oder 100 bei Drücken schickst.
-
Das mit dem "Convert" to ist mir jetzt noch nicht ganz klar. Ich versuche mich aber mal daran.
Werde das eben erlernte gleich nochmal mal ausprobieren und testen, ob das schalten nun funktioniert.
Melde mich wieder. Vorab aber schonmal ein fettes DANKE!
-
Mach Dir einfach immer ein Debug Node dahin, wo Du den Ausgang sehen möchtest.
Im Debug Fenster sind Zahlen immer blau dargestellt und Du siehst den Typ "number"
Ist es eine Zeichenkette dann würde "6" in rot dargestellt ausgegeben und Typ "string".
und habe gerne geholfen.
-
Vielen Dank "mickym".
Beide Probleme sind gelöst!
Habe sowohl den Switch, als auch die Rollladensteuerung hinbekommen.Durch den Debug-Node, konnte ich noch weitere Probleme finden und kann mit meinem eigentlichen Projekt weiter machen.