NEWS
Alexa Temperaturabfrage mit Node Red
-
@frankyboy73 ja, was meinst du?
-
@kymchy Damit kannst du doch Ausgaben auf deine Echos machen.
Da gibts verschieden Ansätze, du könntest z.B. mit der Alexa Home node die du schon hast den Flow zu Abfrage triggern, dann die Temperatur abfragen und über die Alexa2 History abfragen am welchen Echo du die Abfrage gestartet hast und das dann an dem entsprechenden Echo wieder ausgeben.
Oder du liest in Alexa2 in History summary aus was du gesagt hast und wenn der entsprechende Satz z.B. "wie ist die außentemperatur" gesagt wurde löst du den Flow zur Temperaturabfrage, welcher Echo und Ausgabe auf entsprechenden Echo aus.
Bei der Variante die summary auszulesen, müsstest du dir in der Alexa App noch ne Routine erstellen,wenn folgendes passiert, mit dem gleichen Satz den du sagen willst z.B. "wie ist die außentemperatur" und als Action "Warten" 5 Sekunden oder so, sonst Quatsch Alexa bei deiner Anfrage irgendeinen Quatsch, wie das Wetter ist, oder das sie das nicht weiß. -
@kymchy Hi, hab mich mal etwas umgeschaut, sonst gibt es noch diese Nodes. Damit soll wohl die Temperaturabfrage möglich sein. Daür musst du natürlich auch die Temperatur an die entsprechende Node senden. Da werden auch viele Beispiele gezeigt und die wird momentan auch aktuell gehalten.
https://flows.nodered.org/node/node-red-contrib-virtual-smart-home
Da müsstest du dann wohl nur deine Außentempertatur über Iobroker Input Node auf die Alexa Node senden. -
@frankyboy73 OK, ich guck mir das mal an, danke! Zu deinen ersten Beispielen, das geht dann über Funktionen? Ich kann ja nicht ein Speak Command auf einen ioBroker out legen, oder doch?
-
@kymchy Geht auch per Change Node. Ne einfache Sprachausgabe auf einen bestimmten Echo, würde dann so aussehen.
Oder so wenn man es mit ner Funktion macht.
-
@kymchy Wenn du die Außentemperatur mit rein haben willst, musst du die mit ner get Node Abfragen und die msg. mit in den Text reinbringen.
In diesem Fall frage ich auch noch den letzten angesprochenen Echo habe und gebe den Text dort aus. Dafür muss dann in der Output Node das Topic leer bleiben, das wird von der Change Node geschrieben.
Geht auch mit Funktion Nodes
Edit: Habe den Code mit den Funktion Nodes noch mal angepasst, da hatte ich nen Fehler
In der Funktion Node (speak) Runde ich übrigens die Temperatur noch auf eine Stelle nach dem Komma. -
Danke für deine ganze Mühe! Ich wollte jetzt mal diese Geschichte mit den virtuellen Geräten ausprobieren. Das ganze soll recht gut funktionieren. Aber ich glaube, für die Abfrage muss der Wortlaut haargenau stimmen, das fände ich persönlich nicht so toll. Mal sehen...
-
Im Moment sieht das erstmal so aus:
Ich habe keine Ahnung, wo ich da jetzt mein ioBroker in anschließen soll. -
@kymchy Hi, genau weiß ich das auch nicht, da ich die Node selber nicht verwende.
Die iobroker in kommt auf jeden Fall anstatt der Injekt Node. Wenn ich das richtig gesehen habe musst du die Temperatur als msg.payload.temperature übergeben und mit msg.payload.scale noch CELSIUS für die Scalierung. Das geht mit ner Change Node.
Edit: In diesem Fall würde ich bei der In Node die Einstellung "send Message at start wählen" damit du bei Deploy bzw. bei Node Red Neustart sofort nen Temperaturwert bekommst.
Als Tipp noch: Du solltest in den Adaptereinstellungen von Node Red, den Punkt "iobroker Werte in Zeichenkette konvertieren" deaktivieren (ist Standartmäßig leider immer aktiviert), da sonst die iobroker in und get Nodes nur Strings (Zeichenketten) ausgeben. Wenn man das deaktiviert kommen Boolean (true / false) bzw. Nummern aus den Nodes, damit lässt sich besser arbeiten.
-
@frankyboy73 Jo in dem anderen Projekt klappen die anderen Nodes super inkl. Temperaturabfrage. Insofern wenn ich Alexa nutzen würde, kann ich die Nodes nur empfehlen.
@Kymchy @frankyboy73 hat Dir ja gezeigt wie man die Alexa Node füttert. Du findest übrigens über die Import Funktion - und Beispiele - falls Du Dir diese NOdes installiert hast - welche Parameter gefüllt werden müssen.
![0_1637443942187_264d2e94-83ac-4f12-bf52-b863ca1d3688-image.png](Lade 100% hoch)
-
@mickym @frankyboy73 Vielen Dank für die Tipps. Habs so gemacht, funktioniert aber leider nicht. Bekomme keine Werte in den DPs...
-
@kymchy Hast Du Dir denn diese Nodes installiert? - Das Beispiel muss doch funktionieren, da nimmst Du doch eine Inject node als Input.
Wo möchtest Du den Werte haben? Du willst doch Temperaturen auslesen und nicht setzen?
-
@mickym ich habs so gemacht, wie frankyboy es beschrieben hatte, also den Inject Node ersetzt durch den ioBroker in Node. Und den Change Node noch dazwischen.
-
@kymchy Und in dem DP den Du in der iobroker-In Node zeigt auf eine Punkt der die Temperatur anzeigt? Ich weiss wo der Fehler liegt - Du bekommst wahrscheinlich eine Fehlermeldung im Log.
-
@mickym ja genau:
Unter dem ioBroker Node wird die Temperatur ja auch angezeigt. -
@mickym Cannot set property of non-object type: payload.scale
meinst du den? -
@kymchy sagte in Alexa Temperaturabfrage mit Node Red:
@mickym Cannot set property of non-object type: payload.scale
meinst du den?Ja - ich zeig Dir gleich wie man den behebt und das ist die Ursache.
So Du nimmst beim ersten Parameter ein Verschiebe (und Du musst das ganze umdrehen) :
-
@mickym
keine Daten in den DPs, müsste da nicht was kommen?
-
@kymchy Na diese Datenpunkte haben doch mit der Alexa Node nichts zu tun - diese müssen doch von Deinem Sensor /Aussenfühler gefüllt werden oder was sind das für Datenpunkte??? Jedenfalls hat das mit der Alexa Node nichts zu tun.
Die Temperaturwerte müssen doch von Deinem Homematic IP gefüllt werden.
-
@mickym naja, das ist doch der Sensor, den Alexa gefunden hat, nachdem ich den Node eigerichtet hatte