NEWS
Node Red fehler bei Umstieg auf Raspi4
-
-
@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?
-
@homoran Sowie ich Oskar verstanden habe - kommt aus seiner Alexa-NOde was raus. Was ich aber gerade mit ihm versuche, in dem ich in den Homematic Datenpunkt Level einen Zahlenwert reinschreibe um zu sehen, ob sich der Rollladen wie gewünscht bewegt
-
@mickym
Ja ist ja auch keine Vorwurf und ich hatte da auch keine Zeit mehr. So wie oben funktioniert es aber und das sind auch keine Fehler drin. Ich hatte den aller ersten Wurf nur versemmelt weil ich das nicht getestet hatte und am Handy war.
Wenn er das so wie oben mit zwei Hub Nodes macht, dann geht das nicht, weil Hub ist Hub und darf nur einemal verwendet werden und muss zwingend auf Port 80 laufen.
@Homoran
Die NodeRed Geschichte ist die lokale Variante für Alexa
Wenn er keine Alexa hätte, hätte ich das die ganze Zeit komplett missverstanden, da die Nodes die er Verwendet hat, nur für die lokale Anbindung an Alexa dienen. -
@jan1 Ich glaub Dir das ja - und der Alexa Teil wäre der 2. Teil - wo wir auf jeden Fall Deine Hilfe brauchen. Ich kenn mich da ja weniger aus. Aber @Oskar soll erst mal verstehen oder testen, ob er über Node Red mit verschiedenen Zahlen die in den Homematic Datenpunkt Level injiziert - seinen Rollladen steuern kann. Und auch damit @Oskar versteht wie NodeRed funktioniert und das mit der InjectNode einiges simulieren kann, halt ich das auch aus "didaktischen" Gründen eine valide Vorgehensweise, wie man sich diesem "verfluchten"
NodeRed nähern kann.
Wenn das nämlich nicht geht - dann kann Alexa soviel ausspuken, wie und was sie will.
-
@mickym Hallo, ja ich verwende Alexa, aber ich habe eben gehört das es über node Red offline geht, nur so bin ich auf node Red gekommen.
Also, das hat gepasst, ich kann jetzt den Rollladen nach Eingabe der passenden Zahl zwischen stoppen.
Wir können ja dann morgen weitermachen, lg