NEWS
Temperaturen über Node RED und Alexa abfragen!
-
@mickym Ich meinte nur man braucht ja eigentlich gar nich auf false zurücksetzen, wenn man das als trigger nutzen will, wovon ich hier ausgehe, kann man ja in Node Red auf "send all events" stellen oder wenn das mit Blockly weiterverarbeitet wird, dort auf "wurde aktualisiert", daher meine Frage wie der Datenpunkt weiter verarbeitet wird.
-
@basti97 sagte in Temperaturen über Node RED und Alexa abfragen!:
@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
in Node Red gibt es nicht nur für fast alles einen Baustein, sondern für alles
Schönen Abend noch -
@frankyboy73 Ja da hast Du mehr Erfahrung. Klar wenn die Alexa Node automatisch falsch setzt, dann braucht man das natürlich nicht. Aber da bist Du halt der Fachmann.
Im Prinzip braucht er dann ja wenn die Alexa Node true und false direkt ausgibt, gar keine Node dazwischenschalten.So wie ich @Basti97 verstanden habe, ist er ja mit Node Red noch nicht so vertraut, vielleicht will er deshalb erst mal Datenpunkte schalten und dann mit Blockly weiterverarbeiten bevor er sich mit Node Red beschäftigt.
Hier noch die beiden Nodes, die Deine function Node ersetzen könnte.
[ { "id": "3b56537b.010d7c", "type": "change", "z": "6e170384.60c96c", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "$round(payload, 1)\t", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2730, "y": 4420, "wires": [ [ "18872696.11d2c9" ] ] }, { "id": "18872696.11d2c9", "type": "template", "z": "6e170384.60c96c", "name": "", "field": "payload", "fieldType": "msg", "format": "handlebars", "syntax": "mustache", "template": "Die Temperatur im Aquarium beträgt {{payload}} Grad", "output": "str", "x": 2920, "y": 4420, "wires": [ [ "2c44d313.889e6c" ] ] } ]
-
@mickym Ne, da habe ich mich wohl falsch ausgedrück, die Alexa Node gibt nicht automatisch false raus, nur wenn man Alexa das sagt oder über die App ausschaltet oder das mit Routinen macht. Ich meine das man als Trigger ja keine Änderung nutzen muss sondern auch mit Aktualisierungen arbeiten kann, also wenn wieder ein true bzw. ne msg mit dem gleichen Inhalt kommt.
-
@frankyboy73 Achso klar - aber das ist ja das was ich gesagt habe. Im Prinzip ist es doch egal was aus der Alexa Node rauskommt - ob true/false on/off hallo oder sonst was. Es geht ja nur darum, DASS was rauskommt um den Flow zu triggern, der dann die Temperatur ausliest und den Text in so eine Speach-Node schickt.
In einem Parallelflow - wurde halt zur Sicherheit 1 Minute geschaltet, dass habe ich auch mit einer Trigger Node gemacht, damit der Text zu Ende gesagt wird und nicht gleich eine neue Nachricht rauskommt.
So einen Flow mit Sprachausgabe habe ich ja hier schon mal für jemand gemacht. Da habe ich ja ein ganzes Blockly in einen Flow umgesetzt
EDIT: Da ging es ja auch um ein Aquarium. Irgendwie scheinen Aquariumliebhaber auch der Alexa sehr zugeneigt zu sein.
-
@mickym Ja, richtig, hast du gesagt und so kann / sollte man das auch in diesem Fall verarbeiten.
Nur wenn ich das richtig verstanden habe setzt er ja dadurch über die Output Node nen selbst erstellten Datenpunkt auf true, wofür er den auch immer nutzt. Den will er nach ner Zeit wieder auf false setzen, aber warum sollte man den auf false setzen? Bei dem Datenpunkt kann man ja auch mit Aktualisierung arbeiten oder Ihn ganz weglassen und den Text direkt in den Alexa2 Adapter Datenpunkt command.speak schreiben.Ich habe kein Aquarium.
-
-
@frankyboy73 sagte in Temperaturen über Node RED und Alexa abfragen!:
und den Text direkt in den Alexa2 Adapter Datenpunkt command.speak schreiben.
vielleicht will er das ja noch nicht, sondern liest die Temperatur über ein Blockly aus und gibt den Text dann selbst aus.
... -
@mickym Das ist auch meine Befürchtung, deshalb mein kurzer Flow mit 3 Nodes (ok, mit Hub und Alexa Node sind es 5) oder deine Lösung ohne Funktion Node, damit er sieht das man sich das Blockly sehr einfach sparen kann und es durch die Nutzung von nur einem System für diese Aufgabe sehr viel übersichtlicher wird.
-
@frankyboy73 sagte in Temperaturen über Node RED und Alexa abfragen!:
@mickym Das ist auch meine Befürchtung, deshalb mein kurzer Flow mit 3 Nodes (ok, mit Hub und Alexa Node sind es 5) oder deine Lösung ohne Funktion Node, damit er sieht das man sich das Blockly sehr einfach sparen kann und es durch die Nutzung von nur einem System für diese Aufgabe sehr viel übersichtlicher wird.
Da gebe ich Dir zu 100% Recht. Aber wenn Du Dir dieses Posting anschaust, dann will ggf. @Basti97 NodeRed nur als Notlösung gewählt, weil er das ursprünglich auch über Blockly machen wollte. Sowie ich das nun sehe, wäre es vielleicht auch eine Lösung, diese Regeln oder was auch immer Du ihm erklärt hast, was er in der Alexa App machen muss.
Die Fehlermeldung dass Alexa sagt das weiß ich leider nicht". - schaut ja ziemlich ähnlich aus.
Und auch wenn ich Dir zu 100% Recht gebe, alles mit NodeRed zu machen, so wollen wir ja niemand dazu zwingen. Im Gegenteil ich sage immer, dass es einer der Riesenvorteile vom iobroker ist, dass er verschiedene Systeme, Logikmaschinen miteinander verbinden kann. Deswegen habe ich ja auch vorgeschlagen, dass er den Output der Alexa Node 1:1 in einen Datenpunkt schreiben kann und mit Blockly weiterverarbeiten kann.
Es gibt einige Nodes in Node-Red, die man nutzen kann, wofür es kein Adapter im iobroker gibt. Diese kann man dann verwenden. muss sich aber nicht tiefer mit Node Red beschäftigen. Genau dies habe ich @Basti97 ja auch hier vorgeschlagen.
Deswegen find ich es durchaus OK - jedem nur soviel NodeRed zuzumuten, wie er/sie verträgt.
Sind ja auch nicht alle so wie Du, die von blockly nun auf NodeRed umgestiegen sind, sondern sie wollen bei dem bleiben, was man kennt. Ehrlich gesagt, habe ich dafür vollstes Verständnis, da ich merke, dass mir umgekehrt der Einstieg in Blockly auch eher schwer fällt und ich eigentlich mehr Nachteile, als Vorteile sehe, wenn ich umsteigen würde. Ich habe ja schon manchmal auf die Vorteile - gerade der leichteren Fehlersuche bei komplexen Flows - bei Node Red hingewiesen habe, aber ich habe das Gefühl, dass diese Art der Argumentation dann doch von vielen als subjektiv wahrgenommen wird.
Wenn ich mich aber im Blockly gut auskenne, dem geht es dann mit Node Red wahrscheinlich ähnlich und bin deshalb nicht bereit das System zu wechseln.
Ich hatteja diesem Thread Unterschied zwischen NodeRed und Blockly? mal den Vorschlag gemacht - die gleiche Aufgabenstellung in beiden System umzusetzen, um zu sehen, wo die Vor- und Nachteile sind. Aber das ist dann schnell in der Versenkung verschwunden, da man sich dann doch nicht die Mühe macht.
-
@mickym Ja, ok da hast du vollkommen recht. Ich hatte früher auch nur Blockly und bin beim Umstieg sehr lange zweigleisig gefahren, weil ich dachte es geht nicht alles mit Node Red, ausserdem kannte ich Blockly viel besser oder länger und fand es dadurch am Anfang einfacher.
Die Routinen oder Regeln wie du es nennst, sind auch nur Logische Verknüfpungen, wenn dies dann das. Wie hier im Post, wenn ich sage "Alexa, wie ist die Temperatur im Aqurium" dann schalte Gerät Temperatur Aqarium ein. Oder jeden Tag um 20 Uhr, Wohnzimmerlicht einschalten. So einfache Verknüfungen eben. -
@frankyboy73 @mickym Abend
Ich bin es nochmal und zwar habe ich das heute noch nicht ausgetestet das werde ich aber morgen machen. Und zwar wollte ich der Alexa sagen "Alexa Temperatur Aquarium" Nach den gesagten Text soll dann der Datenpunkt (selbst erstellt) sich ändern. Von false auf true um (später wieder zurück von true auf false) damit wird ein Blockly ausgelöst. Was mir über den "Alexa2 Adapter Datenpunkt command speak " die Temperatur zurück zur Alexa gibt. Aktuell kommt die Temperatur von einem Raspberry Slave und später soll es von einem Wemos kommen.Edit:
Aber das ganze gleich in Node red zulösen ist bestimmt komplizierte. Aber bestimmt übersichtlicher als die Verbindung zwischen Blockly und Nodered.Edit1:
Von mir aus können wir es auch in Java machen dort habe ich aber noch weniger Ahnung bis jetzt. Dann lieber Nodered oder BlocklyAlso ihr zwei ich bin völlig offen und auch bereit etwas neues zu lernen.
Die Aquariumsteuerung ist schon eine tolle Sache und Spielerei. Es wird denke ich noch mehr folgen.
Alexa sollte hier nur die Daten und Werte Ansagen wenn ich diese wissen möchte. Ich möchte nicht gerade per Zeit trigger das Alexa 3x mal täglich das gleiche sagt. Ob ich dann etwas per Sprache im Aquarium steure denke ich nicht.Gruß Sebastian
bis morgen -
@basti97 sagte in Temperaturen über Node RED und Alexa abfragen!:
@frankyboy73 @mickym Abend
Ich bin es nochmal und zwar habe ich das heute noch nicht ausgetestet das werde ich aber morgen machen. Und zwar wollte ich der Alexa sagen "Alexa Temperatur Aquarium" Nach den gesagten Text soll dann der Datenpunkt (selbst erstellt) sich ändern. Von false auf true um (später wieder zurück von true auf false) damit wird ein Blockly ausgelöst. Was mir über den "Alexa2 Adapter Datenpunkt command speak " die Temperatur zurück zur Alexa gibt. Aktuell kommt die Temperatur von einem Raspberry Slave und später soll es von einem Wemos kommen.
Edit:
Aber das ganze gleich in Node red zulösen ist bestimmt komplizierte. Aber bestimmt übersichtlicher als die Verbindung zwischen Blockly und Nodered.Nun dass Du meinst, dass es komplizierter ist, das liegt halt daran, dass Du NodeRed noch nicht so gut kennst. Im Grunde hat Dir @frankyboy73 eigentlich gezeigt wie einfach das ist und ohne Blockly umzusetzen ist.
Den Flow den er unten gepostet hat - habe ich hier nochmal grafisch rauskopiert.
- Die Alexa Node wird direkt links and den Flow angeschlossen und triggert den Flow.
- In der blauen iobroker GET Node holt sich der Flow die Temperatur aus dem Datenpunkt, der die Wassertemperatur enthält.
- In der Function Node oder alternativ was ich mit den beiden Nodes gemacht habe, wird der Temperaturwert gerundet und in einen Text eingebettet, der dann gesprochen werden soll.
- Mit der speak (iobroker out) Node wird es halt direkt in Deinen "Alexa2 Adapter Datenpunkt command speak " Punkt geschrieben.
Das wars eigentlich. Wie gesagt mit 3 Nodes oder mit meiner Lösung von 4 Nodes + die Alexa Nodes ist das Ganze nicht kompliziert.
Ich bin ja hier derjenige, der Dir sagt, es ist alles OK wieviel Hybridlösung oder alles in einem System Du machen willst.
Javascript nimmst Du hauptsächlich, wenn es sonst zu kompliziert wird. Beide System sowohl Blockly - als auch NodeRed - haben beide Javascript als Basis. Mit der function Node - kannst Du alles in Javascript schreiben - aber ich empfehle Dir, dass nicht zu tun, weil Du kannst auch in einem Blockly alles über eine Javascript Funktion machen - damit geht aber die grafische Übersicht verloren, was gemacht wird.Sowohl Blockly als auch NodeRed versuchen über eine grafische Darstellung den logischen Ablauf darzustellen und keine Details des Programmablaufs der jedem Flow zugrunde liegt. Wenn dass das Ziel wäre sollte man wirklich alles in Javascript schreiben. Die Abstraktion bzw. nur die logischen Schritte grafisch darzustellen und damit die Übersichtlichkeit zu erhöhen kann in meinen Augen NodeRed etwas besser als Blockly - aber das ist wieder subjektiv wahrscheinlich. Javascript Kenntnisse sind für beide Systeme nützlich.
Wenn das mit der Alexa Node klappt - dann schreib einfach mal wie der Text heißen soll, der ausgegeben werden soll, wie der Pfad heißt wo der Datenpunkt der Temperatur ist und wie der Pfad zu Deinem "Alexa2 Adapter Datenpunkt command speak " heißt. Dann können @frankyboy73 oder ich Dir den Flow fix und fertig machen. Und dann kann man sich ja unterhalten, was man wie macht.
-
@mickym Danke für eure Hilfe die Alexa Node klappt da ich über Alexa auch andere sachen wie Deckenlicht unso schalte.
Hier meine Infos
"Pfad heißt wo der Datenpunkt der Temperatur": "ds18b20.0.sensors.28-3c01e076ac31"
"Alexa2 Adapter Datenpunkt command speak " "alexa2.0.Echo-Devices.G091B00300930F8T.Commands.speak""Text zb": "aktuell liegt die Wassertemperatur bei 24°C"
Danke für eure Hilfe
-
@basti97 sagte in Temperaturen über Node RED und Alexa abfragen!:
So hier Dein Flow - einfach hinter die Alexa Node klemmen sollte funktionieren:
Voraussetzung ist - dass in eine Zahl in der Temperatur ist und Du wie gesagt diesen Haken aus der NodeRed Konfig rausgemacht hast:
-
@mickym Vielen Dank für deine Arbeit ich werde es einfügen.
Haken habe ich raus die Fehlermeldung hqat dann keine Bedeutung oder?
Wie schnell hast du das blos hin bekommen. -
@mickym said in Temperaturen über Node RED und Alexa abfragen!:
[
Also so hier richtig.
Ich werde es dann mal austestesten. Danke für deine Arbeit.
-
@basti97 Wahrscheinlich hatte die Fehlermeldung keine Bedeutung - nur Strings kann man halt schlecht runden. Ich hätte nun auch den String erst in eine Zahl verwandeln können - aber ich finde dass dieser Haken standardmäßig drin ist - echt grottig. Deswegen habe ich Dir das so empfohlen, da Du ja noch nicht viele Flows haben wirst.
-
@basti97 sagte in Temperaturen über Node RED und Alexa abfragen!:
@mickym said in Temperaturen über Node RED und Alexa abfragen!:
[
Also so hier richtig.
Ich werde es dann mal austestesten. Danke für deine Arbeit.
GENAU!
Und ja war ja schon alles da - und @frankyboy73 und ich wollten Dir ja nur zeigen, wie EINFACH und UNkompliziert das ist. :D. Kannst Dir ja die Nodes ansehen und dann siehst ja dass was drauf steht auch so gemacht wird.
-
@mickym Ja genau ich lerne es eher wenn ich das ausprobiere als wenn es nur sagen wir mal virtuell ist.
Ich werde mich nun mal näher mit dem Thema Nodered beschäftigen.
Ein kleines Problem habe ich noch. Das ich wahrscheinlich die Frage Aquarium Information oder der gleichen ändern muss. Da Alexa trotz Routine mir erzählen möchte was ein Aquarium ist.Danke für deine Hilfe. Da kann ich den Datenpunkt und das Blockly löschen.
Ich wünsche dir noch einen schönen Abend.Gruß Basti