How to identify zwave vendor:product ids of new unknown Things

Hello,

Even though I am a technical person, I have only 24h of experience on OH-raspi-zwave.

In short

I can’t get Popp 010101 thermostatic radiator valves (TRV) recognised in OpenHAB 2.5.11-1.

In details

Hardware is (all brand new, all working on European frequency 868.42MHz):

  • Rasberry Pi 4 4GB
  • Zwave dongle Aeotec ZW090-C (868.42 MHz)
  • 2 x Popp TRV 010101 (same as danfoss and 868.42 MHz)

Software

Current stable OpenHABian image (i.e. raspbian with OH config… step-by-step clean install)
I installed basic system + stable OH 2.5.11-1 + main interfaces behind nginx HTTPS reverse proxy without trouble.

Serial port is OK (even though Paper UI does not like symlinks: /dev/ttyUSB-Aeotec -> /dev/ttyACM0).

Reasoning

I read pages and pages of doc and forum chats (not all of everything though) to avoid polluting forum with answered questions.

I must confess I am lost (and it costs me to write this).

At discovery time, OH found 3 things, which I guessed were the dongle itself and the two TRVs.
I immediately renamed them with names making sens for me (I like things named their real-life names).

But then I realized that they were unknown devices.

I read on zwave binding and came to the solution of duplicating the XML file supporting this model as a variant of an existing one (listed under danfoss). See opensmarthouse.org for explanations.

Now, I am stuck in providing the id of the TRVs: I am supposed to supply 2x4 digits 1234:4567, but I only have the vendor part 0115 in jsondb and not the product ID.

On TRVs, HABmin shows this:

image

I then started everything in debug: start_debug.sh and log:set trace.

I launched discovery again and got disappointed that vendor:product IDs were not shown in there.

  • Is there anyone who knows a not-too-painfull procedure to go ahead?
  • Alternatively, if someone as an experience with using the Aeotec/Popp 010101-combination of hardware, that would also help.
  • Lastly, if there is another release/branch or mix of versions that I should use or avoid, tell me know.

My discovery log is shown hereunder.

I thank you in advance for the beautiful community work you all do.

Coronafree {hug}

Arim

P.S. : Feel free to write me in any of FR-NL-EN-ES

/var/log/openhab2/openhab.log:2020-12-15 09:45:47.376 [DEBUG] [ce.jetty.internal.HttpServiceContext] - Handling request for [/rest/discovery/bindings/zwave/scan] using http context [DefaultHttpContext [bundle=com.eclipsesource.jaxrs.publisher_5.3.1.201602281253 [19], contextID=default]]
/var/log/openhab2/openhab.log:2020-12-15 09:45:47.428 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - COMMIT for /rest/discovery/bindings/zwave/scan on HttpChannelOverHttp@78487129{r=1,c=true,c=false/false,a=DISPATCHED,uri=//10.0.0.100/rest/discovery/bindings/zwave/scan,age=61}
/var/log/openhab2/openhab.log:2020-12-15 09:45:47.438 [DEBUG] [org.eclipse.jetty.io.ChannelEndPoint] - flushed 99 SocketChannelEndPoint@76843550{/0:0:0:0:0:0:0:1:52234<->/0:0:0:0:0:0:0:1:8080,OPEN,fill=-,flush=W,to=116/30000}{io=0/0,kio=0,kro=1}->HttpConnection@2145d6fa[p=HttpParser{s=CONTENT,0 of 21},g=HttpGenerator@763c4937{s=COMPLETING}]=>HttpChannelOverHttp@78487129{r=1,c=true,c=false/false,a=DISPATCHED,uri=//10.0.0.100/rest/discovery/bindings/zwave/scan,age=71}
/var/log/openhab2/openhab.log:2020-12-15 09:45:47.444 [DEBUG] [rg.eclipse.jetty.io.AbstractEndPoint] - shutdownOutput SocketChannelEndPoint@76843550{/0:0:0:0:0:0:0:1:52234<->/0:0:0:0:0:0:0:1:8080,OPEN,fill=-,flush=-,to=4/30000}{io=0/0,kio=0,kro=1}->HttpConnection@2145d6fa[p=HttpParser{s=CONTENT,0 of 21},g=HttpGenerator@763c4937{s=END}]=>HttpChannelOverHttp@78487129{r=1,c=true,c=false/true,a=DISPATCHED,uri=//10.0.0.100/rest/discovery/bindings/zwave/scan,age=78}
/var/log/openhab2/openhab.log:2020-12-15 09:45:47.448 [DEBUG] [org.eclipse.jetty.server.Server     ] - handled=true async=false committed=true on HttpChannelOverHttp@78487129{r=1,c=true,c=false/true,a=DISPATCHED,uri=https://10.0.0.100/rest/discovery/bindings/zwave/scan,age=82}
/var/log/openhab2/openhab.log:2020-12-15 09:45:47.450 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - HttpChannelOverHttp@78487129{r=1,c=true,c=false/true,a=COMPLETING,uri=https://10.0.0.100/rest/discovery/bindings/zwave/scan,age=83} action COMPLETE
/var/log/openhab2/openhab.log:2020-12-15 09:45:47.451 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - COMPLETE for /rest/discovery/bindings/zwave/scan written=2
/var/log/openhab2/openhab.log:2020-12-15 09:45:47.455 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@2145d6fa::SocketChannelEndPoint@76843550{/0:0:0:0:0:0:0:1:52234<->/0:0:0:0:0:0:0:1:8080,OSHUT,fill=-,flush=-,to=15/30000}{io=0/0,kio=0,kro=1}->HttpConnection@2145d6fa[p=HttpParser{s=CLOSE,0 of 21},g=HttpGenerator@763c4937{s=START}]=>HttpChannelOverHttp@78487129{r=1,c=false,c=false/false,a=IDLE,uri=null,age=0} parse HeapByteBuffer@69766310[p=553,l=574,c=8192,r=21]={POST /rest/discov.../index.html\r\n\r\n<<<{"bindingId":"zwave"}>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00} {}
/var/log/openhab2/openhab.log:2020-12-15 09:45:47.455 [DEBUG] [org.eclipse.jetty.http.HttpParser   ] - parseNext s=CLOSE HeapByteBuffer@69766310[p=553,l=574,c=8192,r=21]={POST /rest/discov.../index.html\r\n\r\n<<<{"bindingId":"zwave"}>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
/var/log/openhab2/openhab.log:2020-12-15 09:45:47.485 [DEBUG] [org.eclipse.jetty.io.ChannelEndPoint] - filled -1 HeapByteBuffer@69766310[p=0,l=0,c=8192,r=0]={<<<>>>POST /rest/discov...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
/var/log/openhab2/openhab.log:2020-12-15 09:45:47.488 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@2145d6fa::SocketChannelEndPoint@76843550{/0:0:0:0:0:0:0:1:52234<->/0:0:0:0:0:0:0:1:8080,CLOSED,fill=-,flush=-,to=28/30000}{io=0/0,kio=-1,kro=-1}->HttpConnection@2145d6fa[p=HttpParser{s=CLOSE,0 of 21},g=HttpGenerator@763c4937{s=START}]=>HttpChannelOverHttp@78487129{r=1,c=false,c=false/false,a=IDLE,uri=null,age=0} filled -1 HeapByteBuffer@69766310[p=0,l=0,c=8192,r=0]={<<<>>>POST /rest/discov...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
/var/log/openhab2/openhab.log:2020-12-15 09:45:47.493 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@2145d6fa::SocketChannelEndPoint@76843550{/0:0:0:0:0:0:0:1:52234<->/0:0:0:0:0:0:0:1:8080,CLOSED,fill=-,flush=-,to=33/30000}{io=0/0,kio=-1,kro=-1}->HttpConnection@2145d6fa[p=HttpParser{s=CLOSE,0 of 21},g=HttpGenerator@763c4937{s=START}]=>HttpChannelOverHttp@78487129{r=1,c=false,c=false/false,a=IDLE,uri=null,age=0} parse HeapByteBuffer@69766310[p=0,l=0,c=8192,r=0]={<<<>>>POST /rest/discov...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00} {}
/var/log/openhab2/openhab.log:2020-12-15 09:45:47.493 [DEBUG] [org.eclipse.jetty.http.HttpParser   ] - parseNext s=CLOSE HeapByteBuffer@69766310[p=0,l=0,c=8192,r=0]={<<<>>>POST /rest/discov...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
/var/log/openhab2/openhab.log:2020-12-15 09:45:49.414 [WARN ] [wave.discovery.ZWaveDiscoveryService] - NODE 6: Device discovery could not resolve to a thingType! Manufacturer data not known.
/var/log/openhab2/openhab.log:2020-12-15 09:45:49.425 [WARN ] [wave.discovery.ZWaveDiscoveryService] - NODE 7: Device discovery could not resolve to a thingType! Manufacturer data not known.
/var/log/openhab2/openhab.log:2020-12-15 09:49:34.745 [DEBUG] [org.osgi.framework.ServiceEvent     ] - ServiceEvent UNREGISTERING - {org.eclipse.smarthome.config.discovery.DiscoveryService}={service.id=416, service.bundleid=227, service.scope=singleton}
/var/log/openhab2/openhab.log:2020-12-15 09:49:34.864 [DEBUG] [ell.impl.action.osgi.CommandExtender] - org.openhab.core.config.discovery.usbserial.linuxsysfs (229): Starting destruction process
/var/log/openhab2/openhab.log:2020-12-15 09:49:34.866 [DEBUG] [ell.impl.action.osgi.CommandExtender] - org.openhab.core.config.discovery.usbserial.linuxsysfs (229): Not an extended bundle or destruction of extension already finished
/var/log/openhab2/openhab.log:2020-12-15 09:49:34.867 [DEBUG] [ell.impl.action.osgi.CommandExtender] - org.openhab.core.config.discovery.usbserial.linuxsysfs (229): Starting destruction process
/var/log/openhab2/openhab.log:2020-12-15 09:49:34.868 [DEBUG] [ell.impl.action.osgi.CommandExtender] - org.openhab.core.config.discovery.usbserial.linuxsysfs (229): Not an extended bundle or destruction of extension already finished

Welcome and thank you for your thorough post.

Your devices do not appear to be fully discovered by the binding. Battery powered devices need to woken up many times until they respond to the information request from the binding. Your HABmin attributes for manufacturer, type, id and firmware version are received from that request and uniquely identify the database entry used.

Hi Bruce and community,

I appreciate community support and I do my best to produce clear and complete posts with hints for the fast readers (bold-face parts). It is my humble contribution to limit time waste.

If I understand well, I just need to wait :hourglass_flowing_sand: until a number of sleep-wakeup cycles :sleeping_bed:/:alarm_clock: have completed before the Thing’s attributes are all auto-magically :mage: populated. :white_check_mark: Right?

Else, please reformulate :thinking:

:+1: Advantage of the procedure: I can focus on my (tele-)work :computer: and stop playing plumber :hammer_and_wrench: apprentice.
:-1: Disadvantage: How will I live without this for another 24 or 48h? :fearful: :sob:

:belgium: Arim.

I am not as experienced as some here nut the easiest thing might be to restart openHAB and then wake up your device several times. Some devices have taken up to 5 minutes before they respond properly to the NIF (Node Information Frame) request that is part of the standard.

It may be easiest to concentrate on one device first.

I have been so impressed with the developer support for Z-Wave here I have been assisting with database cleanup and other activities to assist since I am no Java developer.