Released: Openhab2 Amazon Echo Control Binding (controlling alexa from openhab2)

development
binding
alexa
Tags: #<Tag:0x00007fd30e974350> #<Tag:0x00007fd30e974148> #<Tag:0x00007fd30e97be20>

(Andrew Pawelski) #608

@michi - can your TTS implementation leverage the SSML features - this would bring TTS to a whole new level


(Falk S.) #609

@ThomasOH, there is a good message:
yes, it is possible.

The other message is that it is a workaround only. You need to have a machine (does not need to be the OH server) with python enabled right in the routing line from the echos to your internet. The approach is to scan network pakets and trigger the active echo via a restfull call. I have outlined this approach here. Also scan for my other posts in this thread.

Works for me okay with 5 echos.


(Thomas) #610

Thanks for pointing me to your workaround. I will check it out.

  • Thomas

(Jason Wiseman) #611

Thank you Scott; just got home from being gone a week to test it and it worked PERFECTLY the first time!


(Falk S.) #612

My account seems to go on and offline every minute, log shows

11:15:58.409 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - ‘amazonechocontrol:account:account1’ changed from OFFLINE (CONFIGURATION_ERROR): Login fails. Check your credentials and try to login with your webbrowser to http(s)://youropenhab:yourport/amazonechocontrol/account1
Wichtige Mitteilung! Zum besseren Schutz Ihres Kontos geben Sie bitte nochmals Ihr Passwort ein, und geben Sie dann die Zeichen ein, die in der Abbildung unten gezeigt werden. to ONLINE

When I go to “http(s)://youropenhab:yourport/amazonechocontrol/account1” it shows:

The Account is already logged in. The account thing should be online.
Check Thing in Paper UI

System is OH2.3 with the official released binding.
How can I confirm account credentials?


(derhelge) #613

I have the same Issue like Falk S.


(Michael ) #614

Log says: Login failed: No session id received


(Mark) #615

Restart Openhab and try again.
On my RPi from console its:
sudo systemctl restart openhab2.service

That works for me. After using the link the login page pops up with captcha
‘http ://youropenhab:yourport/amazonechocontrol/account1’

I suspect the need to login again is because you logged into the same Amazon account from another computer. Just a hunch!


(Jan) #616

@Wirsing84, thanks again. Finally got myopenhab.org to work and the rest was a breeze following your examples :wink: Now on to identifying the echo the request came from following the approach @Falk has presented…


(Cadbures) #617

Hi Falk,

I also had this issue of status going online and offline… I tried using ‘http ://youropenhab:yourport/amazonechocontrol/account1’. But it didn’t work… then I changed domain from amazon.in to amazon.com. Status became stable and online. I think most of the echo devices will connect to alexa.amazon.com and if we login to domain other than amazon.com, like amazon.in, amazon.de etc… this issue occurs…

Regards
Cadbures


(Falk S.) #618

Hi @cadbures,

I just restarted OH2 and was able to authenticate again as described by @m4rk .
Maybe changing the domain has the same effect …


(Falk S.) #619

Hi @jjk, please be aware that the instance with the python script needs to be in the “routing line” between your echos and your internet router in order to detect the echo’s network traffic.


(Jan) #620

Hi @Falk, thanks for the hint, I have figured that by now. That sucks, not sure I want to modify my whole network topology to make this happen… Just curious, what’s your setup that allows this to work?
I’ll probably go the less convenient way for now and have family members tell Alexa o what echo to send updates…


(Falk S.) #621

Hi @jjk, hope the following illustrates my setup:

WAN           OUTSIDE NET           INSIDE NET
               IP x.x.x.x           IP x.x.y.y           
----> ROUTER  ----------->  SERVER ------------->
     (FRITZBOX)             (Linux)
      FIREWALL   GARDEN     FIREWALL  "SECURED"
        NAT      DEVICES      NAT       LAN
                            KVM HOST        

(Jan) #622

It does, thanks :slight_smile:


(Kim Skatun) #623

Let me know if I can help implement it.


(Ben) #624

I’ve been struggling with trying to get this to work since 2 days now.
Still no luck.
I am on 2.3 Stable.

What I tried so far (result at the end as it’s always the same):

  • Used version shipped with Openhab 2.3 and installed via PaperUI
  • Uninstalled Paper UI installed version and tried RC3
  • used amazon.de as account
  • used amazon.com
  • cleared /tmp and /cache multiple times
  • changed OpenHab port back to 8080 default as it’s running on 8090 over here

Thing remains in status “No session ID received”.

When accessing http://openhabhost:8090/amazonechocontrol/<thing_ID>/ I always get:

HTTP ERROR 500
Problem accessing /amazonechocontrol/account/. Reason:

    Server Error
Caused by:
org.openhab.binding.amazonechocontrol.internal.ConnectionException: No session id received
	at org.openhab.binding.amazonechocontrol.internal.Connection.getLoginPage(Connection.java:435)
	at org.openhab.binding.amazonechocontrol.internal.AccountServlet.doGet(AccountServlet.java:219)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:848)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:584)
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:284)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
	at org.eclipse.jetty.server.Server.handle(Server.java:534)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108)
	at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
	at java.lang.Thread.run(Thread.java:748)


(Cadbures) #625

Did you happen to change port from 8080 to 8090?
Are you sure that you can access internet from Openhab installed Machine?


(Ben) #626

8080 won’t work as Openhab doesnt listen on that port but on 8090. Yes, the machine has full Internet access.


Hacking BasicUI: My BasicUI Theme
(Cadbures) #627

Blockquote

First Steps
Create an ‘Amazon Account’ thing
Configure your credentials in the account thing (2 factor authentication is not supported!)
After confirmation:
a) the ‘Account Thing’ goes Online -> continue with 4)
b) the ‘Account Thing’ stays offline:
open the url YOUR_OPENHAB/amazonechocontrol in your browser (e.g. http://openhab:8080/amazonechocontrol/), click the link for your account thing and try to login.
The echo device things get automatically discovered and can be accepted

Blockquote
This is working for me… I tested it on 2.3 Stable.