NEWS
Alexa Anbindung ohne Cloud und Skill
-
Wie ich oben schon erwähnte. Es fehlt ein zuverlässiger Rückkanal. Bei mir springen die Pegel immer wieder auf 49 zurück.
Meine Tests gestern waren nicht von Erfolg gekrönt. Die 49 habe ich im Code von Alexa Home nicht gefunden. Wenn Zeit ist, sehe ich mir das näher an. Erstmal eine gute Doku zu dem Protokoll finden…
-
Hallo peterfido, den Quellcode findest du auf der Herstellerseite. Dort sieht man, dass 49% immer die Grundeinstellung auf der App ist. Wie schon mehrfach gesagt, es gibt keine Rückmeldung, aber braucht man die Werte wirklich ? Diese kann man unter vis oder beiden Objecten ansehen.
-
Danke. Ja, die aktuellen Werte hätten schon Charme. Dann kann man in der App gleich die Ist-Werte ablesen und bequemer verstellen.
VIS habe ich unterwegs nicht. - OK aktuell habe ich VIS gar nicht eingerichtet. Die Ist-Werte werden hier auf einem kleinen LCD angezeigt. Die Alexa App ist ja überall verbunden und bietet weltweit Sprachsteuerung. Für VIS müsste ich erst VPN aufbauen und dann auf dem kleinen Smartphone bedienen.
Hat jemand ein Link zur Herstellerseite mit dem Quellcode zufällig zur Hand?
-
Bitte: https://github.com/originallyus/node-re … lexa-local
Dort ist auch beschrieben, was alles nicht läuft.
-
1. Verstehe ich das richtig das die NodeRed Lösung Alexa-Local (ohne Cloud) eine Hue-Bridge Simuliert? ` Ja! Und die Echos (ohne DOT) der 2.Gen. unterstützen diese Vorgehensweise offensichtlch nicht mehr
@wendy2702:2. Mit welchen Befehlen könnt ihr eure Rollladen steuern? AN/AUS oder geht aus Hoch/Runter oder Auf/Zu ? ` über "An/Aus" und "setze Rolladen auf x %"
@wendy2702:3. Geht eine Temperatur Abfrage von z.B. einem Homematic Aussensensor? ` Nein.
Soviel ich wieß ist das in einer HUE-Bridge auch nciht vorgesehen. Oder gibt es mitlerweile HUE-Thermostate?
-
HI,
Danke für die Antworten.
Nein es gibt noch keine HUE Thermostate. Da ich aber nicht sicher war ob die NodeRed Lösung dasselbe macht wie eine HUE Bridge Simulation wollte ich mal fragen.
Gruß
-
Temperaturwerte ermitteln. Genau das versuche ich mit diesem Ansatz : http://forum.iobroker.net/viewtopic.php?f=37&t=12124
zu ermitteln. Die Hue-Bridge-Emulation soll doch „nur“ eine optimale Version sein, um ohne Cloud (Internet) etwas zu steuern. Die Umsetzung ist dann reine Programmierarbeit. Alexa-local liefert: on == bri 100, off == bri 0 und bri - Werte dazwischen. Muss ja nicht zur Lampensteierung genutzt werden.
-
eine optimale Version sein, um ohne Cloud (Internet) etwas zu steuern ` Das wird dir nicht gelingen da Alexa ohne Cloud/Internet dumm wie Stroh ist und außer Strom verbrauchen rein gar nichts kann 8-)
-
Hallo Bbtown, Alexa-local wird doch gerade hier zum Aktivieren /Schalten von Abläufen genutzt. Das Problem ist doch nur, dass ohne Cloud keine Rückmeldung gelingt.
Wird das Internet nutzen möchte: der Hui-Bewegungsmeldern kann die Temperatur ausgeben. Mit diesem Node: https://flows.nodered.org/node/node-red … ure-sensor
-
Hallo Bbtown, Alexa-local wird doch gerade hier zum Aktivieren /Schalten von Abläufen genutzt. Das Problem ist doch nur, dass ohne Cloud keine Rückmeldung gelingt. ` Alexa versteht ohne Internetzugang kein Wort. Jedes gesprochene Kommando muss auf Amazon Server hochgeladen werden um dort analysiert/ausgewertet und interpretiert zu werden. Es gibt auf dem Geräten selbst keinerlei entsprechend Intelligenz/Rechenpower. Wenn jemand also sagt er würde node-red einsetzen um ohne cloud/internet Alexa-Sprachkommandos ausführen zu lassen, so ist das nach meinem Kenntnisstand schlichtweg unmöglich.
Wird das Internet nutzen möchte: der Hui-Bewegungsmeldern kann die Temperatur ausgeben. Mit diesem Node: https://flows.nodered.org/node/node-red … ure-sensor ` Ja, eine Temperatur kann womöglich aus dem HUE Bewegungsmelder ausgelesen werden (ich selbst habe keinen), das hat jedoch mit einer Temperatur/Heizungssteuerung nicht viel gemein.
-
Du hast vollkommen Recht. Alexa ohne Internet geht nicht. Der Unterschied ist nur:
NO Alexa Skills required.
NO account linking required.
NO complicated parameters, it just work
-
Du hast vollkommen Recht. Alexa ohne Internet geht nicht. Der Unterschied ist nur:
NO Alexa Skills required.
NO account linking required.
NO complicated parameters, it just work ` das ist einfach nicht wahr!!
Keine Heizungsteuerung
Keine Temperaturansagen (außer Hue Motion)
Keine Rückmeldung bzw. Darstellung der korrekten Siati in der App
[EDIT] auch nicht ganz unwichtig:
nur für bestimmte Nutzer, da keine Unterstützung für Echo Gen.2 (Echo Show?)
keine Unterscheidung der Geräte (alles "Light")
Über den Cloud Adapter kann darüber hinaus ein Startwert (Helligkeit/Lautsttärke) individuell eingestellt
vlt. ein wichtiger Hinweis … ich will mich ja überhaupt nicht streiten 8-)
Die Ansteuerung über node-red ist klasse als zusätzlicher Baustein/Möglichkeit und ich nutze diese ebenfalls
Aber mehr ist es eben nicht ... eine Ergänzung!
Kein Ersatz!!
Das versuche ich die ganze Zeit zu relativieren.
Wer bisher mit dem Möglichkeiten des Cloud-Adapters Probleme hatte, und diese nun durch die Verwendung von node-red behoben sind, der hat alles richtig gemacht, Wenn der aber glaubt es sei nun von Internet und Cloud unabhängig, da kann ich nur sagen - weit gefehlt.
-
Hi,
jetzt muss ich auch mal ne Frage zu diesem Adapter stellen. Ich ging bis gerade eben davon aus, dass der Adapter und Alexa, also mein Echo Dot rein im lokalen Netz miteinander agieren, von der Amazon-Cloud abgesehen. Also Anfrage an Alexa geht zu Amazon raus, Antwort von da kommt, welches lokale Gerät ich steuern möchte, und der Echo gibt das dann an den Node-Red-Adapter weiter, der ausführt. Dieser hat keine Verbindung nach "draussen" sondern macht das lokal.
Nun habe ich eben mal wieder mit der Reverb-App (Alexa für Android) gespielt und dabei das Handy auch mal testweise ohne WLAN betrieben, weil ich wissen wollte, was dann passiert. Und anders als erwartet hat das Handy die Geräte exakt so steuern können, als wenn ich es den Echo, der im selben Netz hängt, machen würde. Kann mir das einer erklären, wie die App auf dem Handy, welches nicht im lokalen Netz hängt und nur via Mobilfunk kommunizieren kann Geräte steuert, die nur lokal per Node-Red-Adapter erreichbar sind? :shock: :shock:
Einzig mögliche Erklärung wäre für mich momentan, dass Anfragen an den Amazon-Server an alle Alexa-Geräte von diesem Account zurückgehen, egal welches die Anfrage gestellt hat. Und dass mein lokaler Echo dann diese Anfrage eben an iobroker weitergeleitet hat, der ansonsten von außen nicht erreichbar ist. Kann das sein, aber, macht das auch Sinn? :?
Gruss, Jürgen
-
Kann mir das einer erklären, wie die App auf dem Handy, welches nicht im lokalen Netz hängt und nur via Mobilfunk kommunizieren kann Geräte steuert, die nur lokal per Node-Red-Adapter erreichbar sind? :shock: :shock: ` Am Ende des Tages liegen alle Smart-Geräte (bzw. die Informationen über selbige) auf einem Amazon Server. Also weder in/auf einem Echo, noch in der der Reverb-App.
Ein Echo ist nur ein "Mikrofon", so wie "Reverb" auch.
Also wird zum jedes Kommando ebenfalls zu Amazon geschickt und interpretiert.
Und je nach Kommando (Schalte, Setze) wird nachgeschaut ob es Smart-Home Geräte oder Skills gibt die diese Verarbeiten können und falls ja wird das entsprechende Kommando zurückgegeben (und landet dann womöglich irgendwann wieder im lokalen Netz).
Es ist also völlig egal ob das ursprüngliche Kommando an ein lokales Echo im W-Lan oder über GSM per Handy (Reverb) iiniziiert wurde.
-
Hi,
soweit ist es mir klar, dass das alles über den Amazon-Server läuft. Aber da ich keinerlei Ports geöffnet habe und auch im iobroker die Cloud deaktiviert und nur den Node-Red-Adapter aktiviert habe muss ja irgendein Gerät im lokalen Netz etwas von den Amazon-Servern empfangen um zu reagieren und das an iobroker weiterzuleiten. Der Node-Red ist ja nicht mit dem Amazon-Server verbunden sondern simuliert nur Hue-Geräte, die lokal von "Alexa" gefunden werden.
Also ist es so, wie ich schon geschrieben habe, dass mein Echo im lokalen Netz dann auf die Befehle vom Amazon-Server reagiert und diese an den Node-Red-Adapter sendet?
Was im Übrigen cool an der Sache ist, ist die Tatsache, dass sich iobroker-Geräte damit aus der Ferne aus steuern lassen, ohne dass ein Cloud-Adapter oder VPN nötig wäre. 8-)
Gruss, Jürgen
-
Dort sieht man, dass 49% immer die Grundeinstellung auf der App ist. `
edit:
Hallo,
die Rückmeldung der Werte an die App habe ich erfolgreich für Heizungen getestet.
Bei der Alexa local (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-alexa-local/index.js):
edit: Datei weiter unten angehängt.
Bei Alexa Home (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-alexa-home/alexa/alexa-home.js):
Zeile 19 hinzu:````
node.aktWert = 0;Zeile 155 hinzu:```` console.log("aktWert_out:" + node.aktWert);
Zeile 157 geändert:````
'{"on": ' + state + ', "bri": ' + node.aktWert + ',' +Zeilen 218+219 hinzu:```` node.aktWert = Math.round(briInput * 2.55); console.log("aktWert_in:" + node.aktWert);
Davor, wie immer, ein Backup der Dateien machen. Änderungen mit einem Linux-fähigen Editor wie z.B. Notepad++
Das Skript Node testet auf Heizung höher oder niedriger. (Alexa, erhöhe Heizung)
if (msg.change_direction === 0){ msg.payload = msg.bri; }else{ msg.payload = 49 + msg.change_direction; } return msg;
Das Java-Script dazu sieht dann so aus:
var logOn = false; // Skript Logausgabe ein- (true) / ausschalten (false). Fehler werden immer ausgegeben. var forecreation = false; // Default: false. true: Datenpunkte werden überschrieben (wenn z.B. Bezeichnungen geändert wurden) var http = require('http'); // Node Module http verwenden // Datenpunkte anlegen: // ----------------------------------------------------------------------------- var idDatenpunkt = "alexa.wohnung.heizungbad"; // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird createState(idDatenpunkt, 0, forecreation, { // Datenpunkt wird angelegt name: 'Bad Heizung', desc: 'Heizung einstellen', type: 'number', unit: '%', min: 0, max: 100, read: false, write: true, role: 'value' }); // Level Einstellen // ----------------------------------------------------------------------------- function leveldef(dp) { dpWert = dp.state.val; var dpBez="hm-rpc.2.xxxx.1.SET_POINT_TEMPERATURE"; // Badezimmer var aktWert = getState(dpBez).val; var MinWert=6; var MaxWert=24; var GrundWert=18; var sName="Badezimmer"; if (dpWert > MaxWert){ if (dpWert < 49){ if (aktWert > GrundWert){ dpWert=aktWert-1; } }else{ if (aktWert < MaxWert){ dpWert=aktWert+1; }else{ dpWert=aktWert; } } }else if (dpWert < MinWert ) { dpWert=GrundWert; } if (dpWert !== aktWert){ log('Hzg ' + sName + ' von ' +aktWert + ' auf '+dpWert); setState(dpBez, dpWert ); }else{ log('Hzg ' + sName + ' war schon auf ' +aktWert); } } // Abfrage des Datenpunkts // ----------------------------------------------------------------------------- on({id: "javascript.0." + idDatenpunkt, change:'any'}, function (dp) { leveldef(dp); });
-
Hallo Leute,
erst einmal vielen Dank für die tolle Anleitung und die Idee dahinter.
Ich hab nun all meine Geräte von der Cloud in node-red verschoben. Das funktioniert grundsätzlich auch super!
Ein Problem habe ich, wie das halt immer ist, doch noch. Ich habe 3 Geräte (einfache, selbst in iobroker angelegte true/false states) die einfach nicht gesteuert werden.
Alexa bestätigt mir das Ausführen mit OK und auch in der node-red Oberfläche sehe ich, dass sich der Status des Obejekts geändert hat. In iobroker selbst wird allerdings nichts geschaltet.
Ich habe es bereits mit alexa-local und wemo-emu versucht, ohne Erfolg. Andere Objekte die ich in iobroker genauso angelegt habe funktionieren ohne Probleme.
Das soll mal einer verstehen :?
Hat vll jemand eine Lösung zu diesem Problem?
Gruß
Chris
-
Ich kenne das verhalten vereinzelt von manchem Broadlink Datenpunkt
-
Ich habe nun mal folgendes getestet:
Das nicht funktionierende iobroker Objekt gelöscht und mit leicht verändertem Namen wieder angelegt.
Schwupps funktioniert das Ganz. Nicht die eleganteste Lösung, aber bei 3 Geräten zu verschmerzen.
Gleich noch vorweg. Das Objekt mit dem selben Namen wieder anlegen funktioniert nicht.
-
Hallo,
ich bin gestern und heute auch noch auf Probleme gestossen. Die Erkennung durch Echos der 2. Generation klappt ja bekanntlich nicht. Also habe ich mir andere Projekte angesehen. Da wurde von kritischen Timings gesprochen. Also vor dem Senden der Erkennung mal eine Pause von 1,5 Sekunden eingebaut, was in dem anderen Projekt geholfen haben soll. >> Hat nix gebracht. Dann unterschiedliche Seriennummern vergeben. Hat auch nichts gebracht. Dann die setup.xml an die anderer Projekte angepasst >> hat auch nix gebracht. Immer sagte Alexa, dass keine neuen Geräte gefunden wurden.
Dann wollte ich aufräumen und was entdecke ich da auf der Alexa Website? - Das Gerät wurde irgendwann hinzugefügt. Also wieder gelöscht und nochmal probiert. >> nix
Dann das Backup von gestern auf den Raspi und nur ein Home-Gerät hinzugefügt: >> Nicht gefunden…
Im Quellcode sind auch noch eine Menge FIXXMEs drin. Daher am besten, wenn was funktioniert, nicht für Tests entfernen.
Blöd ist aktuell noch, dass die WEMO Dinger keine Rückmeldung haben. Die Geräte sind in der Alexa App immer ausgeschaltet.