NEWS
Nodered Alexa Logik
-
Hallo ich habe die Alexa im ioBroker integriert und würde gerne über notered die Lautstärke erhöhen bzw verringern mit step+ und step-. Ich kann zwar im ioBroker direkt sagen 50%, 70% usw aber dies nützt mir nix. Wie würde die Logik in nodered aussehen um dies zu realisieren?
-
@timowald Hi, das könnte man so machen: Über Get Node (Player.volume) aktuelle Lautstärke auslesen, dann den Wert zum erhöhen oder veringern dazu rechnen/abziehen (in meinem Fall +/- 5) und das wieder an den Echo übergeben (Player.volume) Dazwischen habe ich noch einen Switch, damit ich nicht unter 0 oder über 100 steuere.
-
@frankyboy73 Habe es jetzt bei mir eingefügt. Es geht aber nur Lautstärke -.
Bei Volume + kommt im ioBroker die Fehlermeldung: Datatype for Echo-Devices.G091AA08052424JH.Player.volume differs from expected, ignore state change! Please write correct datatype (number)
-
@timowald Hi, kann es sein das du dir die Iobrker Eingangswerte in String, Zeichenkette reinholst? Einstellung bei Node Red Instanz Haken gesetzt? Dann bekommst du keine Nummer sondern nen String aus der Get Node. Wenn ja würde ich das deaktivieren, dann muss du deine anderen Flows aber auch darauf anpassen.
Oder du änderst in der Funktion den String vorm Berechnen in Nummer um. Das in die Funktion:msg.payload = Number(msg.payload) + 5; return msg;
bzw.
msg.payload = Number(msg.payload) - 5; return msg;
Obwohl es mich wundert das es bei minus funktioniert und bei plus nicht.
-
@frankyboy73 Hi, mit der änderung der Funktion funktioniert es. Danke. Das einzige was noch ist was mich aber nicht weiter stört ist:
Wenn ich die Lautstärke erhhöhe 25, 30, 35, 40 und dann verringer kommt erst 45, 40, 35, 30 andersrum genau so. Also immer noch mal eine Stufe höher. Stört mich aber nicht weiter. -
@timowald Hi, mit was steuerst du denn die Lautstärke ? Bei mir funktioniert das Problemlos. Du könntest sonst mal deinen Flow zeigen, vielleicht muss da vorher noch was abfangen werden. Du könntest eventuell mal selber mit Debug Nodes schauen, warum erst in die andere Richtung gesteuert wird. Irgendwo durch muss das ja getriggert werden.
Auch möchte ich noch mal auf die Einstellung Ausgabe als Zeichenkette / String hinweisen, wenn das deaktiviert ist, ist es für die meisten Anwendungen wesentlich einfacher, da ich die Ausgabe der In und Get Nodes dann meistens als Bool bzw. Zahl habe und nicht als Text und man muss nicht mehr so viel umwandeln.
Nur als Beispiel, wenn ich mit nem Schalter/Datenpunkt ne Lampe/Datenpunkt Ein/Aus schalten will, wenn ich also mit ner Iobroker In Node ne Iobroker Out steuern will, also wenn die In Node true ist soll auch die Out true sein und wenn die in false ist soll auch die Out Node false sein, dann würde das bei der String konvertierung so ausgehen:
In Node, dann Switch zu abfrage ob Zeichenkette/String ist true oder false und danach noch Change Node um den String in ein Bool zu wandeln.
Wenn die String Konvertierung aus ist sieht das so aus:
Aus der In Node kommt direkt Bool true/false und kann direkt auf die Out Node.
Ist nur ein Beispiel und jeder muss für sich wissen womit er besser klar kommt. Kann natürlich auch ganz schön Arbeit sein wenn man das erst ändert wenn man schon viel umgesetzt hat.