Monarch73 / RFBridge

This Project uses an esp8266 board as a hub to control remote controlled socket switches and/or light sockets via Amazon Echo (Alexa) by emulating Wemos Network Devices. Download binaries here: [https://github.com/Monarch73/RFBridge/releases]
http://www.monarch.de
MIT License
8 stars 0 forks source link

Alexa findet kein Gerät #1

Closed taurus1902 closed 6 years ago

taurus1902 commented 7 years ago

Hallo habe es soweit hinbekommen dass ich über den browser die Lampen ein und aus schalten kann. Aber Alexa findet keine Geräte an was kann das liegen ??

SebastianEitzert commented 6 years ago

ok ich muss nur immer hin und her fahren oder eines der beiden Geräte mit nehmen zum Test. Ich versuche hauptsächlich dieses Projekt zum laufen zu bringen: https://youtu.be/ENk4nJ9zJUU Auf dem Dot hat das leider auch nicht funktioniert. Zuhause im gleichen Netz wie der Echo2 befindet sich übrigens auch noch ein FireTV Stick.

Monarch73 commented 6 years ago

Ich danke dir für deine Hilfe. Mir würde es reichen, wenn wir den HueEmu auf dem Echo2 zum laufen bekommen würden.

Hier ist die Version mit Auth-API: hueemu.zip

Monarch73 commented 6 years ago

Ich versuche hauptsächlich dieses Projekt zum laufen zu bringen: https://youtu.be/ENk4nJ9zJUU

Dieses Projekt hat vermutlich mit dem Echo2 das selbe Problem, wie alle anderen Projekte auch. Es funktioniert einfach nicht, weil im Echo das Protokoll zur Ansteuerung der Wemo-Geräte geändert worden ist.

Wenn ich mit der HueEmulation auf dem ESP8266/NodeMcu fertig bin, werde ich mich um eine Ansteuerung per Infarot bemühen. Versprochen.

SebastianEitzert commented 6 years ago

die Ansteuerung per IR oder RF ist ja letztenendes egal solange man ein Sketch als Basis hat welches zumindest mal Alexa kompatibel ist. Deine aktuelle Hueemu wird vom Echo2 jetzt erkannt, beim Anschalten von test 1 kommt ein Windowsfehler: "org.huesken.fauxmonet.Console funktioniert nicht mehr" und Alexa sagt: "ich weis nicht was schief gelaufen ist" Das gleiche passiert bei allen anderen Sprachbefehelen bzgl. Test1&2 und auch bei dem Schalten per App Hier der Consolentext bei bereits aufgetretenem Fehler:

LAN-Verbindung* 1 Gateway Address ......................... : 0.0.0.0

LAN-Verbindung* 3 Gateway Address ......................... : 0.0.0.0

Drahtlosnetzwerkverbindung Gateway Address ......................... : 192.168.178.1

Bluetooth-Netzwerkverbindung Gateway Address ......................... : 0.0.0.0

Starting HueEmulation for IP 192.168.178.94:C48508363206 C48508FFFE363206 Sending Reply to 192.168.178.65:50000 Incoming Webrequest from 192.168.178.65:56927: /description.xml Reply by description Incoming Webrequest from 192.168.178.65:46382: /description.xml Reply by description Incoming Webrequest from 192.168.178.65:46382: /api Reply: POST success Incoming Webrequest from 192.168.178.65:46382: /api/api/lights Reply by lights config Sending Reply to 192.168.178.65:50000 Incoming Webrequest from 192.168.178.65:46382: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:46382: /api/api/lights/2 Reply by light config Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Incoming Webrequest from 192.168.178.65:46382: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:46382: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:46382: /api/api/lights/2 Reply by light config Incoming Webrequest from 192.168.178.65:46382: /api/api/lights/2 Reply by light config Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.1:46608 Sending Reply to 192.168.178.1:46608 Sending Reply to 192.168.178.1:46608 Incoming Webrequest from 192.168.178.65:46382: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:46382: /api/api/lights/1/state Reply by light control on off {"on":true} Sending Reply to 192.168.178.1:46608 Sending Reply to 192.168.178.1:46608

Monarch73 commented 6 years ago

{"on":true}

Der HueEmu erwartet, das im Datenpaket vom Echo2 ein Leerzeichen zwischen ":" und "true" beinhaltet. Jedenfalls war das beim Echo1 so der Fall.

Monarch73 commented 6 years ago

Jetzt sollte das ding nicht mehr abschmieren.

hueemu.zip

Aus diesem C# stumpf kann ich jetzt einen schöne HueEmulation für den NodeMCU basteln.

SebastianEitzert commented 6 years ago

ja jetzt hängt sich hueemu nicht mehr auf, Alexa sagt aber: "Das Gerät Test1/2 reagiert nicht, bitte überprüfe Netzwerkverbindung und Stromversorgung" Mit deinem bisherigen Code kann man also arbeiten auch wenn die Antwort von Alexa noch unschön ist. Die Wemo-Basis ist damit dann wohl Geschichte.

Hier wieder der Consolenausdruck.

LAN-Verbindung* 1 Gateway Address ......................... : 0.0.0.0

LAN-Verbindung* 3 Gateway Address ......................... : 0.0.0.0

Drahtlosnetzwerkverbindung Gateway Address ......................... : 192.168.178.1

Bluetooth-Netzwerkverbindung Gateway Address ......................... : 0.0.0.0

Starting HueEmulation for IP 192.168.178.94:C48508363206 C48508FFFE363206 Incoming Webrequest from 192.168.178.59:38530: /description.xml Reply by description Sending Reply to 192.168.178.65:50000 Incoming Webrequest from 192.168.178.65:53812: /description.xml Reply by description Incoming Webrequest from 192.168.178.65:33737: /description.xml Reply by description Incoming Webrequest from 192.168.178.65:33737: /api Reply: POST success Incoming Webrequest from 192.168.178.65:33737: /api/api/lights Reply by lights config Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/2 Reply by light config Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/2 Reply by light config Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/2 Reply by light config Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/1/state Reply by light control on off {"on":true} 1wird eingeschaltet Sending Reply to 192.168.178.65:50000 Incoming Webrequest from 192.168.178.65:53483: /description.xml Reply by description Incoming Webrequest from 192.168.178.65:33737: /description.xml Reply by description Incoming Webrequest from 192.168.178.65:33737: /api/api/lights Reply by lights config Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/2 Reply by light config Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/2 Reply by light config Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/2 Reply by light config Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.1:46608 Sending Reply to 192.168.178.1:46608 Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/1/state Reply by light control on off {"on":false} 1wird ausgeschaltet Sending Reply to 192.168.178.1:46608 Sending Reply to 192.168.178.1:46608 Sending Reply to 192.168.178.1:46608 Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/2 Reply by light config Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/2/state Reply by light control on off {"on":true} 2wird eingeschaltet Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/2 Reply by light config Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/2/state Reply by light control on off {"on":false} 2wird ausgeschaltet Sending Reply to 192.168.178.65:50000 Incoming Webrequest from 192.168.178.65:42099: /description.xml Reply by description Incoming Webrequest from 192.168.178.65:33737: /description.xml Reply by description Incoming Webrequest from 192.168.178.65:33737: /api/api/lights Reply by lights config Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/2 Reply by light config Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/1 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Reply by light config Incoming Webrequest from 192.168.178.65:48612: /api/api/lights/2 Reply by light config Incoming Webrequest from 192.168.178.65:48612: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:33737: /api/api/lights/2 Reply by light config Sending Reply to 192.168.178.65:50000

Monarch73 commented 6 years ago

"Das Gerät Test1/2 reagiert nicht, bitte überprüfe Netzwerkverbindung und Stromversorgung"

Vermutlich sagt sie das, weil der HueEmu bei der Gerätestatusabfrage immer antwortet, das das Gerät ausgeschaltet sei, egal ob es eingeschaltet wurde oder nicht......es ist halt nur ein dummer Stumpf

SebastianEitzert commented 6 years ago

sie sagt es jedenfalls beim ein und ausschalten. Wenn es wirklich nurnoch das ist, wird es wohl kein Hexenwerk mehr sein ihr den aktuellen Status mitzuteilen.

SebastianEitzert commented 6 years ago

die aktuelle Version vom hueemu funktioniert übrigens auf dem Dot tadellos:

LAN-Verbindung* 1 Gateway Address ......................... : 0.0.0.0

LAN-Verbindung* 3 Gateway Address ......................... : 0.0.0.0

Drahtlosnetzwerkverbindung Gateway Address ......................... : 192.168.1.1

Bluetooth-Netzwerkverbindung Gateway Address ......................... : 0.0.0.0

Starting HueEmulation for IP 192.168.1.121:C48508363206 C48508FFFE363206 Sending Reply to 192.168.1.116:50000 Incoming Webrequest from 192.168.1.116:36094: /description.xml Reply by description Incoming Webrequest from 192.168.1.116:36094: /api/6EC1JAjMxwATss64fWY4DZ808w8iV9chNuS2UOJ6/lights Reply by lights config Sending Reply to 192.168.1.116:50000 Incoming Webrequest from 192.168.1.116:36094: /description.xml Reply by description Incoming Webrequest from 192.168.1.116:36094: /api/6EC1JAjMxwATss64fWY4DZ808w8iV9chNuS2UOJ6/lights Reply by lights config Sending Reply to 192.168.1.116:50000 Incoming Webrequest from 192.168.1.116:36094: /description.xml Reply by description Incoming Webrequest from 192.168.1.116:36094: /api/6EC1JAjMxwATss64fWY4DZ808w8iV9chNuS2UOJ6/lights Reply by lights config Sending Reply to 192.168.1.116:50000 Incoming Webrequest from 192.168.1.116:36094: /description.xml Reply by description Incoming Webrequest from 192.168.1.116:36094: /api/6EC1JAjMxwATss64fWY4DZ808w8iV9chNuS2UOJ6/lights Reply by lights config Incoming Webrequest from 192.168.1.116:36094: /api/6EC1JAjMxwATss64fWY4DZ808w8iV9chNuS2UOJ6/lights/1/state Reply by light control on off {"on": true} 1wird eingeschaltet Incoming Webrequest from 192.168.1.116:36094: /api/6EC1JAjMxwATss64fWY4DZ808w8iV9chNuS2UOJ6/lights/1 Reply by light config Incoming Webrequest from 192.168.1.116:36094: /api/6EC1JAjMxwATss64fWY4DZ808w8iV9chNuS2UOJ6/lights/1/state Reply by light control on off {"on": false} 1wird ausgeschaltet Incoming Webrequest from 192.168.1.116:36094: /api/6EC1JAjMxwATss64fWY4DZ808w8iV9chNuS2UOJ6/lights/1 Reply by light config Incoming Webrequest from 192.168.1.116:36094: /api/6EC1JAjMxwATss64fWY4DZ808w8iV9chNuS2UOJ6/lights/2/state Reply by light control on off {"on": true} 2wird eingeschaltet Incoming Webrequest from 192.168.1.116:36094: /api/6EC1JAjMxwATss64fWY4DZ808w8iV9chNuS2UOJ6/lights/2 Reply by light config Incoming Webrequest from 192.168.1.116:36094: /api/6EC1JAjMxwATss64fWY4DZ808w8iV9chNuS2UOJ6/lights/2/state Reply by light control on off {"on": false} 2wird ausgeschaltet Incoming Webrequest from 192.168.1.116:36094: /api/6EC1JAjMxwATss64fWY4DZ808w8iV9chNuS2UOJ6/lights/2 Reply by light config

Monarch73 commented 6 years ago

Ich hab mal ne statusabfrage eingebaut. Ich kann hier allerdings gerade nichts testen....das ist so völlig ins Blaue reinprogrammiert.

hueemu.zip

Monarch73 commented 6 years ago

Die Wemo-Emulation hat die Unschönheit, das man für jedes Gerät (also für jeden Schalter), seine eigene SSDP-Nachricht über die unsichere UDP-Verbindung schicken muss. In gut ausgelasteten WLans kann das zu Problemen führen. Dieses Problem hat man mit der HueEmulation nicht mehr, da nur noch die Bridge per SSDP erkannt werden muss. Die einzelnen Lichter nicht.

JeffJefferson commented 6 years ago

Hallo Monarch,

echt genial dass du es hinbekommen hast! (habe mittels deiner rfbridge endlich ein gerät von alexa 2.0 erkennen lassen können) Allerdings bin ich etwas verwirrt...^^

Ich hatte bisher in meinem eigenen Sketch einen esp mit verschiedenen funktionalitäten programmiert, denen ich mittels fauxmo hardcoded unterschiedliche Alexa-Namen gegeben habe. Habe dann mit Hilfe des OnMessage-Events die entsprechenden Funktionalitäten ausgeführt, sobald der Alexa Command erkannt wurde. Ich dachte die ganze Zeit beim Lesen, dass du einen Sketch entwickelt hast, den ich in meinen Sketch einbinden kann um die Geräte wieder im Quellcode so zu definieren, dass Alexa sie auch findet und ansprechen kann. Aber dann war es eine .bin :D Ist das jetzt überhaupt möglich meinen eigenen Quellcode zu triggern? Wenn ja, wie kann ich die rfbride.ino.bin so umschreiben, wie ich es benötige ? Hatte bisher immer über die Arduino IDE geflasht...

SebastianEitzert commented 6 years ago

bei der aktuellsten Version hat sich nichts verändert.

LAN-Verbindung* 1 Gateway Address ......................... : 0.0.0.0

LAN-Verbindung* 3 Gateway Address ......................... : 0.0.0.0

Drahtlosnetzwerkverbindung Gateway Address ......................... : 192.168.178.1

Bluetooth-Netzwerkverbindung Gateway Address ......................... : 0.0.0.0

Starting HueEmulation for IP 192.168.178.94:C48508363206 C48508FFFE363206 Sending Reply to 192.168.178.65:50000 Incoming Webrequest from 192.168.178.65:56295: /description.xml Reply by description Incoming Webrequest from 192.168.178.65:51248: /description.xml Reply by description Incoming Webrequest from 192.168.178.65:51248: /api Reply: POST success Incoming Webrequest from 192.168.178.65:51248: /api/api/lights Reply by lights config Incoming Webrequest from 192.168.178.65:51248: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:51248: /api/api/lights/2 Reply by light config Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Incoming Webrequest from 192.168.178.65:51248: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:51248: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:51248: /api/api/lights/2 Reply by light config Incoming Webrequest from 192.168.178.65:51248: /api/api/lights/2 Reply by light config Incoming Webrequest from 192.168.178.65:51248: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:51248: /api/api/lights/1/state Reply by light control on off {"on":true} 1 wird eingeschaltet Sending Reply to 192.168.178.65:50000 Incoming Webrequest from 192.168.178.65:35161: /description.xml Reply by description Incoming Webrequest from 192.168.178.65:51248: /description.xml Reply by description Incoming Webrequest from 192.168.178.65:51248: /api/api/lights Reply by lights config Incoming Webrequest from 192.168.178.65:51248: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:51248: /api/api/lights/2 Reply by light config Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000 Incoming Webrequest from 192.168.178.65:51248: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:51248: /api/api/lights/1 Reply by light config Incoming Webrequest from 192.168.178.65:51248: /api/api/lights/2 Reply by light config Incoming Webrequest from 192.168.178.65:51248: /api/api/lights/2 Reply by light config Sending Reply to 192.168.178.65:50000 Sending Reply to 192.168.178.65:50000

Monarch73 commented 6 years ago

@JeffJefferson

Echo Dot 2 und Echo 2 sind zwei unterschiedliche paar Schuhe! Meines Wissens funktioniert die RFBridge nur mit dem Echo Dot 2, aber nicht mit dem Echo 2 bzw Echo Plus.

Du kannst in der RFBridge auch eigene funktionen einbauen. Dafür war es allerdings nie gedacht. Das Projekt richtet sich hauptsächlich an unerfahrene Benutzer.

Um das Projekt kompilieren zu können benötigt man Visual Studio Community und weitere Tools. Beschrieben im Readme.md : https://github.com/Monarch73/RFBridge#setting-up-development-environment

SebastianEitzert commented 6 years ago

ich wäre aber auch sehr an einer offenen Version als Arduino Sketch also .ino oder an einer library mit einem Beispiel usw intressiert. Das selbe gilt natürlich für die spätere Hue Version. Nur um eine funktionierende komunikation zu Alexa zu haben, als Basis für eigene Projekte.

Monarch73 commented 6 years ago

Grundsätzlich lässt sich das RFBridge.ino auch im Arduino Studio kompilieren. Allerdings muss dafür ein aktuelleres esp8266-Arduino-SDK installiert werden (2.4.0 ist vorgestern released worden) Und die externen libraries, die vom "git clone --recursive" ebenfalls geladen werden, müssen in den entsprechende Ordner im Heimverzeichnis des aktuellen Benutzers verschoben werden. Ich nehme an, ein findiger Benutzer wird sich da mit ein paar Grundkenntnissen schon zurecht finden.

Ich als Softwareentwickler ziehe Visual Studio aber definitiv vor. Dagegen ist das Arduino Studio regelrecht primitiv und bietet so gut wie keine Hilfen. Also eine offizielle Unterstützung für das Arduino Studio wirds von mir nicht geben.

SebastianEitzert commented 6 years ago

gibt es neuigkeiten?

Monarch73 commented 6 years ago

Gedult. Ich stelle das Projekt auf eine kompett neue Codebasis mit einem auf Angular5 basierendem Webfrontend und aktueller Version der Espressif-SDK. Soll ja schließlich gut werden :-)

https://github.com/Monarch73/RFBridge2/commits/master

SebastianEitzert commented 6 years ago

jetzt hab ich nur Bahnhof verstanden XD ich hoffe ja ich bekomm es überhaupt hin es in eine ino zu konvertieren um es für meine Bedürfnisse zu erweitern oder anzupassen.

Monarch73 commented 6 years ago

Alternativ kannst du auch Visual Studio 2017 Community runterladen und dadrin da Visual Micro-Addon installieren. Das ist 1000 mal besser als dieses Arduino Studio.

SebastianEitzert commented 6 years ago

ich hab mit visual studio schon arbeiten müssen und war nur auf Kriegsfuß damit. Es ist einfach zu professionel und bietet zu viele Möglichkeiten alles zu verstellen

Monarch73 commented 6 years ago

So. Ich habe eine Version fertig, die mit meinem Amazon Echo der ersten Generation problemlos zu funktionieren scheint.

https://github.com/Monarch73/RFBridge2/files/1628242/RFBridge2.zip

Ich erwarte nicht, das die Software auf anhieb mit einem Echo der zweiten Generation zusammen spielt. Aber Probleme sind da, um sie zu lösen.

TTRCmedia commented 6 years ago

:+1: Habe drei Echos (Echo 1st. Gen., Dot 2, Show), die mit der WeMo-Emulation keinen Lampen finden konnten. Mit der Hue-Emulation werden die "Lampen" gefunden :)

...fehlen nur noch die zu steuernden Steckdosen für einen vollständigen Test...

Wie lässt sich denn die RFBridge wieder komplett zurücksetzen, wenn z.B. das WLAN geändert werden muss?

Monarch73 commented 6 years ago

Das sind ja excellente Neuigkeiten!

Wenn die RFBridge nach einem Reset ihr WLAN nicht findet, geht die Software automatisch wieder in dem Errichter-Modus, in dem der Access-Point "EasyAlexa" wieder sichtbar wird. Hier kann man dann wieder über http://192.168.4.1 eine neue ESSID und Passwort eingeben. Durch setzen eines Häckchens kann hier auf der Speicher (SPIFFS) einmal komplett formatiert werden. Da werden dann auch alle Lampen/Schalter gelöscht

Monarch73 commented 6 years ago

Mit Verweis auf RFBridge2 möchte ich dieses Projekt einstampfen.

Obwohl die Entwicklung von RFBridge2 noch nicht abgeschlossen ist, hat RFBridge bereits jetzt viele Vorteile, die RFBridge (1) nicht bietet: Ein auf Angular5 basiertes Webfrontend, ein IRRemote interface (Infrarot Fernbedienung) und eine phillips hue emulation, die das Projekt deutlich kompatibler zu den Amazongeräte machen

https://github.com/Monarch73/RFBridge2