NEWS
Node Red fehler bei Umstieg auf Raspi4
-
@mickym
Na inhaltlich kommt es aufs Selbe raus
Bin eh kein Freund von NodeRed, da sich mir diese Logik nicht so ohne weiteres offenbart. Verwende ich nur für Anbindungen an Alexa, sonst Blockly da wesentlich logischer im Verständnis. -
@jan1 said in Node Red fehler bei Umstieg auf Raspi4:
@mickym
Na inhaltlich kommt es aufs Selbe raus
Bin eh kein Freund von NodeRed, da sich mir diese Logik nicht so ohne weiteres offenbart. Verwende ich nur für Anbindungen an Alexa, sonst Blockly da wesentlich logischer im Verständnis.Na ich bin ein richtiger Fan - dafür habe ich nichts mit Alexa und Blockly am Hut. und logischer im Verständnis ist blockly auf keinen Fall. Zum Debuggen ist NodeRed auch wesentlich einfacher und man sieht was passiert. Man darf aber halt auch bei NodeRed nicht versuchen mit Strings zu rechnen.
-
@mickym
Bei Blockly verknüpf ich einfach mit UND und ODER, was sich selbst erklärt. Bei NodeRed wüsste ich nicht mal welche Node ich da verwenden soll.
Dann muss ich da recht wenig debugen, weil das in der Regel so funktioniert wie ich mir das vorstelle.Ich bin Elektroniker von Beruf und deshslb brauch ich bei Blockly nicht lange nachdenken;)
Das gleiche wirst Du mir jetzt auch von NodeRed erzählen, ist aber OT hier
-
@jan1 Jo - klar. Kann man ja mal in einem eigenen Thread diskutieren, wenn da Bedarf besteht. Aber von nun an halte ich mich hier wieder raus, da ich wie gesagt von der Alexa Anbindung keine Ahnung habe. Ich komme eher aus dem IT-Bereich. Obwohl ich finde gerade als Elektroniker müssten Dir die "Schaltpläne" in NodeRed eigentlich liegen.
-
@jan1 kannst mir sagen wo ich schauen soll, es sind fast 600 Einträge und ich weis nicht nach was ich suchen soll
-
@oskar
Eigentlich sollte der Link schon genau da landen wo es für Dich interessant wird, ist aber im letzten Drittel wo es ums Dimmen geht und das ist das was Du für den Rollladen willst. -
@mickym
Ich kann genau da kein Zusammenhang zu nem Schaltplan bei NodRed erkennen. Bei Blockly ist mir vieles sofort klar. -
@jan1 hallo, ich habe es nun schon den ganzen Nachmittag versucht aber ich komme so nicht weiter , alles was ich versuche scheitert. Auch meine Familie habe ich schon geärgert mit dem laufenden Rollladen rauf oder runter. Wenn es geht geht nur ganz auf oder ganz zu,lg
-
@oskar
Das ist auch nicht wirklich das richtige Beispiel aus dem anderen Thread. Schau doch mal was bei nem Kommando auf z.B. 80 durchgereicht wird. Dann musst auch mal den gewünschten DP manuell auf 80 setzen, nicht dass Du da ein falschen DP verwendest oder der gar kein % kann.
Alles was über die Node rein kommt müsste von 0 bis 255 sein. Du brauchst für den Rollladen aber 0 bis 100 und genau da sollte die Berechnung bewirken. Ob das auch am DP so ankommt, siehst ja.Das Kommando für Alexa müsste für das Beispiel und 80% "Alexa, Rollladen süd auf 80" lauten.
Dann nächste Frage, warum machst das nicht mal so wie ich es oben geschrieben hatte mit der ändern Node?
Oder alternativ als Funktion und dann kommt das rein:
Letzte Frage, was ist denn das überhaupt für ein Gerät und wie sehen die DPs dazu aus?
Edit:
mein erstes Beispiel funktioniert nicht über die change Node, aber das zweite über die Funktion läuft einwandfrei, wobei ein kleiner Fehler drin ist. Es muss durch 254 geteilt werden und nicht durch 255 -
@oskar said in Node Red fehler bei Umstieg auf Raspi4:
@jan1 hallo, ich habe es nun schon den ganzen Nachmittag versucht aber ich komme so nicht weiter , alles was ich versuche scheitert. Auch meine Familie habe ich schon geärgert mit dem laufenden Rollladen rauf oder runter. Wenn es geht geht nur ganz auf oder ganz zu,lg
Warum machst Du nicht hinter die Change Node und die function Node ein Debug Node, um zu sehen was rauskommt?
Ich behaupte mal dass die Change NOde kein Ergebnis liefern kann, weil man mit Strings so nicht rechnet.Prüfe mit einer weiteren Debug Node was da rauskommt. Was soll den bri überhaupt sein? Ist das wie in der function NOde msg.bri, ist das nummerisch? Was soll denn in die iobroker out Node- die payload?
Warum hängt an der einen Alexa Node eine function Node - an der anderen ein Change NOde?Poste einfach mal was aus den Alexa Nodes rauskommt und in die Homematic (iobroker Node) rein soll?
Wenn Du mir alle diese Fragen beantworten kannst - dann kann ich vielleicht auch helfen. -
@mickym
Das war nur ein Versuch den ich mir aus den Rippen geschwitzt hatte und in der Annahme war, es wird so gerechnet, String war übrigens falsch. Hatte das bei mir mal nachgebaut aber das läuft so nicht. Über die Funktion gehts so wie ich geschrieben habe.
bri steht für brightness dessen Wert eben 0-255 annimmt und das wird eben so in 0-100 umgerechnet -
@jan1 melde mich wahrscheinlich in 2 Std. - bin gerade beschäftigt^^
-
@mickym
Ich bin für heute fertig, kannst aber gerne hier weiter machen. NodRed ist nicht mein Gebiet und da bin ich auch nur am Probieren, bis ich was gefunden habe, dass das macht was ich will.Fakt, über Funktion und dem paar Zeilen läufts einwandfrei, wobei man das doch bestimmt auch ohne manuellen Code erledigen können müsste
Die Amazon Node ist übrigens ne HUE Emulation, deshalb das 255 was für 100% Helligkeit steht. Da man so auch alles andere Regeln kann, muss eben der Wert nur in das umgerechnet werden, was man braucht. Der Rollladen wird in der Regel mit 0-100 gesteuert und so lässt sich dass dann schön direkt mit Sprachbefehl an Alexa eingeben. Die zweite Node ist der friendly Name des Device auf den Alexa hört, somit musst einfach "Alexa, "friendly name" auf 50 (oder 50%)" sagen und schon fährt der Rollladen auf 50%. Wenn man dann noch einfach hoch und runter will, sieht das ungefähr so aus wie das Beispiel das er oben verwendet hat. Wobei es hier wie immer über IOBroker viele Wege der Lösung gibt.
-
-
@jan1 said in Node Red fehler bei Umstieg auf Raspi4:
@mickym
Ich bin für heute fertig, kannst aber gerne hier weiter machen. NodRed ist nicht mein Gebiet und da bin ich auch nur am Probieren, bis ich was gefunden habe, dass das macht was ich will.Fakt, über Funktion und dem paar Zeilen läufts einwandfrei, wobei man das doch bestimmt auch ohne manuellen Code erledigen können müsste
Die Amazon Node ist übrigens ne HUE Emulation, deshalb das 255 was für 100% Helligkeit steht. Da man so auch alles andere Regeln kann, muss eben der Wert nur in das umgerechnet werden, was man braucht. Der Rollladen wird in der Regel mit 0-100 gesteuert und so lässt sich dass dann schön direkt mit Sprachbefehl an Alexa eingeben. Die zweite Node ist der friendly Name des Device auf den Alexa hört, somit musst einfach "Alexa, "friendly name" auf 50 (oder 50%)" sagen und schon fährt der Rollladen auf 50%. Wenn man dann noch einfach hoch und runter will, sieht das ungefähr so aus wie das Beispiel das er oben verwendet hat. Wobei es hier wie immer über IOBroker viele Wege der Lösung gibt.
So nachdem ich weder HM noch Alexa habe habe ich das mit 2 Inject Nodes simuliert, die muss man dann halt gegen die Alexa Nodes ersetzen bzw. parallel anklemmen, dann kann man mit den Inject Nodes den Flow testen.
Die obere Inject Node spukt msg.bri als Zahlenwert von 0-255 aus. (habe mal 230 genommen) Ihr müsst halt ggf. mit einer Debug Node aus der Alexa Node prüfen, ob da Zahlenwerte rauskommen - sonst muss man die konvertieren.
Die untere inject Node soll also nur msg.bri von 0-100 ausspuken (habe mal 75 genommen) (das wäre dann wohl die friendly name).Die obere Change Node rechnet nach Eurer Formel denn HUE Wert auf einen Wert von 0-100 um, die untere wird nicht umgerechnet - sonst müsst ihr ja nur die auch mit der oberen verdrahten.
Beides mal wird msg.bri ausgegeben, deswegen wird das in msg.payload umgewandelt. Den Datenpunkt in der iobroker out Node musst Du halt setzen, wie er bei Dir im System ist.
Die Debug Node kannst löschen, wenn alles klappt.
Wenns nicht klappt - dann habe ich wahrscheinlich was falsch verstanden. Hier noch der Flow zum importieren:
[ { "id": "78ae7ad.c57f584", "type": "inject", "z": "dce8fa20.2e93c8", "name": "brightness = 230 (0-255)", "props": [ { "p": "bri", "v": "230", "vt": "num" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payloadType": "str", "x": 2130, "y": 180, "wires": [ [ "9be42e6a.b79ad" ] ] }, { "id": "fa13a626.4f7b38", "type": "inject", "z": "dce8fa20.2e93c8", "name": "brightness = 75 (0-100)", "props": [ { "p": "bri", "v": "75", "vt": "num" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 2140, "y": 240, "wires": [ [ "96045534.899a38" ] ] }, { "id": "b358e580.cb52e8", "type": "debug", "z": "dce8fa20.2e93c8", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 2930, "y": 300, "wires": [] }, { "id": "9be42e6a.b79ad", "type": "change", "z": "dce8fa20.2e93c8", "name": "rechne HUE nach %", "rules": [ { "t": "set", "p": "bri", "pt": "msg", "to": "$round(bri*100/255)\t", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2420, "y": 180, "wires": [ [ "96045534.899a38" ] ] }, { "id": "96045534.899a38", "type": "change", "z": "dce8fa20.2e93c8", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "bri", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2670, "y": 240, "wires": [ [ "a728adcc.fc024", "b358e580.cb52e8" ] ] }, { "id": "a728adcc.fc024", "type": "ioBroker out", "z": "dce8fa20.2e93c8", "name": "", "topic": "Homematic DP", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 2940, "y": 240, "wires": [] } ]
ggf. macht halt eine Debug Node an Eure Alexa Nodes und postet den Screenshot mit Debugfenster.
Im Prinzip ist so ein Node-Red Flow einfach. Man muss wissen, was aus dem Flow rauskommen soll und was wann wie reinkommt in den Flow. Und wenn aus den Alexa Nodes halt noch mehr als msg.bri rauskommt, dann muss man halt entsprechend verarbeiten. Dazu sind die Debug-Nodes aber da, damit man das sehen kann!
-
@oskar Und wenn das diese Nodes sind,
dann klemm mal eine Debug Node an und schau, Dir nicht die Payload, sondern das ganze Message Object an. (kann man in der Debug Node einstellen).Da siehst dann was noch in dem Objekt steht:
Ich lese gerade:
Alexa, turn on/off {device}
Alexa, switch on/off {device}
Alexa, set {device} to 50%
Alexa, turn my {device} light green
Alexa, set the {device} light to orange
Alexa, make the {device} warmer
Alexa, brighten {device} to 60 percent
Alexa, dim the {device} lightsalso gibts vielleicht sowas wie color etc. auch noch.
In dem Fall analog zu msg.bri einfach die anderen Nodes dranhängen!
-
@mickym Hallo, ich musste für 3 Tage weg und deshalb konnte ich mit dem Problem nicht weitermachen und würde mich freuen mit Dir das Problem zu lösen. Ich bin wirklich leihe und versteh nur vielleicht ein viertel. Ich bin deshalb mit deinen Ausführungen überfordert und würde dich bitte mir das ganze schritt für schritt erklären. Wo kann ich zum Beispiel dies eintragen
Mit diesem Eintrag kann ich den Rollladen öffnen uns schließen
ich danke schon im voraus, lg -
@mickym der passende Eintrag dazu
-
@oskar Wenn Du auf das "Select all" in dem schwarzen Fenster gehst, dann wird der ganze Code markiert. Dann kopierst Du den in die Zwischenablage mit <Strg+C>.
Anschließend öffnest Du ein Flow wo noch Platz ist. Dann gehst Du im Node Red oben rechts in das Menü (sind 3 waagrechte Striche). Dort wählst Du Import aus. Dann öffnet sich ein Fenster "rosa hinterlegt". Dort kopierst Du den Inhalt der Zwischenablage mit <Strg+V> hinein. Dann drückst Du auf Import und dann plazierst Du erst mal die importierten Nodes siehe mein Screenshot dahin wo noch Platz frei ist oder nimmst eine neue Seite - einen neuen Flow.
Dann deploy.
Ich muss heute nur zwischen 20 Uhr und 23 Uhr Pause machen. Da kann ich Dir leider nicht helfen.
-
Meines Erachtens ist das was Du mit dem Change Node gemacht hast, wahrscheinlich auch falsch, wenn man alles über den Punkt "LEVEL" schaltet. Das können wir dann aber im iobroker überprüfen, wie dieser Datenpunkt definiert ist.