NEWS
Temperaturen über Node RED und Alexa abfragen!
-
@basti97 Nichts gegen Node red und Blockly...
Damit kann man sehr gut so einiges lösen.
Ich weiss zwar nicht, von welchem Gerät die Temperatur kommt, aber hier scheint mir der IOT-Adapter die beste Wahl zu sein.
Der zeigt zwar keine Werte in der App an, aber die Abfrage mit Alexa funktioniert damit ohne Probleme.
Ganz ohne Blockly / Node red und Routine in der Alexa App.P.S.: Javascript / Node Red sind trotzdem interessante Dinge in die man sich einlesen sollte
-
@basti97 Wenn du spezifische Abfragen umsetzen möchtest die Alexa nicht kennt, bzw. mit der Alexa Node nicht gehen, wirst du nicht ohne Routinen auskommen damit Alexa nicht meckert. Ich habe das auch bei einigen Abfragen so umgesetzt, der Vorteil ist, das man genau die Sätze erstellen kann die einem selber als Sinnvoll erscheinen und nicht die nutzen muss die Alxea sinnvoll findet.
Als Beispiel mein Geragentoröffner. Wenns nach Alxea geht muss ich sagen "schalte Garage Ein" wenn ich die Garage schließen oder öffnen will. Über Routinen habe ich das so gelöst das ich einmal eine habe, wenn ich sage " Öffne Garage" und eine wenn ich sage "Schließe Garage" in beiden Routinen habe ich dann als Aktion Smarthome Gerät Garage Ein. Ist doch viel sinnvoller.
Du könntest auch den Weg gehen, ne Routine erstellen "Wie ist die Temperatur im Aquarium" als Aktion dann das Gerät Aquarium auswählen (Einschalten) und in Node Red dann wenn Aquarium eingeschaltet wurde den Temperturwert per speak ausgeben.
Wenn du Node Red interessant findest, solltest du dich da auf jeden Fall mit beschäftigen. Ich bin dadurch komplett von Blockly weg und spare mir dadurch auch andere Adapter wie Telegramm, Email oder Vis, da sich das alles in Node Red umsetzen lässt. (Die Vis ist in Node Red allerdings eher funktionell als optisch schön)
@Fenian Sicher wäre hier der IOT eine bequeme Lösung, ist allerdings ne Cloudlösung zu der man bei bei zu vielen Abfragen auch noch ein Abo braucht. Bei den Alexa Nodes bleibt alles Netzintern. -
@fenian Zurzeit kommt es noch von einem Slave RP und später kommt es dann von einem ESP.
PS Ich konnte nicht eher Antworten hatte in den letzten Tag keine Zeit um mich mit iob zu beschäftigen.
Gruß Basti -
@frankyboy73 Dann muss ich wohl oder übel mich mal mit der Konfiguration der Routinen beschäftigen. Ich dachte ich kann so etwas komplett im iob lösen. Aber das man mit den Routinen so viel machen kann wusste ich bis jetzt auch nicht.
Mhh aber auf die Idee die Temperatur als Schalter zu definieren und dann per iob ein Sprachnachricht zu definieren. Darauf bin ich noch gar nicht gekommen. Aber so ähnlich mache ich das schon mit meinem Deckenlicht. Das einzige was man dann nicht in der Alexa App sieht ist die Temperatur das ist aber nicht so schlimm.
Ja ich möchte nun vermehrt mich mit Nodered beschäftigen ich finde das sehr spannend. Hast du irgendwelche interessante Seiten die für den Anfang gut sind. Gibt es auch eine Funktion das ich die Programme aufteilen kann wie im Blockly zb eine Seite Alexa und die andere Seite etwas anderes. Das es dadurch ein bisschen übersichtlicher bleibt.
Ich hatte außerdem in den letzten Tagen mit der Verbindung zu Alexa ein kleines Problem gehabt. Das er sich nicht mehr verbinden wollte aber auch ein Neustart hat nichts gebracht. Erst als ich den Iob Fixer über mein System gelaufen habe, hat er sich endlich wieder verbunden.Mir ist unabhängig von dem Problem mit der Alexa folgendes bei Node red aufgefallen. Was muss ich da machen.!
-
@basti97 Hi die Meldung mit dem Palette Manager bekommt du wahrscheinlich weil du den aktiviert hast. Der ist ja dazu um Nodes zu installieren. Das Problem ist das die Nodes die du darüber installierst beim Backup nicht mit gespeichert werden und es in dem Adapter dazu ne andere Lösung gibt. Wenn du den Palette Manager weiter nutzen willst muss du dir die Nodes nach Backup einspielen selbst wieder installieren.
Schau dazu noch mal hier:
https://forum.iobroker.net/topic/34681/kein-paletten-verwalten-im-neuen-node-red-adapter
Neue Tabs für eine bessere Unterteilung / Übersicht kannst du mit dem Plus oben hinzufügen.
Es gibt da ein paar Youtube Videos für die Einführung. Zum Beispiel von
Haus-Automatisierung in Deutsch. Die von Steve Cope sind Klasse, allerdings in Englisch.
Das Einsteiger Video von Smart-in-One war glaube ich auch ganz gut und in Deutsch.
Sonst einfach mal Node Red in Youtube eingeben. -
@frankyboy73 Vielen Dank das gucke mir an. Den gleichen Amazon Echo Hub kann ich aber nicht auf mehreren Seiten einfügen oder? Weil da bekomme ich den Fehler Unable to Start port 80. Bei der anderen Seite (Tab) funktioniert es.
Meine Sprachansage der Temperatur funktoniert irgendwie immer noch nicht richtig. Und zwar möchte ich nur ein Datenpunkt auslösen. Beim Licht sage ich zb "Alexa schalte Wohnzimmer Licht Ein".
Und bei der Temperatur sage ich ja nur "Alexa Temperatur Aquarium" und das versteht sie irgendwie nicht ich habe in den switch den Text eingefügt anstatt wie bei den anderen an/AUS ABER trotzdem funktioniert es irgendwie nicht. -
@basti97 Du fügst den Echo Hub auf einer Seite ein . Wenn Du von dem HUB auf eine andere Seite / Flow verzweigen willst nutzt Du die
Nodes.
Um zu überprüfen was aus Deiner Alexa Node rauskommt hängst Du eine Debug Node dran - und entweder siehst Du es selbst oder postet hier den Output der Debug Node. Wenn Du "Alexa Temperatur Aquarium" weiß ja Alexa NUR welche Node sie anspricht. In dem Fall weiß ich auch nicht was der switch soll. Glaubst Du da kommt der String "Aquarium Temperatur" raus???? Und warum fängst Du das überhaupt ab - kannst doch direkt den Text ausgeben oder was für Ausgaben kommen den sonst noch aus dieser Alexa Node raus?
-
@mickym Vielen Dank das probiere ich Aus. Bezüglich Alexa sagt sie immer "da bin ich mir leider nicht sicher".
Die neue Idee ist das ich zb sage Alexa Temperatur Aquarium und sie steuert mir ein Datenpunkt auf true -
@basti97 Im Prinzip - deswegen nutze für so was keine function Nodes - willst doch Text an Deine Aquarium Node rausschicken - sobald an der Node was ankommt. Dann interessiert Dich doch gar nicht was rauskommt, sondern nur DASS etwas rauskommt. Und nimm für die Textausgabe lieber eine Template Node und keine Function Node. In die Template Node kannst Du einfach den Text reinschreiben, der dann rauskommen soll.
-
@basti97 sagte in Temperaturen über Node RED und Alexa abfragen!:
@mickym Vielen Dank das probiere ich Aus. Bezüglich Alexa sagt sie immer "da bin ich mir leider nicht sicher".
Die neue Idee ist das ich zb sage Alexa Temperatur Aquarium und sie steuert mir ein Datenpunkt auf trueHi, da kommt ja dann die Routine ins spiel, wenn ich folgendes sage "Alexa Temperatur Aqurium" dann als Aktion Smart Home "Temperatur Aquarium Einschalten". Dann sollte aus deiner Temperatur Aquarium Alexa Node ein true raus kommen, eventuell mal ne Debug Node dahinter hängen um zu sehen mit welcher msg das kommt. Dann kannst du im switch die msg auf true abfragen und damit deinen Datenpunkt ansteuern oder per Get Node die Temperatur Aquarium mitnehmen per Change Node oder Funktion Node direkt nen Text in den Speak command Datenpunkt schicken.
Edit: Oder wie @mickym schrieb ne Template Node für die Text / Sprachausgabe
Edit: Ich nutze die Alexa Node schon ewig nicht mehr, deshalb weis ich auch gerade nicht was da genau rauskommt. Wenn ich mich recht entsinne war das beim Schalter msg.on, dann müsstest du im Switch msg.on auf true abfragen. Sollte allerdings auch in der Beschreibung der Node stehen. Wenn du ne Node angeklickt hast kannst du dir ne Hilfe dazu anzeigen lassen.
-
@frankyboy73 Dankeschön
Und zwar wenn ich in der Alexa App den "Schalter einschalte dann bekomme ich etwas zurück" Wenn ich es aber sage sagt sie zurück "da bin ich mir leider nicht sicher". Und der Datenpunkt wird nicht ausgelöst. -
@mickym Die Idee ist das gesagte als true in einem Datenpunkt zu schreiben. Das funktioniert aber nicht bzw Alexa will das nicht verstehen.
-
@basti97 Trotzdem - Dich interessiert nicht, was rauskommt aus der Alexa Node sondern nur, dass etwas rauskommt.
Deswegen kannst Du Dir die switch Node komplett sparen und auch die function Node.Du hängst einfach eine Change Node zwischen die Alexa Node und die iobroker out NOde und setzt die payload auf true.
Dann wird der Datenpunkt auf true gesetzt sobald etwas aus der Alexa Node rauskommt.
Hat zwar mit Deinem Alexa Problem nichts zu tun - aber schalte in der Adapter Konfig zum NodeRed Adapter die Umwandlung in Strings aus. Je früher Du das machst, desto weniger Umstellungsaufwand hast Du später.
Bei Alexa ist @frankyboy73 sicher der bessere Ansprechpartner - da ich keine Alexa habe.
Weiß also nichts von Regeln etc.Nun solltest Du aber zumindest mit der Alexa App und der Change Node - Deinen Datenpunkt auf true stellen können.
Bei der Beschreibung zu den Alex Nodes kann ichhalt nur erkennen, dass die folgende Befehle kennt.
https://flows.nodered.org/node/node-red-contrib-amazon-echo
Example Alexa commands
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} lightsAber wie gesagt @frankyboy73 kann Dir zu der Alexa-Nodes sicher mehr sagen als ich.
-
@basti97 sagte in Temperaturen über Node RED und Alexa abfragen!:
@mickym Die Idee ist das gesagte als true in einem Datenpunkt zu schreiben. Das funktioniert aber nicht bzw Alexa will das nicht verstehen.
Hi, wenn du das was du sagen willst in der Alexa App in einer Routine benutzt sollte sie eigentlich nicht meckern.
Du gehst in der Alexa App auf Routinen, dann oben rechts auf +. Dann auf wenn folgendes passiert, dann auf Stimme. Da gibst du ein "Temperatur Aquarium" auf Weiter klicken, dann auf Aktion hinzufügen. Dann Smart Home auswählen, dann alle Geräte, dann das Gerät, sollte ja bei dir "Temperatur Aquarium" heißen, auswählen. An/Aus auswählen und An auswählen. Weiter, dann speichern.
Dann sollte beim nächsten mal wenn du sagst "Alexa, Tempertur Aqurium" sie nicht mehr meckern und du solltest ein true aus der Alexa Node in Node Red rausbekommen.
Edit: Du kannst auch "wie ist die Temperatur im Aqurium" oder alles mögliche eingeben, es muss aber genau der Text sein den du sagst. -
@basti97 Im Prinzip könntest du dir das hier direkt hinter deine Alexa Node (Temperatur Aqurium) hängen. Wie @mickym schrieb wird dann sobald was aus der Node kommt der Text mit der Temperatur ausgegeben. Du musst nur in der Get Node deinen Temperaturwert vom Aquarium auswählen und in der Output Node den Speak Datenpunkt deines Echos.
Ich habe das mit ner Funktion Node gelöst, mickym kann dir aber auch zeigen wie das ohne geht.
[ { "id": "fdfe16b2.b1b668", "type": "ioBroker get", "z": "9e1c0edb.e6d2d", "name": "TemperaturAquarium", "topic": "", "attrname": "payload", "payloadType": "value", "x": 310, "y": 2200, "wires": [ [ "730ebb37.76f514" ] ] }, { "id": "730ebb37.76f514", "type": "function", "z": "9e1c0edb.e6d2d", "name": "speak", "func": "msg.payload = Math.round(msg.payload * 10) / 10;\nmsg.payload = ' die Temperatur im Aquarium beträgt ' + msg.payload + ' Grad';\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "x": 530, "y": 2200, "wires": [ [ "b245d505.7ee648" ] ] }, { "id": "b245d505.7ee648", "type": "ioBroker out", "z": "9e1c0edb.e6d2d", "name": "speak", "topic": "alexa2.0.Echo-Devices.G2A0U204933506NS.Commands.speak", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 720, "y": 2200, "wires": [] } ]
Wenn du allerdings nur auf das true der Alexa Node reagieren willst, müsstest du noch einen switch davor hängen wo du das msg.on auf true abfragst.
Edit:
Erklärung: Kommt aus der Alexa Node eine Message (msg) raus, durchläuft die die Get Node, hier liest du deine Temperatur aus, in der Funktion Node wird der Text erstellt und die Temperatur (msg.payload) eingefügt (ich runde hier auf eine Kommastelle) und das ganze wird dann in die Output Node geschrieben ( command.speak)
Edit2: Sorry der Code war falsch kopiert, jetzt sollte es passen. -
@mickym Vielen Dank ich habe es den change eingebaut und das andere gelöscht. Und auch eine Alexa routine eingefügt. Wie es aussieht wird nun der Datenpunkt geschaltet. Nun muss ich nur noch eine Zeitverzögerung einfügen. Das der Datenpunkt wieder auf false zurück geht.
Wenn dann das funktoniert werde ich das Thema Dimmen mal in Angriff nehmen.
-
@basti97 Wieso willst du den Datenpunkt auf false zurücksetzen? Ist doch nicht nötig, denke ich. Wie verarbeitest du den weiter?
-
@basti97 Dann nimmst Du statt dem Change Node eine trigger Node. Die macht das alles in einem Die Zeitspanne kannst Du natürlich setzen wie Du willst.
Ausser @frankyboy73 hat eine andere Idee. Versuche gerade die Function Node - ohne zu function node zu zeigen.
-
@frankyboy73 Hey super für deine Idee das Probiere ich morgen mal aus. Jetzt heißt es TV gucken
Die Alexa Routinen habe ich gefunden und auch ausprobiert das funktioniert schon sehr gut. Das habe ich bis jetzt noch gar nicht gekannt da ich eigentlich alles im iob machen wollte. Ich werde in anderen Bereichen nun auch mal mit den Routinen experimentieren z.b wenn man ins Bett geht usw.Mit den Baustein von @mickym hat sich der Datenpunkt geändert. Nun muss ich nur noch ein false wieder hinbekommen. Und dein Text morgen mit einfügen. Dann sollte es klappen.
Denke ich -
@mickym Wow danke Nodered ist ja relativ einfach wenn man sich erst eiingearbeitet hat . Da gibt es ja für fasst alles ein Baustein wie bei Blockly. )
Dir noch einen schön Abend. Bis später