NEWS
Node Red fehler bei Umstieg auf Raspi4
-
@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.
-
@mickym dank deiner guten Anleitung habe ich dies geschaft, habe dafür einen neuen Flow erstellt, muß ich jetzt noch den datenpunkt eintragen? Ist kein Problem wenn du ab 20 Uhr keine Zeit hast
-
@oskar Genau in die Node - die ich Homematic DP genannt habe (die öffnest Du mit Doppelclick)- da wählst Du über die 3 Punkte Deinen Datenpunkt aus.
Da wo ich den Pfeil hingemacht habe - öffnet sich ein Fenster und da Deinen Datenpunkt aus dem iobroker auswählen.
Dann sollte statt HomeMatic DP - wieder Dein Datenpunkt drin stehen: -
@oskar
Eigentlich hatte ich Dir ja schon die Lösung über die Funktions Node gegeben, scheint aber wohl unter gegangen zu sein.
Also hier noch mal:
Direkt hoch und runter machst direkt mit Alexa über eine Routine und gar nicht mit NodeRed, da das erstens direkt ist und zweitens einfacher.
Dann kannst die Hub Node auch nur einmal verwenden und daran werden alle Device Nodes angebunden.
-
@mickym hallo, das habe ich geschaft
-
@oskar sieht so aus
-
@oskar Gut jetzt kannst Du über die Inject Nodes die ich Dir vorgegeben habe ja erst mal verschiedene Zahlen versuchen. Also bei dem von 0-100 ob mit 50 der Rollladen auf halbe Höhe fährt, ob mit 0 er ganz auf oder zu fährt. Schau mal ob das geht. Du
Super !!! Der Screenshot -
Mal ne Frage, warum macht Ihr das jetzt so kompliziert, wenn es über die Funktion und den sehr einfachen Flow den ich oben gepostet habe wie gewünscht funktioniert?
Alexa steuert damit den Rollladen auf exakt den Wert den man in % angibt. Auf und zu wird mit ner Routine gemacht, die den DP dann eben bei "Alexa, Rollladen hoch" auf 100 setzt und bei "Alexa, Rollladen runter" auf 0. Einfacher geht nicht, -
@jan1 Da ist gar nichts kompliziert. Deine function NOde habe ich in den Change Node rechne HUE nach % um implementiert.
Ich will erst mal sehen, ob mit dem HM Level Punkt mit verschiedenen Zahlenwerten sich entsprechend verhält. Ausserdem siehst Du ja dass ich bereits msg.bri verwende.
Mir geht es aber darum erst mal den Alexa Node mit der inject NOde zu simulieren, um Alexa als Fehlerquelle auszuschließen. Du hast mich doch selbst gebeten, dass ich mal posten soll wie ich es machen würde. -
Ich bin gerade hier rein gestolpert.
@jan1 sagte in Node Red fehler bei Umstieg auf Raspi4:
Alexa steuert damit den Rollladen auf exakt den Wert den man in % angibt
Da ich selber keine Alexa in mein Haus lasse (gibt hier schon zu viele Frauen), kann ich nicht selber testen.
Aber wenn ich @Oskar im ersten Post richtig verstanden habe, nutzt er keine Alexa, sondern eine Offline-Variante
(Hatte mal so etwas im Forum gelesen)@oskar sagte in Node Red fehler bei Umstieg auf Raspi4:
Ich hatte die Alexa ohne ioT Adapter also nur Lokal verwendet.
Bist du da auf dem richtigen Weg?