NEWS
[Anfänger] Abfragen einer Temperatur von einem BLE-Adapter
-
Einen wunderschönen.
Ich bin leider absoluter Anfänger was Node-Red anbelangt. Und habe leider auch nichts sinnvolles im Internet gefunden.
Also ich habe bereits geschafft meine Steckdose per Alexa ein/auszuschalten. Dies funktioniert auch erfolgreich.
Nun würde ich gerne von meinem Xiaomi (mittels BLE-Adapter angeschlossen) die Temperatur und Luchtfeuchtigkeit ausgeben lassen. [Wobei im Script erstmals nur die Temperatur abgefragt wird, erst sollte das funktionieren bevor ich die Luftfeuchtigkeit einfüge]
-
Dazu habe ich ein paar Fragen. Ich hab ein Reiter der AmazonEcho_Steckdose heißt. Ich wollte einen weiteren hinzufügen und den dann "AmazonEcho_Temperaturen" nennen. Wenn ich dort aber den Hub hineinsetze kommt der bekannte Fehler Port = 80. Ich denke ich kann den Hub nur ein einziges mal implementieren, bin ich mit der anmahne richtig? Oder warum klappt es bei dem Steckdosen-Reiter ohne Probleme?
-
Des weiteren habe ich versucht die Temperatur-Abfrage einzubinden allerdings funktioniert dies nicht, Echo meint das er den Befehl "nicht unterstützt". Also muss ich ja was falsch gemacht haben, kann mir jemand einen Lösungsvorschlag dafür bieten? Siehe Bild (Vielleicht war ich mit meiner Annahme auch falsch und es geht komfortabler/einfacher.)
Module =
-
"ioBroker get" wurde im Topic der Wert des ble-Adapter bzw. der Temperatur-Wert eingegeben und als Attribute
"payload" [Hier bin ich mir auch nicht sicher ob sich das mischt mit der Steckdose weil dort der Attribut auch payload ist] -
"join" wurde Manuell gesetzt, kombiniert mit "msg.payload"
-
"function":
-
"iobroker out" ist name: speak, type: Command und wurde topic wurde leer gelassen
Ich hoffe mir kann jemand einen neuen Lösungsvorschlag geben.
Liebe Grüße
-
-
@Chiller Heyho,
Du darfst den Amazon Echo Hub nur 1* setzen. Wenn du den Zweiten setzt machst du ja einen neuen Echo Hub, dieser will auch auf Port 80 laufen, der ist ja aber schon von dem ersten blockiert. Wenn du über mehrere Seiten arbeiten möchtest setz den Echo Hub auf einen Reiter und nutz die Input/Output Nodes.
Für die Ausgabe der Temperatur musst du eine Routine in der Alexa App schreiben. Leider kann der Amazon Echo Hub in node.red die Geräte nur als Glühbirne veröffentlichen. Amazon denkt sich dann wenn du nach der Temepratur fragst warum du wissen willst wie warm eine Glühbirne ist und sagt dir entsprechend das es das nicht unterstützt.
-
@Hc-Yami Danke für die Info. Hab mir deswegen schon ein Video angeschaut aber bin nicht glücklich mit der Lösung das mittels einen ReverseProxy zu machen wenn ich ehrlich bin.
-
@Chiller, bist du dir sicher, das ein Reverse Proxy dir bei deinem Vorhaben überhaupt helfen würde?
Ich würde an deiner Stelle einen Hub mit mehreren Geräten nutzen. Das die Geräte von Alexa als eine HUE-Lampe erkannt werden ist auch kein Problem. Ich benutze z.B. nur ein Alexa-Gerät und frage damit mit Alexa alle meine Temperatursensoren ab. Dazu erstelle ich verschiedene Routinen in der Alexa App, die dann die Helligkeit des virtuellen Alexa-Gerätes auf einen bestimmten Wert setzt.Um die Temperatur im Wohnzimmer abzufragen, erstelle ich eine Routine "Temperatur Wohnzimmer" und trage "Alexa, wie warm ist es im Wohnzimmer?"als Trigger ein. Als Aktion habe ich dann in der Alexa-App eingetragen, dass das Smarthome Gerät "Gerät1" (so habe ich das Gerät in Node Red genannt) auf den Helligkeitswert von z.B. 1 gesetzt wird. In Node Red setze ich dann direkt hinter den Alexa-Node "Gerät1" einen Switchnode. In diesem Switchnode prüfe ich auf den Wert 1 und verzweige auf den entsprechenden Ausgang. Hinter diesem Ausgang frage ich die eigentliche Temperatur des XIAOMI-Sensors mit einem IOBroker-Get Node ab.
Um die Temperatur in der Küche abzufragen, erstelle ich einfach eine weitere Routine "Temperatur Küche" mit dem Trigger "Alexa, wie warm ist es in der Küche" und setze dann die Helligkeit von "Gerät1" auf den Wert 2. In Node Red wird ja wieder die Message in den dahinter liegenden Switchnode geleitet. Dort prüfe ich jetzt zusätzlich auf den Wert 2 und verzweige auf den Ausgang 2. Dahinter wird wieder mit einem IOBroker-Get Node die Temperatur des Temperatursensors in der Küche abgefragt und ausgegeben. Mit diesem Konstrukt kann ich mit nur einem virtuellen Alexa-Gerät (Gerät1) zahlreiche verschiedene Sensoren und deren Werte abfragen, bzw. andere Aktionen in Node Red ausführen. -
@Seb_123
Hm, also ich hab es mittels Revers-Proxy auf YT gesehen.
Aber diese Idee hört sich auch recht interessant an ... mal schauen ob ich das so hinbekomme, danke für den Tipp! -
@Chiller nicht ReverseProxy sondern Routine. Das ist exakt das was Seb_123 beschreibt.
-
@Hc-Yami Ja, das habe ich schon verstanden. Der 1. Satz ist nicht mit dem 2. Satz kompatibel. Ich werde mal das was Seb erklärt hat, ausprobieren.
-
So, ich wollte das ganze mal probieren. Hab die Routine so eingestellt wie beschrieben und bei meinem "Gerät1" die Helligkeit auf 1 gedreht.
Nun sagt Alexa nur noch "OK" - leider hab ich dann wiederum was falsch gemacht, vielleicht kannst du mir da weiter helfen.So schaut mein NodeRed-Script dazu aus.
Liebe Grüße
Chiller -
@Chiller Zwischenzeitlich habe ich im "switch"-Modul, den string auf "1" gedreht, mehr als "Ok" kommt aber nicht.