Module QS-Zigbee-C01 - STOP not working in OpenHAB 3.1 and deCONZ

I need yout help with the QS-Zigbee-C01 rollershutter / curtain module in openHAB 3.1.
The UP and DOWN Buttons are working.
The STOP key does not stop the rollershutter, instead it sends the DOWN command.

A wireshark capture shows that command 0x01 is sent for STOP (should be 0x02)

I tested the module with the deCONZ-gui: The deCONZ-gui sends the correct command for Stop.

Where can i correct this in obenHAB or deCONZ?

Thank you :slight_smile:

Hard- and Software Iinformation

RaspBee II
Version 2.12.03 / 12.07.2021
Firmware 266F0700

openHAB 3.1.0
Java Laufzeit Azul Systems, Inc. 11.0.11 (Zulu11.48+21-CA)

Raspberry Pi 4 Model B
Raspbian GNU/Linux 10 (buster)

Zigbee module QS-Zigbee-C01
Manufacturer _TZ3000_vd43bbfq
Model Identifier TS130F

wireshark captures
Sending commands from deconc-gui to device (Wireshark capture)
Up / Open sends 0x00 to device
Down / Close sends 0x01 to device
Stop sends 0x02 to device

Sending comands from openHAB to device (Wireshark capture)
Up / Open sends 0x00 to device
Down / Close sends 0x01 to device
Stop sends 0x01 to device

openhab logfiles
$ tail -f /var/log/openhab/events.log
2021-07-16 22:08:31.849 [INFO ] [openhab.event.ItemCommandEvent ] - Item ‘rolladen1TZ3000vd43bbfq_Position’ received command STOP

$ tail -f /var/log/openhab/openhab.log
2021-07-16 22:02:54.812 [WARN ] [ernal.handler.DeconzBaseThingHandler] - Sending command STOP to channel deconz:windowcovering:00212E0647C4:rollladen 1:position failed: 400 - [{“error”:{“address”:"/lights/4/state",“description”:“body contains invalid JSON”,“type”:2}}]

Hello, you can’t take a look somewhere in the REST command used by HA ?

failed: 400 - [{“error”:{“address”:"/lights/4/state",“description”:“body contains invalid JSON”,“type”:2}}]

There is so much command possibles to use the stop command with the API, can use directly stop, or can use bri or lift.

Else it s possible in the GUI with the “http” debug flag.

Hello Smanar,
thank you for your answer. I am trying to find the REST-command used by openHAB but i don’t know where to find it.

Hello Smanar,
sorry for the delayed answer. I just started with openHAB / deCONZ and it just takes some time to find the information.
With gui-debug set to http I could not get helpful information.
Setting the openHAB-console log level to debug resulted in more information but I can’t see the command.

I keep searching…

Following the output with log-level set to debug:
openhab> log:set DEBUG openhab.event
openhab> log:set DEBUG org.openhab

19:56:38.168	received command UP
19:56:38.703	received command DOWN
19:56:39.485	received command STOP


19:56:38.151 [DEBUG] [.core.internal.PlainMessageBodyReader] - Received: type=class java.lang.String, genericType=class java.lang.String, annotations=[@io.swagger.v3.oas.annotations.Parameter(schema=@io.swagger.v3.oas.annotations.media.Schema(writeOnly=false, enumAsRef=false, nullable=false, hidden=false, defaultValue="", deprecated=false, minLength=0, pattern="", description="", title="", type="", accessMode=AUTO, required=false, example="", exclusiveMaximum=false, allOf=null, oneOf=null, not=java.lang.Void.class, ref="", allowableValues={}, maxProperties=0, discriminatorMapping={}, exclusiveMinimum=false, multipleOf=0.0, implementation=java.lang.Void.class, format="", anyOf={}, subTypes={}, readOnly=false, minProperties=0, extensions={}, requiredProperties={}, discriminatorProperty="", name="", maximum="", externalDocs=@io.swagger.v3.oas.annotations.ExternalDocumentation(description="", url="", extensions={}), minimum="", maxLength=2147483647), allowReserved=false, hidden=false, in=, deprecated=false, description="valid item command (e.g. ON, OFF, UP, DOWN, REFRESH)", required=true, content={}, example="", ref="", extensions={}, examples={}, array=@io.swagger.v3.oas.annotations.media.ArraySchema(minItems=2147483647, schema=@io.swagger.v3.oas.annotations.media.Schema(writeOnly=false, enumAsRef=false, nullable=false, hidden=false, defaultValue="", deprecated=false, minLength=0, pattern="", description="", title="", type="", accessMode=AUTO, required=false, example="", exclusiveMaximum=false, allOf={}, oneOf={}, not=java.lang.Void.class, ref="", allowableValues={}, maxProperties=0, discriminatorMapping={}, exclusiveMinimum=false, multipleOf=0.0, implementation=java.lang.Void.class, format="", anyOf={}, subTypes={}, readOnly=false, minProperties=0, extensions={}, requiredProperties={}, discriminatorProperty="", name="", maximum="", externalDocs=@io.swagger.v3.oas.annotations.ExternalDocumentation(description="", url="", extensions={}), minimum="", maxLength=2147483647), maxItems=-2147483648, extensions={}, arraySchema=@io.swagger.v3.oas.annotations.media.Schema(writeOnly=false, enumAsRef=false, nullable=false, hidden=false, defaultValue="", deprecated=false, minLength=0, pattern="", description="", title="", type="", accessMode=AUTO, required=false, example="", exclusiveMaximum=false, allOf={}, oneOf={}, not=java.lang.Void.class, ref="", allowableValues={}, maxProperties=0, discriminatorMapping={}, exclusiveMinimum=false, multipleOf=0.0, implementation=java.lang.Void.class, format="", anyOf={}, subTypes={}, readOnly=false, minProperties=0, extensions={}, requiredProperties={}, discriminatorProperty="", name="", maximum="", externalDocs=@io.swagger.v3.oas.annotations.ExternalDocumentation(description="", url="", extensions={}), minimum="", maxLength=2147483647), uniqueItems=false), explode=DEFAULT, allowEmptyValue=false, name="", style=)], mediaType=text/plain, httpHeaders={Accept=[*/*], accept-encoding=[gzip, deflate, br], Accept-Language=[de,en-US;q=0.7,en;q=0.3], Authorization=[Bearer eyJraWQiOm51bGwsImFsZyI6IlJTMjU2In0.eyJpc3MiOiJvcGVuaGFiIiwiYXVkIjoib3BlbmhhYiIsImV4cCI6MTYyNzMyMzk1MSwianRpIjoibnRUaVVmSUkwRUl3ZXlxTXFucURmQSIsImlhdCI6MTYyNzMyMDM1MSwibmJmIjoxNjI3MzIwMjMxLCJzdWIiOiJ0ZWNobmlrIiwiY2xpZW50X2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjI1My4yMzk6ODQ0MyIsInNjb3BlIjoiYWRtaW4iLCJyb2xlIjpbImFkbWluaXN0cmF0b3IiXX0.LiAv7M0Jtqz6jlBgR480qWUgfBpsVT17TL2oSPgU4DR1DIFrtF42vN4OB7UrV8cvqrWDL2p7fuT3dEoKRzW_aXzPfuzYc3JWjVxbJzC9jJDVRnzp-ADWRlIFCA6hCYS-cCi_0d4lCEtXxLFfYStLxzw4ZgXzhVbqDDHAIyORj2_mtifBQHKtFJKRb-9zs4DEgCTEp6dnSHfS-F3kY4XyGDdtqtsSbAqogg6alHsqjCR5r8k2Oud8NCjwz1ZmAC4Vhs2CAZ6a6h5Sh--MtCAUAoUu5esrdW5HH_lEOd5M0h56ik3j9Zd2JfxaO-TUPD-RHTnejliTUh83tP2ayOWdRQ], connection=[keep-alive], Content-Length=[2], content-type=[text/plain], Cookie=[X-OPENHAB-SESSIONID=fcdf7fb1-9327-4c51-8a3c-ffc4206d05c4], Host=[192.168.xxx.xxx:8443], Origin=[https://192.168.xxx.xxx:8443], Referer=[https://192.168.xxx.xxx:8443/settings/pages/layout/Sammelsurium], Sec-Fetch-Dest=[empty], Sec-Fetch-Mode=[cors], Sec-Fetch-Site=[same-origin], User-Agent=[Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0], X-Requested-With=[XMLHttpRequest]}
19:56:38.163 [DEBUG] [tor.internal.metrics.EventCountMetric] - Received event on topic openhab/items/rolladen1TZ3000vd43bbfq_Position/command.
19:56:38.165 [DEBUG] [internal.profiles.ProfileCallbackImpl] - Delegating command 'UP' for item 'rolladen1TZ3000vd43bbfq_Position' to handler for channel 'deconz:windowcovering:00212Exxyyzz:rollladen1:position'
19:56:38.168 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'rolladen1TZ3000vd43bbfq_Position' received command UP
19:56:38.169 [DEBUG] [e.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.binding.ThingHandler" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@189625e[org.openhab.core.thing:3.1.0(id=213)]" for "[interface org.openhab.core.thing.binding.ThingHandler]"
19:56:38.172 [INFO ] [openhab.event.ItemStatePredictedEvent] - Item 'rolladen1TZ3000vd43bbfq_Position' predicted to become 0
19:56:38.172 [DEBUG] [e.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.ChannelUID" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@189625e[org.openhab.core.thing:3.1.0(id=213)]" for "[interface org.openhab.core.thing.binding.ThingHandler]"
19:56:38.176 [DEBUG] [e.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.binding.ThingHandlerCallback" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@189625e[org.openhab.core.thing:3.1.0(id=213)]" for "[interface org.openhab.core.thing.binding.ThingHandler]"
19:56:38.178 [DEBUG] [e.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.Thing" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@189625e[org.openhab.core.thing:3.1.0(id=213)]" for "[interface org.openhab.core.thing.binding.ThingHandler]"
19:56:38.181 [DEBUG] [e.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.ThingStatusInfo" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@189625e[org.openhab.core.thing:3.1.0(id=213)]" for "[interface org.openhab.core.thing.binding.ThingHandler]"
19:56:38.187 [DEBUG] [internal.common.InvocationHandlerSync] - Already in a safe-call context, executing 'ThingHandler.handleCommand()' directly on 'org.openhab.binding.deconz.internal.handler.LightThingHandler@10830aa'.
19:56:38.688 [DEBUG] [.core.internal.PlainMessageBodyReader] - Received: type=class java.lang.String, genericType=class java.lang.String, annotations=[@io.swagger.v3.oas.annotations.Parameter(schema=@io.swagger.v3.oas.annotations.media.Schema(writeOnly=false, enumAsRef=false, nullable=false, hidden=false, defaultValue="", deprecated=false, minLength=0, pattern="", description="", title="", type="", accessMode=AUTO, required=false, example="", exclusiveMaximum=false, allOf=null, oneOf=null, not=java.lang.Void.class, ref="", allowableValues={}, maxProperties=0, discriminatorMapping={}, exclusiveMinimum=false, multipleOf=0.0, implementation=java.lang.Void.class, format="", anyOf={}, subTypes={}, readOnly=false, minProperties=0, extensions={}, requiredProperties={}, discriminatorProperty="", name="", maximum="", externalDocs=@io.swagger.v3.oas.annotations.ExternalDocumentation(description="", url="", extensions={}), minimum="", maxLength=2147483647), allowReserved=false, hidden=false, in=, deprecated=false, description="valid item command (e.g. ON, OFF, UP, DOWN, REFRESH)", required=true, content={}, example="", ref="", extensions={}, examples={}, array=@io.swagger.v3.oas.annotations.media.ArraySchema(minItems=2147483647, schema=@io.swagger.v3.oas.annotations.media.Schema(writeOnly=false, enumAsRef=false, nullable=false, hidden=false, defaultValue="", deprecated=false, minLength=0, pattern="", description="", title="", type="", accessMode=AUTO, required=false, example="", exclusiveMaximum=false, allOf={}, oneOf={}, not=java.lang.Void.class, ref="", allowableValues={}, maxProperties=0, discriminatorMapping={}, exclusiveMinimum=false, multipleOf=0.0, implementation=java.lang.Void.class, format="", anyOf={}, subTypes={}, readOnly=false, minProperties=0, extensions={}, requiredProperties={}, discriminatorProperty="", name="", maximum="", externalDocs=@io.swagger.v3.oas.annotations.ExternalDocumentation(description="", url="", extensions={}), minimum="", maxLength=2147483647), maxItems=-2147483648, extensions={}, arraySchema=@io.swagger.v3.oas.annotations.media.Schema(writeOnly=false, enumAsRef=false, nullable=false, hidden=false, defaultValue="", deprecated=false, minLength=0, pattern="", description="", title="", type="", accessMode=AUTO, required=false, example="", exclusiveMaximum=false, allOf={}, oneOf={}, not=java.lang.Void.class, ref="", allowableValues={}, maxProperties=0, discriminatorMapping={}, exclusiveMinimum=false, multipleOf=0.0, implementation=java.lang.Void.class, format="", anyOf={}, subTypes={}, readOnly=false, minProperties=0, extensions={}, requiredProperties={}, discriminatorProperty="", name="", maximum="", externalDocs=@io.swagger.v3.oas.annotations.ExternalDocumentation(description="", url="", extensions={}), minimum="", maxLength=2147483647), uniqueItems=false), explode=DEFAULT, allowEmptyValue=false, name="", style=)], mediaType=text/plain, httpHeaders={Accept=[*/*], accept-encoding=[gzip, deflate, br], Accept-Language=[de,en-US;q=0.7,en;q=0.3], Authorization=[Bearer eyJraWQiOm51bGwsImFsZyI6IlJTMjU2In0.eyJpc3MiOiJvcGVuaGFiIiwiYXVkIjoib3BlbmhhYiIsImV4cCI6MTYyNzMyMzk1MSwianRpIjoibnRUaVVmSUkwRUl3ZXlxTXFucURmQSIsImlhdCI6MTYyNzMyMDM1MSwibmJmIjoxNjI3MzIwMjMxLCJzdWIiOiJ0ZWNobmlrIiwiY2xpZW50X2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjI1My4yMzk6ODQ0MyIsInNjb3BlIjoiYWRtaW4iLCJyb2xlIjpbImFkbWluaXN0cmF0b3IiXX0.LiAv7M0Jtqz6jlBgR480qWUgfBpsVT17TL2oSPgU4DR1DIFrtF42vN4OB7UrV8cvqrWDL2p7fuT3dEoKRzW_aXzPfuzYc3JWjVxbJzC9jJDVRnzp-ADWRlIFCA6hCYS-cCi_0d4lCEtXxLFfYStLxzw4ZgXzhVbqDDHAIyORj2_mtifBQHKtFJKRb-9zs4DEgCTEp6dnSHfS-F3kY4XyGDdtqtsSbAqogg6alHsqjCR5r8k2Oud8NCjwz1ZmAC4Vhs2CAZ6a6h5Sh--MtCAUAoUu5esrdW5HH_lEOd5M0h56ik3j9Zd2JfxaO-TUPD-RHTnejliTUh83tP2ayOWdRQ], connection=[keep-alive], Content-Length=[4], content-type=[text/plain], Cookie=[X-OPENHAB-SESSIONID=fcdf7fb1-9327-4c51-8a3c-ffc4206d05c4], Host=[192.168.xxx.xxx:8443], Origin=[https://192.168.xxx.xxx:8443], Referer=[https://192.168.xxx.xxx:8443/settings/pages/layout/Sammelsurium], Sec-Fetch-Dest=[empty], Sec-Fetch-Mode=[cors], Sec-Fetch-Site=[same-origin], User-Agent=[Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0], X-Requested-With=[XMLHttpRequest]}
19:56:38.701 [DEBUG] [tor.internal.metrics.EventCountMetric] - Received event on topic openhab/items/rolladen1TZ3000vd43bbfq_Position/command.
19:56:38.701 [DEBUG] [internal.profiles.ProfileCallbackImpl] - Delegating command 'DOWN' for item 'rolladen1TZ3000vd43bbfq_Position' to handler for channel 'deconz:windowcovering:00212Exxyyzz:rollladen1:position'
19:56:38.703 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'rolladen1TZ3000vd43bbfq_Position' received command DOWN
19:56:38.705 [DEBUG] [e.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.binding.ThingHandler" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@189625e[org.openhab.core.thing:3.1.0(id=213)]" for "[interface org.openhab.core.thing.binding.ThingHandler]"
19:56:38.706 [INFO ] [openhab.event.ItemStatePredictedEvent] - Item 'rolladen1TZ3000vd43bbfq_Position' predicted to become 0
19:56:38.708 [DEBUG] [e.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.ChannelUID" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@189625e[org.openhab.core.thing:3.1.0(id=213)]" for "[interface org.openhab.core.thing.binding.ThingHandler]"
19:56:38.711 [DEBUG] [e.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.binding.ThingHandlerCallback" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@189625e[org.openhab.core.thing:3.1.0(id=213)]" for "[interface org.openhab.core.thing.binding.ThingHandler]"
19:56:38.714 [DEBUG] [e.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.Thing" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@189625e[org.openhab.core.thing:3.1.0(id=213)]" for "[interface org.openhab.core.thing.binding.ThingHandler]"
19:56:38.717 [DEBUG] [e.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.ThingStatusInfo" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@189625e[org.openhab.core.thing:3.1.0(id=213)]" for "[interface org.openhab.core.thing.binding.ThingHandler]"
19:56:38.723 [DEBUG] [internal.common.InvocationHandlerSync] - Already in a safe-call context, executing 'ThingHandler.handleCommand()' directly on 'org.openhab.binding.deconz.internal.handler.LightThingHandler@10830aa'.
19:56:39.457 [DEBUG] [.core.internal.PlainMessageBodyReader] - Received: type=class java.lang.String, genericType=class java.lang.String, annotations=[@io.swagger.v3.oas.annotations.Parameter(schema=@io.swagger.v3.oas.annotations.media.Schema(writeOnly=false, enumAsRef=false, nullable=false, hidden=false, defaultValue="", deprecated=false, minLength=0, pattern="", description="", title="", type="", accessMode=AUTO, required=false, example="", exclusiveMaximum=false, allOf=null, oneOf=null, not=java.lang.Void.class, ref="", allowableValues={}, maxProperties=0, discriminatorMapping={}, exclusiveMinimum=false, multipleOf=0.0, implementation=java.lang.Void.class, format="", anyOf={}, subTypes={}, readOnly=false, minProperties=0, extensions={}, requiredProperties={}, discriminatorProperty="", name="", maximum="", externalDocs=@io.swagger.v3.oas.annotations.ExternalDocumentation(description="", url="", extensions={}), minimum="", maxLength=2147483647), allowReserved=false, hidden=false, in=, deprecated=false, description="valid item command (e.g. ON, OFF, UP, DOWN, REFRESH)", required=true, content={}, example="", ref="", extensions={}, examples={}, array=@io.swagger.v3.oas.annotations.media.ArraySchema(minItems=2147483647, schema=@io.swagger.v3.oas.annotations.media.Schema(writeOnly=false, enumAsRef=false, nullable=false, hidden=false, defaultValue="", deprecated=false, minLength=0, pattern="", description="", title="", type="", accessMode=AUTO, required=false, example="", exclusiveMaximum=false, allOf={}, oneOf={}, not=java.lang.Void.class, ref="", allowableValues={}, maxProperties=0, discriminatorMapping={}, exclusiveMinimum=false, multipleOf=0.0, implementation=java.lang.Void.class, format="", anyOf={}, subTypes={}, readOnly=false, minProperties=0, extensions={}, requiredProperties={}, discriminatorProperty="", name="", maximum="", externalDocs=@io.swagger.v3.oas.annotations.ExternalDocumentation(description="", url="", extensions={}), minimum="", maxLength=2147483647), maxItems=-2147483648, extensions={}, arraySchema=@io.swagger.v3.oas.annotations.media.Schema(writeOnly=false, enumAsRef=false, nullable=false, hidden=false, defaultValue="", deprecated=false, minLength=0, pattern="", description="", title="", type="", accessMode=AUTO, required=false, example="", exclusiveMaximum=false, allOf={}, oneOf={}, not=java.lang.Void.class, ref="", allowableValues={}, maxProperties=0, discriminatorMapping={}, exclusiveMinimum=false, multipleOf=0.0, implementation=java.lang.Void.class, format="", anyOf={}, subTypes={}, readOnly=false, minProperties=0, extensions={}, requiredProperties={}, discriminatorProperty="", name="", maximum="", externalDocs=@io.swagger.v3.oas.annotations.ExternalDocumentation(description="", url="", extensions={}), minimum="", maxLength=2147483647), uniqueItems=false), explode=DEFAULT, allowEmptyValue=false, name="", style=)], mediaType=text/plain, httpHeaders={Accept=[*/*], accept-encoding=[gzip, deflate, br], Accept-Language=[de,en-US;q=0.7,en;q=0.3], Authorization=[Bearer eyJraWQiOm51bGwsImFsZyI6IlJTMjU2In0.eyJpc3MiOiJvcGVuaGFiIiwiYXVkIjoib3BlbmhhYiIsImV4cCI6MTYyNzMyMzk1MSwianRpIjoibnRUaVVmSUkwRUl3ZXlxTXFucURmQSIsImlhdCI6MTYyNzMyMDM1MSwibmJmIjoxNjI3MzIwMjMxLCJzdWIiOiJ0ZWNobmlrIiwiY2xpZW50X2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjI1My4yMzk6ODQ0MyIsInNjb3BlIjoiYWRtaW4iLCJyb2xlIjpbImFkbWluaXN0cmF0b3IiXX0.LiAv7M0Jtqz6jlBgR480qWUgfBpsVT17TL2oSPgU4DR1DIFrtF42vN4OB7UrV8cvqrWDL2p7fuT3dEoKRzW_aXzPfuzYc3JWjVxbJzC9jJDVRnzp-ADWRlIFCA6hCYS-cCi_0d4lCEtXxLFfYStLxzw4ZgXzhVbqDDHAIyORj2_mtifBQHKtFJKRb-9zs4DEgCTEp6dnSHfS-F3kY4XyGDdtqtsSbAqogg6alHsqjCR5r8k2Oud8NCjwz1ZmAC4Vhs2CAZ6a6h5Sh--MtCAUAoUu5esrdW5HH_lEOd5M0h56ik3j9Zd2JfxaO-TUPD-RHTnejliTUh83tP2ayOWdRQ], connection=[keep-alive], Content-Length=[4], content-type=[text/plain], Cookie=[X-OPENHAB-SESSIONID=fcdf7fb1-9327-4c51-8a3c-ffc4206d05c4], Host=[192.168.xxx.xxx:8443], Origin=[https://192.168.xxx.xxx:8443], Referer=[https://192.168.xxx.xxx:8443/settings/pages/layout/Sammelsurium], Sec-Fetch-Dest=[empty], Sec-Fetch-Mode=[cors], Sec-Fetch-Site=[same-origin], User-Agent=[Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0], X-Requested-With=[XMLHttpRequest]}
19:56:39.480 [DEBUG] [tor.internal.metrics.EventCountMetric] - Received event on topic openhab/items/rolladen1TZ3000vd43bbfq_Position/command.
19:56:39.482 [DEBUG] [internal.profiles.ProfileCallbackImpl] - Delegating command 'STOP' for item 'rolladen1TZ3000vd43bbfq_Position' to handler for channel 'deconz:windowcovering:00212Exxyyzz:rollladen1:position'
19:56:39.485 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'rolladen1TZ3000vd43bbfq_Position' received command STOP
19:56:39.488 [DEBUG] [e.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.binding.ThingHandler" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@189625e[org.openhab.core.thing:3.1.0(id=213)]" for "[interface org.openhab.core.thing.binding.ThingHandler]"
19:56:39.493 [DEBUG] [e.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.ChannelUID" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@189625e[org.openhab.core.thing:3.1.0(id=213)]" for "[interface org.openhab.core.thing.binding.ThingHandler]"
19:56:39.498 [DEBUG] [e.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.binding.ThingHandlerCallback" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@189625e[org.openhab.core.thing:3.1.0(id=213)]" for "[interface org.openhab.core.thing.binding.ThingHandler]"
19:56:39.503 [DEBUG] [e.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.Thing" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@189625e[org.openhab.core.thing:3.1.0(id=213)]" for "[interface org.openhab.core.thing.binding.ThingHandler]"
19:56:39.508 [DEBUG] [e.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.ThingStatusInfo" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@189625e[org.openhab.core.thing:3.1.0(id=213)]" for "[interface org.openhab.core.thing.binding.ThingHandler]"
19:56:39.519 [DEBUG] [internal.common.InvocationHandlerSync] - Already in a safe-call context, executing 'ThingHandler.handleCommand()' directly on 'org.openhab.binding.deconz.internal.handler.LightThingHandler@10830aa'.
19:56:39.527 [WARN ] [ternal.handler.DeconzBaseThingHandler] - Sending command STOP to channel deconz:windowcovering:00212Exxyyzz:rollladen1:position failed: 400 - [{"error":{"address":"/lights/4/state","description":"body contains invalid JSON","type":2}}]
19:56:40.063 [WARN ] [internal.netutils.WebSocketConnection] - Websocket$1627312399150-1 trying to re-connect while still disconnecting

I m realy sorry, but you don’t have access to the deconz GUI to check log inside ?
The widget you are using in HA, there is not the http request marked somewhere ?

Because the request is not in this log …

Hello Smanar,

I tried it again: The deconz-gui http-log shows much information but nothing about the rollershutter.

To circumvent the problem, I will use the “oh-slider-card” for the rollershutter which works fine.
oh-slider-card

When I have more experience with openHAB (and debugging) I will try the rollershutter-card again.

Thank you for your help which i appreciate very much.

Hello ^^, If HA make a request to deconz, you need to see it, all is logged, for exemple for me

20:46:47:623 HTTP API PUT /api/3E13EA295E/lights/2/state - 127.0.0.1
20:46:47:627 Text Data: 	{"bri": 251, "on": true}
20:46:47:631 ApiMode: 0
20:46:47:636 [{"success":{"/lights/2/state/on":true}},{"success":{"/lights/2/state/bri":251}}]

You have :

  • the request
  • the body
  • the mode
  • the answer

If you realy don’t see nothing it s because HA don’t make request. But in this situation you will not have the error message. Try to use the error message as filter to locate the debug line.

After I don’t know HA, but on my third app, I have too all requests in and out logged somewhere, it s realy the basic.

Hello Smanar,

OpenHAB 3.1 uses a self-signed certificate, which is created on the first start. I think, this is the reason why I could not see the commands.

To reproduce the error and make the commands visible activated API Basic Authentication in openHAB:
Settings | API-Security | Allow Basic Authentication → ON
With this setting I could sent the commands via the command line.

STOP-command

$ curl -X POST --header "Content-Type: text/plain" --header "Accept: application/json" -d "STOP" "http://192.168.253.239:8080/rest/items/rolladen1TZ3000vd43bbfq_Position" -u zaphod

$ tail -f /var/log/openhab/openhab.log
2021-08-02 18:08:34.530 [DEBUG] [or.internal.metrics.EventCountMetric] - Received event on topic openhab/items/rolladen1TZ3000vd43bbfq_Position/command.
2021-08-02 18:08:34.534 [DEBUG] [nternal.profiles.ProfileCallbackImpl] - Delegating command 'STOP' for item 'rolladen1TZ3000vd43bbfq_Position' to handler for channel 'deconz:windowcovering:00212Exxyyzz:rollladen1:position'
2021-08-02 18:08:34.536 [DEBUG] [.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.binding.ThingHandler" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@24dc5[org.openhab.binding.deconz:3.1.0(id=246)]" for "[class org.openhab.binding.deconz.internal.handler.LightThingHandler]"
2021-08-02 18:08:34.537 [DEBUG] [.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.ThingStatusInfo" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@24dc5[org.openhab.binding.deconz:3.1.0(id=246)]" for "[class org.openhab.binding.deconz.internal.handler.LightThingHandler]"
2021-08-02 18:08:34.539 [DEBUG] [.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.binding.ThingHandlerCallback" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@24dc5[org.openhab.binding.deconz:3.1.0(id=246)]" for "[class org.openhab.binding.deconz.internal.handler.LightThingHandler]"
2021-08-02 18:08:34.540 [DEBUG] [.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.ChannelUID" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@24dc5[org.openhab.binding.deconz:3.1.0(id=246)]" for "[class org.openhab.binding.deconz.internal.handler.LightThingHandler]"
2021-08-02 18:08:34.541 [DEBUG] [.internal.common.CombinedClassLoader] - Loaded class "org.openhab.core.thing.Thing" by classloader "org.eclipse.osgi.internal.loader.EquinoxClassLoader@24dc5[org.openhab.binding.deconz:3.1.0(id=246)]" for "[class org.openhab.binding.deconz.internal.handler.LightThingHandler]"
2021-08-02 18:08:34.545 [DEBUG] [nternal.common.InvocationHandlerSync] - Already in a safe-call context, executing 'ThingHandler.handleCommand()' directly on 'org.openhab.binding.deconz.internal.handler.LightThingHandler@29b14d'.
2021-08-02 18:08:34.545 [TRACE] [internal.handler.DeconzBridgeHandler] - Sending null via http://192.168.xxx.xxx:8090/api/64E40FFC21/lights/4/state
2021-08-02 18:08:34.549 [WARN ] [ernal.handler.DeconzBaseThingHandler] - Sending command STOP to channel deconz:windowcovering:00212Exxyyzz:rollladen1:position failed: 400 - [{"error":{"address":"/lights/4/state","description":"body contains invalid JSON","type":2}}]

UP-command
(I removed some lines from the log)

$ curl -X POST --header "Content-Type: text/plain" --header "Accept: application/json" -d "UP" "http://192.168.253.239:8080/rest/items/rolladen1TZ3000vd43bbfq_Position" -u zaphod
$ tail -f /var/log/openhab/openhab.log
2021-08-02 18:22:18.945 [DEBUG] [or.internal.metrics.EventCountMetric] - Received event on topic openhab/items/rolladen1TZ3000vd43bbfq_Position/command.
2021-08-02 18:22:18.951 [DEBUG] [nternal.profiles.ProfileCallbackImpl] - Delegating command 'UP' for item 'rolladen1TZ3000vd43bbfq_Position' to handler for channel 'deconz:windowcovering:00212Exxyyzz:rollladen1:position'
**2021-08-02 18:22:18.971 [TRACE] [internal.handler.DeconzBridgeHandler] - Sending {"on":false} via http://192.168.xxx.xxx:8090/api/64E40FFC21/lights/4/state**
2021-08-02 18:22:18.977 [TRACE] [ernal.handler.DeconzBaseThingHandler] - Result code=200, body=[{"success":{"/lights/4/state/open":true}}]

DOWN-command
(I removed some lines from the log)

$ curl -X POST --header "Content-Type: text/plain" --header "Accept: application/json" -d "DOWN" "http://192.168.253.239:8080/rest/items/rolladen1TZ3000vd43bbfq_Position" -u zaphod

2021-08-02 18:25:18.220 [DEBUG] [or.internal.metrics.EventCountMetric] - Received event on topic openhab/items/rolladen1TZ3000vd43bbfq_Position/command.
2021-08-02 18:25:18.225 [DEBUG] [nternal.profiles.ProfileCallbackImpl] - Delegating command 'DOWN' for item 'rolladen1TZ3000vd43bbfq_Position' to handler for channel 'deconz:windowcovering:00212Exxyyzz:rollladen1:position'
2021-08-02 18:25:18.238 [TRACE] [internal.handler.DeconzBridgeHandler] - Sending {"on":true} via http://192.168.xxx.xxx:8090/api/64E40FFC21/lights/4/state
2021-08-02 18:25:18.241 [TRACE] [ernal.handler.DeconzBaseThingHandler] - Result code=200, body=[{"success":{"/lights/4/state/open":false}}]

UP is sending {“on”:false}
DOWN is Sending {“on”:true}
STOP is sending NULL - which results in the Warning body contains invalid JSON",“type”:2

Is this the information you needed?

Thank you

Holger

Yep exactly, so the problem is probably from HA , but why ? Why sudently ?

Working command for stop are
http://192.168.xxx.xxx:8090/api/64E40FFC21/lights/4/state

with {“stop”:true} or {“lift”:“stop”} and 2 others but deprecated

https://dresden-elektronik.github.io/deconz-rest-doc/endpoints/lights/#window-covering-parameters

Thank you for your help, Smanar! :smiley:

As this seems to be a HA Problem, I will ask this question in the openHAB forum.

@Zaphod did you find a solution at the openhab side? I’m facing the exact same problem. Would be glad to hear from you :slight_smile:

Hello Touitoui,
unfortunately i did not find a solution for this problem. It is no deconz-problem but i did not yet report this problem in the openHAB forum.

As a workaround i am using the “oh-slider-card” for the rollershutter which has no Stop-Button.
openHAB-slider-card