Amazon Echo - Alexa don't find any devices

Look for the correct sequence in your items definition:

So it needs to be

Switch room2LampsProxy "Light" <light> [ "Switchable" ]

Change all the others too, binding config goes last.

When I do this, I get no devices at all that show up…

Then you probably have a different (or one more) error in your items file, feed it through the Eclipse Smarthome Designer or post it here.

I have got it in the Designer, but I’ll post it here anyways

//Test switch #1
Switch room1SwitchAProxy “Outlet"
String room1SwitchAPhysical {mqtt=”<[mosquitto:/home/room1/switchA/physicalIn:state:MAP(]", autoupdate=“false” }
Switch room1SwitchABound {mqtt=">[mosquitto:/home/room1/switchA/out:command:ON:1],>[mosquitto:/home/room1/switchA/out:command:OFF:0]" }

//Test switch #2
Switch room1SwitchBProxy “Light”
String room1SwitchBPhysical {mqtt="<[mosquitto:/home/room1/switchB/physicalIn:state:MAP(]", autoupdate=“false” }
Switch room1SwitchBBound {mqtt=">[mosquitto:/home/room1/switchB/out:command:ON:1],>[mosquitto:/home/room1/switchB/out:command:OFF:0]" }

//Family Room lamps
Switch room2LampsProxy “Light” [“Switchable”]
Switch room2SwitchA {mqtt=">[mosquitto:/home/room2/switchA/out:command:on:1],>[mosquitto:/home/room2/switchA/out:command:off:0]" }
Switch room2SwitchB {mqtt=">[mosquitto:/home/room2/switchB/out:command:on:1],>[mosquitto:/home/room2/switchB/out:command:off:0]" }

//Patio Lights
Switch pergolaLights “Lights” [“Switchable”] {mqtt=">[mosquitto:/home/patio/pergolaLights/out:command:ON:1],>[mosquitto:/home/patio/pergolaLights/out:command:OFF:0]" }

Switch outletASwitchA “Switch A " [“Lighting”] {mqtt=”>[mosquitto:/home/outletA/switchA/out:command:on:1],>[mosquitto:/home/outletA/switchA/out:command:off:0]" }
Switch outletASwitchB “Switch B " [“Lighting”] {mqtt=”>[mosquitto:/home/outletA/switchB/out:command:on:1],>[mosquitto:/home/outletA/switchB/out:command:off:0]" }

Switch outletBSwitchA “Switch A " [“Lighting”] {mqtt=”>[mosquitto:/home/outletB/switchA/out:command:on:1],>[mosquitto:/home/outletB/switchA/out:command:off:0]" }
Switch outletBSwitchB “Switch B - DEFECTIVE " [“Lighting”] {mqtt=”>[mosquitto:/home/outletB/switchB/out:command:on:1],>[mosquitto:/home/outletB/switchB/out:command:off:0]" }

Switch outletCSwitchA “Switch A " [“Lighting”] {mqtt=”>[mosquitto:/home/outletC/switchA/out:command:on:1],>[mosquitto:/home/outletC/switchA/out:command:off:0]" }
Switch outletCSwitchB “Switch B " [“Lighting”] {mqtt=”>[mosquitto:/home/outletC/switchB/out:command:on:1],>[mosquitto:/home/outletC/switchB/out:command:off:0]" }

//Ceiling Fan in Owen’s Room
Number room1CeilingFanSpeed {mqtt=">[mosquitto:/home/room1/ceilingFan/speed/in:command::default]"}
Number room1CeilingFanMode {mqtt=">[mosquitto:/home/room1/ceilingFan/mode/in:command:
Switch room1CeilingFanLight {mqtt=">[mosquitto:/home/room1/ceilingFan/light/in:command:ON:1]"}

Number room1Temperature “[%.1f °F]” {mqtt="<[mosquitto:/home/room1/temperature:state:default]"}
Number room1Pressure “[%.2f’’ Hg]” {mqtt="<[mosquitto:/home/room1/pressure:state:default]"}

//HomeKit Ceiling Fan Items
Switch room1CeilingFanSpeedHomeKit [“Lighting”] {mqtt=">[mosquitto:/home/room1/ceilingFan/speed/in:command:ON:0]"}
Switch room1CeilingFanLightHomeKit [“Lighting”] {mqtt=">[mosquitto:/home/room1/ceilingFan/light/in:command:ON:1],>[mosquitto:/home/room1/ceilingFan/light/in:command:OFF:1]"}
Number room1CeilingFanModeHomeKit {mqtt=">[mosquitto:/home/room1/ceilingFan/mode/in:command:ON:1],>[mosquitto:/home/room1/ceilingFan/mode/in:command:OFF:0]"}

String gardenControlProxy “Watering Mode”
Switch gardenControlBound {mqtt=">[mosquitto:/home/garden/wateringMode:command:ON:1],>[mosquitto:/home/garden/wateringMode:command:OFF:0]"}

Did it give you any errors?

I can get the error to go away by placing the item tag where you suggested (after the <>), but Echo is still not recognizing any devices. I have observed some very weird behavior though:

  • When the item tag is placed before the icon in the <> symbols, Echo recognizes the first item with this syntax, but none that come after it. This gives me an error in the Designer about the missing OEF.

  • When the item tag it placed after the <> symbols with the icon, Echo never recognizes the item.

  • I can temporarily discover multiple items by doing the following.

  • Put the item tag before the <>

  • Discover devices in the Alexa app

  • Put the item tag after the <>

  • Move the item tag before the <> on the next item

  • And repeat the same process

But this process only works for about 3 items when the app then says the devices are offline a.k.a not discovered any longer…

Yes, really weird, I have no clue about it …

I can only suggest to go through the three docs again step by step:

Official Alexa Smart Home Skill for openHAB 2 (first couple of posts)

Very, very interesting. After browsing through the docs you suggested I read, I figure that I could try and enable the Hue Emulation service. After I did, all of my devices showed up (after I tagged them after the <> like you suggested.

Take away: Anyone having trouble with the Alexa binding, try installing the Hue Emulation service

Thank you for your suggestions @sihui

1 Like

@markee @Jensen @Max1968 @eddalexandre @KingVanilla

For all who did not find any device with Alexa (via Official Alexa Smart Home Skill), I have maybe a solution! See here: Link

Hope this helps!

Edit: updated new information! (21 July)

I am not sure if you are still having problems but I have only (just today!) got my Alexa integration to work, and thought I would share what worked for me in case it helps.

Initially, I was thinking it was a uPNP problem, but I eliminated all variables by downloading a vanilla openhabian on another flash card and running a vanilla install with a new connection to and connecting that to alexa… ( luckily I have a second Pi, but you could do it on the same machine if you’re at a pinch). and just put the simplest .switch together: it was just


Switch testlight "testlight" <light> ["Lighting"]

this it magically started working - so something in my old Pi setup must’ve been causing the problem
(I am starting to think it was a Java problem - it was showing an error with the java version errors despite my trying to upgrade it shrug not going to now playing I’m simply replacing the old with the new - it works!).

Anyway… since the basic test worked with openhabian , I am now running that as my main setup - I just added each switch into the .items until they all worked, then copy|paste my old .sitemap and .rules. (yes, I had to fix my mosquitto server etc… but that was pretty vanilla too…)

anyway… I don’t know if it’ll help you but I’ve posted some excerpts from my setup so you can reference to - with the correct formatting and groups… (this is from a live-working system that does work so maybe you can use them for reference - just dump the mqtt stuff for your own command setup)


Group:Switch:OR(ON, OFF) AllLights "All Lights" ["Switchable"] //"Alexa, turn [on|off] all lights"
Group:Switch:OR(ON, OFF) Lounge "Lounge Lights" ["Switchable"] //"Alexa, turn [on|off] Lounge Lights"
Group:Switch:OR(ON, OFF) Kitchen "Kitchen Lights" (Kitchenunderbenchlight, KitchenSinkLight, KitchenBenchLight, KitchenTableLight) ["Switchable"] //"Alexa, Turn [on|off] kitchen lights"

Number OutsideTemp "Outside Temperature [%.1f °C]" ["CurrentTemperature"] { mqtt="<[mosquitto:house/outside/temperature:state:default]"}
Switch OutsideLight "Outside Light" <light> [ "Lighting" ] {mqtt=">[mosquitto:house/outside/lights:command:ON:ON],>[mosquitto:house/outside/lights:command:OFF:OFF], <mosquitto:house/outside/lights:state:default]"}

Switch LoungeBlinds "Blinds" <blinds> [ "Switchable" ] {mqtt=">[mosquitto:house/lounge/blinds:command:ON:OPEN],>[mosquitto:house/lounge/blinds:command:OFF:CLOSE], <[mosquitto:house/lounge/blinds:state:default]"}
Switch Kitchenunderbenchlight "Underbench Lights" <light> (Kitchen, AllLights) [ "Lighting" ] {mqtt=">[mosquitto:house/kitchen/underbenchLight:command:ON:ON], >[mosquitto:house/kitchen/underbenchLight:command:OFF:OFF], <[mosquitto:house/kitchen/underbenchLight:state:default]"}
[truncated for size...just more switch entries from here]

FWIW: for my testing , I recommend starting VERY basic (ie. one switch in the items file first and see if you can get that linking to alexa and expand from there). As you can see i use a lot of MQQT for all of my switching - as I have an a homebrew-arduino 12V setup here… hope it’s not too complicated to follow.

in regards to testing:
I would start from a blank .items file:

  1. add the switch entry in the .items
  2. tail -f /var/log/openhab2/openhab.log - and check to see if there are any errors.
  3. open paperui/configuration/services/openhabconnector/configure and make sure that the added switch was both visible and activated (ticked) then saved (should see an update in the log to openhab when you click save)
  4. wait a few seconds for that to link to myopenhab
  5. open and discover. If it worked, I would see the new entry if it is all working.
  6. test: “Alexa, turn on [switch i just added]” if she says OK… start adding until they are all there!
    then repeat.

I found the difficulties were when I added them all at one go - and something wasn’t working in one of them, then none would work… so I did them SLLLLOOOWWLY, one-at-a-time - and now everything works… tedious but finally successful.

hope this helps someone in someway.
Melbourne, Australia

1 Like

I have the problem of Alexa not discovering devices from OpenHAB.
When looking at network packets, I don’t see any response from OH.
Meanwhile UPNP packets are seen by it.
Here is an excerpt from logs with debugging:

2017-08-15 12:08:24.166 [DEBUG] [upnp.transport.spi.MulticastReceiver] - UDP datagram received from: on local interface: Intel(R) Ethernet Connection (2) I219-V and address:
2017-08-15 12:08:24.166 [TRACE] [upnp.transport.spi.DatagramProcessor] - ===================================== DATAGRAM BEGIN ============================================
2017-08-15 12:08:24.166 [TRACE] [upnp.transport.spi.DatagramProcessor] - M-SEARCH * HTTP/1.1
MAN: "ssdp:discover"
MX: 15
ST: urn:schemas-upnp-org:device:basic:1

2017-08-15 12:08:24.166 [TRACE] [upnp.transport.spi.DatagramProcessor] - -===================================== DATAGRAM END =============================================
2017-08-15 12:08:24.166 [TRACE] [org.jupnp.protocol.ProtocolFactory  ] - Creating protocol for incoming asynchronous: (IncomingDatagramMessage) M-SEARCH
2017-08-15 12:08:24.166 [DEBUG] [org.jupnp.transport.Router          ] - Received asynchronous message: (IncomingDatagramMessage) M-SEARCH
2017-08-15 12:08:24.166 [TRACE] [org.jupnp.model.message.UpnpHeaders ] - Parsing all HTTP headers for known UPnP headers: 4
2017-08-15 12:08:24.166 [TRACE] [upnp.model.message.header.UpnpHeader] - Trying to parse 'ST' with class: STAllHeader
2017-08-15 12:08:24.166 [TRACE] [upnp.model.message.header.UpnpHeader] - Invalid header value for tested type: STAllHeader - Invalid ST header value (not ALL): urn:schemas-upnp-org:device:basic:1
2017-08-15 12:08:24.166 [TRACE] [upnp.model.message.header.UpnpHeader] - Trying to parse 'ST' with class: RootDeviceHeader
2017-08-15 12:08:24.166 [TRACE] [upnp.model.message.header.UpnpHeader] - Invalid header value for tested type: RootDeviceHeader - Invalid root device NT header value: urn:schemas-upnp-org:device:basic:1
2017-08-15 12:08:24.166 [TRACE] [upnp.model.message.header.UpnpHeader] - Trying to parse 'ST' with class: UDADeviceTypeHeader
2017-08-15 12:08:24.166 [TRACE] [org.jupnp.model.message.UpnpHeaders ] - Adding parsed header: (UDADeviceTypeHeader) 'urn:schemas-upnp-org:device:basic:1'
2017-08-15 12:08:24.166 [TRACE] [upnp.model.message.header.UpnpHeader] - Trying to parse 'HOST' with class: HostHeader
2017-08-15 12:08:24.166 [TRACE] [org.jupnp.model.message.UpnpHeaders ] - Adding parsed header: (HostHeader) ''
2017-08-15 12:08:24.166 [TRACE] [upnp.model.message.header.UpnpHeader] - Trying to parse 'MX' with class: MXHeader
2017-08-15 12:08:24.166 [TRACE] [org.jupnp.model.message.UpnpHeaders ] - Adding parsed header: (MXHeader) '15'
2017-08-15 12:08:24.166 [TRACE] [upnp.model.message.header.UpnpHeader] - Trying to parse 'MAN' with class: MANHeader
2017-08-15 12:08:24.166 [TRACE] [org.jupnp.model.message.UpnpHeaders ] - Adding parsed header: (MANHeader) 'ssdp:discover'
2017-08-15 12:08:24.166 [TRACE] [org.jupnp.transport.Router          ] - Trying to obtain lock with timeout milliseconds '6000': ReadLock
2017-08-15 12:08:24.166 [TRACE] [org.jupnp.transport.Router          ] - Acquired router lock: ReadLock
2017-08-15 12:08:24.199 [TRACE] [org.jupnp.transport.Router          ] - Releasing router lock: ReadLock
2017-08-15 12:08:24.199 [TRACE] [jupnp.protocol.async.ReceivingSearch] - Responding to device type search: urn:schemas-upnp-org:device:basic:1
2017-08-15 12:08:24.494 [TRACE] [org.jupnp.registry.Registry         ] - Maintaining registry...

I don’t see any answer from OH on each of Echo’s UPNP packets.
The local devices are configured, here are examples (the first one just for test):

Switch LivingRoomLight "Living Room Light" <light> [ "Lighting" ]

Switch egAmplifierPower "Amplifier" <amplifier> (gLivingRoom) [ "Switchable" ] {mqtt=">[mq:EG/Amp/1:command:ON:1],>[mq:EG/Amp/0:command:OFF:0]"}

How to troubleshoot the reason there is no reply on UPNP?
I use OpenHAB 2.2.0-SNAPSHOT.

I’ve just updated to 2.2 and now get error messages when discovering devices through Alexa. It worked with no problems before, did you figure it out?

I was under a wrong impression that UPNP should work when using Alexa Smart Home skill for OpenHAB.
Everything works correctly (the problem of not discovering devices was on Amazon side).
There are some limitations in the current version of OH skill (for example, payload v3 - entertainment devices - not supported), but what’s documented - works O.K.

May be useful to someone. Spent weeks in troubleshooting.
My Echo Plus was not discovering devices, Alexa was requesting /api/description.xml but after that nothing. Monitoring network traffic revealed that Alexa was switching to port 80 even if URLBase in description.xml was
The solution that worked for me was to configure nginx bypass the requests to /api to OH in case they are from local network:

server {
    listen                                    80;
    server_name                     ;
    location / {
        return 301                            https://$server_name$request_uri;

    location /api {
        allow                       ;
        proxy_pass                            http://localhost:8080/api;

I am struggling to get Alexa working with openHAB directly, I followed:

I see that app on my iphone, but no new devices are found. How can I debug this more? I ran tcpdump on my public interface port 443 and when I run a discover I see lots of traffic from to my IP, but I don’t see anything in the logs. In your post you mention passing /api via NGINX, but when I hit localhost:8080/api I get:

[root@lisa openhab2]# curl http://localhost:8080/api
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title>Error 404 Not Found</title>
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing /api. Reason:
<pre>    Not Found</pre></p><hr><a href="">Powered by Jetty:// 9.3.22.v20171030</a><hr/>


I am running openHAB 2.2


I have the same problem …
I use the homekit skill and on my iPhone everything works in homekit and on my previous installation alexa worked too (just installed the openhab skill and started the search) but now if i do so no device is found and i don’t know why.
Obviously my tags are correct (cause it works on my iDevices) and i even deactivated and reactivated the OH Skill in my Alexa app.
Do you have any idea what else i could try?


Did you try (read) this?


Hi Celaeno1,

thank you for your reply!
I read it (now) and I can’t see why it’s not working.
I added all my things/items (except the z-wave stuff), through textual config files (in the tings and items folders).
I deactivated the simple “Item Linking - Simple Mode” because it creates duplicates when i do textual configuration and configuration via paperui.

I switched it on and told alexa to find new devices, what she did not.
I think that’s because i added the items before without “simple item linking”. Is that correct?
Do i have to add them again with that slider turned on? ;-(

I deleted my runtime.cfg because it auto deinstalled several bindings … (although it was empty - just lines with # so its basically empty)

I did it!
Thanks to your advice I recognized that the openHAB connector binding was not properly installed.
It did not show up in services menu but as i wanted to install it again it told me that it’s already installed.
after trying again it showed up in the service menu.
I then edited the uuid and secret again and now alexa did find everything!
thanks a lot!