ALL openHAB items listed in /rest/items

My issue: when I tried to solve the problem that new tagged items were not Alexa discovered I found out that ALL my items defined in *.items files are listed in myopenhab.org/rest/items, these are about 700 items! And every item status change is reflected in myopenhab.org/rest/items! Of course this makes no sense and stress myopenhab unnecessarily. I thought only tagged items are shown in this list.
It seems – after several tests – that this amount of items is too high for the Amazon Alexa Smart Home device handling to be processed because all openHAB devices listed on Amazon Alexa Smart Home device list went offline, no more items could be added. When I reduced the amount of openHAB items (commented out some items in *.items files) the tagged openHAB devices went online again.

My question : How can I reduce the items in myopenhab.org/rest/items to the relevant tagged items?

What have I tried ?

My environment :

  • openHAB 2.3.0 (release build)
  • 62 tagged items for different bindings
  • in Paper UI Configuration->Services->IO->openHAB Cloud – NO items exposed to apps
  • NEVER used/created a file “myopenhab.persist
  • Amazon Echo Control Binding version Beta 2.4 (9) for OH 2.3/2.4 (should not be related to the root cause)

Regards,
Andy

Why do you say this? That REST endpoint is and I quote “Get all available Items”. Don’t make the mistake of assuming that Alexa integration is the only reason there is that REST API call. It has been there since LONG before Alexa integration was implemented and it is used by, for example PaperUI, to let you see and administer all of your Items.

It was created for, and is used to list all available Items. It is doing what it is supposed to do.

As far as I know, that REST endpoint is only called when it is explicitly requested by something. For example, when you open the Items page in PaperUI. I suspect that Alexa will call that API endpoint when you initially ask it to synchronize devices (that is how it works with Google Assistant anyway).

This is a GET. You have to poll it to get the data back. It doesn’t push that data t myopenhab.org.

700 really isn’t that many Items. People with thousands of Items are successfully using Alexa. I think something else is going on.

And like I said above, that endpoint is only pulled on request. I believe (I’m not positive so could be wrong) that the only time that Alexa pulls that information is when synchronizing devices. Once it goes through the list it remembers those with recognizable tags. When it needs to access that device, it does so directly using the REST API endpoint for getting or command individual Items.


You can’t. That REST API endpoint’s entire reason for being is to list all your Items and it is needed by many many other parts of OH.

As expected.

As expected.

myopenhab.org doesn’t use the .persist file anymore. You have to list each Item individually in the Cloud Connector binding to expose the Items to external services like IFTTT. You do not need to do this for Alexa or Google Assistant integration.

You are assuming you understand the root cause which I don’t think you do. There must be something else going on in your situation because the items REST API endpoint is behaving like it always has. I think it was a fluke that reducing the number of items made it work or doing that has uncovered some other bug.

Before anyone is going to be able to help you I suspect you will need to upgrade to at least the latest Milestone Build (I think M8 was recently released) and show that it is still a problem with the latest baseline. If it is, then you need to file an issue on the Amazon Echo Control Binding here.

Whatever the problem is, it isn’t that the items REST API endpoint is returning all your Items.

1 Like

Thank you for clarification what items REST API is used for. Apparently I mixed up purpose of myopenhab.org/item (to expose items) and myopenhab.org/rest/items. Now I will try to pinpoint the problem with some more tests. Thereafter I will address my question (hopefully) to the right topic area.

@andyzle
Check your http://myopenhab.org/rest/items if there are labels for each tagged item.
Check the syntax of your tags.
Check if there are e.g. german Umlaute (ä, ö, ü, ß) or other special characters inside.

Also see: (examples and syntax of tagging)
https://www.openhab.org/docs/ecosystem/alexa/

Or here: (syntax of tagging)


Or here: (syntax of tagging)

@Celaeno1: Thank you for your support.
According to your advice I checked labels for all tagged items in http://myopenhab.org/rest/items and tag syntax. Two points in which I’m not sure:

  • Regarding “german Umlaute (ä, ö, ü, ß) or other special characters inside.” - this is true only for item name or also for labels ? E.g. I have items with labels like "Verstärker" or "Badezimmer Soll Temperatur [%.1f °C]" which I was able to control also via Alexa in the past up to now.
  • For tag "Thermostat" I found different syntax ["homekit:HeatingCooling"] (see Amazon Alexa Skill) and ["homekit:HeatingCooling Mode ”] (see HomeKit Add-on); currently I`m using HeatingCooling Mode which works for me, therefore I would assume this is the correct syntax.

@andyzle

is the correct one!

And I think only the “item names”, not labels, shouldn’t contain Umlaute.

But to be sure, you better should use no Umlaute in .item file.

Hi guys,
you are describing more less the same problem I have currently with my Alexa Skill. It was working fine but all devices where shown as “offline”. Then I tried to add a new devices and it can’t discover any.

I have > 600 items.

@andyzle
Do you have also exceptions in the openhab.log while trying to discover new items through the Alexa App or web page?

Best regards
Timmi

Hi all,

quick update. I reduced my items to 174 and Alexa was immediately able to discover my tagged items.

Characters like ‘_’ are accepted in the item name.
Special characters (öäü) are also find in the label.

So there has to be a problem with the item list length.

Best regards
Timmi

1 Like

@Timmi
I have more than 400 items in my .items file. And all “tagged items” are discovered by Alexa-App without any problem.

Maybe while reducing (deleting) your amount of items, from >600 to 174, your (syntax) errors were deleted, too.

@Celaeno1
Yes this is also a possibility But this would mean that there was somehow a problem with the internal json DB which got fixed by removing and recreating all items again.

I only removed items files to reduce the number of items. Later I just copied the files again.

Best regards
Timmi

@Celaeno1 @Timmi: To isolate the root cause I did more than 50 test cycles with changing my item files (1. removing/recreation of preselected items in *.items files, 2. check item change on myopenhab.org/rest/items/ if deleted or not, 3. on Alexa device list (alexa.amazon.de/spa/index.html#appliances) check status of openhab related items by first: browser refresh – second: device search). So far I have no idea how to interpret the results but these are the facts:

  • Removing / recreating items:
    • All openHAB items in Amazon Alexa Smart Home device list remain online as long as I do not create items linked to channels related to things of Amazon Echo Control Binding ; Alexa was able to discover all my tagged items.
    • I DON’T have tagged items related to Amazon Echo Control Binding.
    • I have 4 Echo dots and one Echo each controlled via 23 channels of Amazon Echo Control Binding.
    • After recreation of items for up to 3 echo/dots same situation as described in point 1; regardless which 3 of the 5 echo/dots. In this situation 72 items linked to channels related to echo things.
    • After recreation of some items for the remaining 2 echo/dots (>80 items) described problem occurs: openHAB items listed in Amazon Alexa Smart Home device list go offline, item discovery does not work.
    • I checked the syntax of all tagged items and also for echo related items. But of course it’s possible – and I can not exclude the possibility – that a non-detected error in my configuration leads to the behaviour described above.
  • Regarding error/warning messages in openhab.log which MIGHT be related to the issue:
    • “Failed notifying listener about state update of item Echo1_MusicProviderId: null”
      But after this message the devices remain online.
    • “Could not update element with key _tags:<item name> in ManagedMetadataProviderImpl, because it does not exists”; within the thread “Warnings when updating an item file with tags” some users reported side effects on items; this issue seems to be fixed in OH 2.4 which was released yesterday. That’s why - before wasting more time on testing - I will update to OH 2.4 and see if the problem persists.

Question @Timmi – are you using Amazon Echo Control Binding? If yes, could you try if openHAB items in Amazon Alexa Smart Home device list remain online when you remove all items related to this binding? And after doing this – was Alexa able to discover your tagged items?

Hi,
I removed all items except my shutters. Means also my Echo controll items. After that I was able to get the Alexa skill working again.
Then I added all my other items again and it is still working. So I also can exclude that the config files are the problem because I did not touch them. Except removing them.

So I guess this was related to a internal json DB file or so which got recreated due to the removal of my items.

Best regards
Timmi