openhab / openhab-addons

Add-ons for openHAB
https://www.openhab.org/
Eclipse Public License 2.0
1.88k stars 3.58k forks source link

[lutron] Shade UP/DOWN inconsistent between IP and LEAP #9490

Closed morph166955 closed 1 year ago

morph166955 commented 3 years ago

For shades, on IP bridges UP = 0 and DOWN = 100. On LEAP bridges, UP = 100 and DOWN = 0. This causes issues when migrating from IP to LEAP in rules (everything is backwards). These two, IMO, should be consistent to avoid issues. As LEAP is "newer", I would suggest making it align to the IP number scheme that people have been using.

bobadair commented 3 years ago

They are supposed to be the same. I'll take a look at it.

bobadair commented 3 years ago

I just tested this on my RA2 system with shade things going through ipbridge, and verified that 100 is full open and 0 is full closed. This is consistent with what the Lutron Integration Protocol docs say. Are you sure that you don't have a profile or something set up to reverse it?

morph166955 commented 3 years ago

Intersting. Caseta is definitely 100 DOWN / 0 UP for IP.

bobadair commented 3 years ago

That's very strange! I can probably add an option to the shade handler to use the inverse. Do the UP and DOWN commands work as expected?

morph166955 commented 3 years ago

This is all very odd...

Rollershutter Lutron_IPShade "Theater Shade [%.0f]" { channel="lutron:shade:leapbridge1:theatershade:shadelevel" } Rollershutter Lutron_LEAPShade "Theater Shade [%.0f]" { channel="lutron:shade:ipbridge1:theatershade:shadelevel" }

Shade was DOWN to start

2020-12-31 12:46:21.081 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'Lutron_IPShade' received command UP 2020-12-31 12:46:21.082 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Lutron_IPShade' predicted to become UP 2020-12-31 12:46:21.084 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Lutron_IPShade' changed from 0 to 100

Shade did not move

2020-12-31 12:46:37.222 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'Lutron_IPShade' received command 100 2020-12-31 12:46:37.223 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Lutron_IPShade' predicted to become 100

Shade went up

2020-12-31 12:47:15.625 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'Lutron_IPShade' received command DOWN 2020-12-31 12:47:15.626 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Lutron_IPShade' predicted to become DOWN 2020-12-31 12:47:15.628 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Lutron_IPShade' changed from 100 to 0

Shade went down

2020-12-31 12:47:44.188 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'Lutron_IPShade' received command 0 2020-12-31 12:47:44.197 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Lutron_IPShade' predicted to become 0 2020-12-31 12:47:44.211 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Lutron_LEAPShade' changed from 100.00 to 0.00

Shade stayed down

2020-12-31 12:48:17.599 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'Lutron_LEAPShade' received command DOWN 2020-12-31 12:48:17.600 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Lutron_LEAPShade' predicted to become DOWN 2020-12-31 12:48:17.600 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Lutron_LEAPShade' changed from 0.00 to 100

Shade stayed down

2020-12-31 12:48:24.258 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'Lutron_LEAPShade' received command UP 2020-12-31 12:48:24.259 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Lutron_LEAPShade' predicted to become UP 2020-12-31 12:48:24.259 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Lutron_LEAPShade' changed from 100 to 0

Shade went up

morph166955 commented 3 years ago

More debugs/testing:

Shade started in up state

pico down pressed

2020-12-31 13:11:33.949 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Lutron_IPShade' changed from 100 to 0 2020-12-31 13:11:33.952 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Lutron_LEAPShade' changed from 100.00 to 0.00

2020-12-31 13:11:33.778 [DEBUG] [ron.internal.handler.IPBridgeHandler] - Received message ~DEVICE,49,4,3 2020-12-31 13:11:33.778 [DEBUG] [ron.internal.handler.IPBridgeHandler] - No thing configured for integration ID 49 2020-12-31 13:11:33.927 [DEBUG] [ron.internal.handler.IPBridgeHandler] - Received message ~DEVICE,49,4,4 2020-12-31 13:11:33.927 [DEBUG] [ron.internal.handler.IPBridgeHandler] - No thing configured for integration ID 49 2020-12-31 13:11:33.948 [TRACE] [rnal.protocol.leap.LeapMessageParser] - Received message: {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneZoneStatus","StatusCode":"200 OK","Url":"/zone/59/status/level"},"Body":{"ZoneStatus":{"href":"/zone/59/status","Level":0,"Zone":{"href":"/zone/59"},"StatusAccuracy":"Good"}}} 2020-12-31 13:11:33.948 [DEBUG] [rnal.protocol.leap.LeapMessageParser] - Received CommuniqueType: ReadResponse 2020-12-31 13:11:33.948 [TRACE] [rnal.protocol.leap.LeapMessageParser] - MessageBodyType: OneZoneStatus 2020-12-31 13:11:33.948 [TRACE] [n.internal.handler.LeapBridgeHandler] - Zone: 59 level: 0 2020-12-31 13:11:33.948 [TRACE] [n.internal.handler.LeapBridgeHandler] - Zone 59 mapped to device id 78 2020-12-31 13:11:33.948 [TRACE] [lutron.internal.handler.ShadeHandler] - Shade 78 received zone level: 0 2020-12-31 13:11:33.952 [DEBUG] [ron.internal.handler.IPBridgeHandler] - Received message ~OUTPUT,48,1,0.00 2020-12-31 13:11:33.952 [TRACE] [lutron.internal.handler.ShadeHandler] - Shade 48 received zone level: 0.00

pico up pressed

2020-12-31 13:12:19.439 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Lutron_LEAPShade' changed from 0.00 to 100.00 2020-12-31 13:12:19.449 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Lutron_IPShade' changed from 0 to 100 2020-12-31 13:12:19.195 [DEBUG] [ron.internal.handler.IPBridgeHandler] - Received message ~DEVICE,49,2,3 2020-12-31 13:12:19.195 [DEBUG] [ron.internal.handler.IPBridgeHandler] - No thing configured for integration ID 49 2020-12-31 13:12:19.419 [DEBUG] [ron.internal.handler.IPBridgeHandler] - Received message ~DEVICE,49,2,4 2020-12-31 13:12:19.419 [DEBUG] [ron.internal.handler.IPBridgeHandler] - No thing configured for integration ID 49 2020-12-31 13:12:19.438 [DEBUG] [ron.internal.handler.IPBridgeHandler] - Received message ~OUTPUT,48,1,100.00 2020-12-31 13:12:19.438 [TRACE] [lutron.internal.handler.ShadeHandler] - Shade 48 received zone level: 100.00 2020-12-31 13:12:19.448 [TRACE] [rnal.protocol.leap.LeapMessageParser] - Received message: {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneZoneStatus","StatusCode":"200 OK","Url":"/zone/59/status/level"},"Body":{"ZoneStatus":{"href":"/zone/59/status","Level":100,"Zone":{"href":"/zone/59"},"StatusAccuracy":"Good"}}} 2020-12-31 13:12:19.448 [DEBUG] [rnal.protocol.leap.LeapMessageParser] - Received CommuniqueType: ReadResponse 2020-12-31 13:12:19.448 [TRACE] [rnal.protocol.leap.LeapMessageParser] - MessageBodyType: OneZoneStatus 2020-12-31 13:12:19.448 [TRACE] [n.internal.handler.LeapBridgeHandler] - Zone: 59 level: 100 2020-12-31 13:12:19.448 [TRACE] [n.internal.handler.LeapBridgeHandler] - Zone 59 mapped to device id 78 2020-12-31 13:12:19.448 [TRACE] [lutron.internal.handler.ShadeHandler] - Shade 78 received zone level: 100

openhab:send Lutron_IPShade 0

2020-12-31 13:12:47.072 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'Lutron_IPShade' received command 0 2020-12-31 13:12:47.074 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Lutron_IPShade' predicted to become 0 2020-12-31 13:12:47.075 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Lutron_IPShade' changed from 100 to 0 2020-12-31 13:12:47.097 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Lutron_LEAPShade' changed from 100.00 to 0.00

2020-12-31 13:12:47.074 [TRACE] [n.internal.handler.LeapBridgeHandler] - Received request to send Lutron command: #OUTPUT,78,1,0 2020-12-31 13:12:47.074 [TRACE] [n.internal.handler.LeapBridgeHandler] - Sending command {"CommuniqueType": "CreateRequest","Header": {"Url": "/zone/59/commandprocessor"},"Body": {"Command": {"CommandType": "GoToLevel","Parameter": [{"Type": "Level", "Value": 0}]}}} 2020-12-31 13:12:47.096 [DEBUG] [ron.internal.handler.IPBridgeHandler] - Received message ~OUTPUT,48,1,0.00 2020-12-31 13:12:47.096 [TRACE] [lutron.internal.handler.ShadeHandler] - Shade 48 received zone level: 0.00 2020-12-31 13:12:47.109 [TRACE] [rnal.protocol.leap.LeapMessageParser] - Received message: {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneZoneStatus","StatusCode":"200 OK","Url":"/zone/59/status/level"},"Body":{"ZoneStatus":{"href":"/zone/59/status","Level":0,"Zone":{"href":"/zone/59"},"StatusAccuracy":"Good"}}} 2020-12-31 13:12:47.109 [DEBUG] [rnal.protocol.leap.LeapMessageParser] - Received CommuniqueType: ReadResponse 2020-12-31 13:12:47.109 [TRACE] [rnal.protocol.leap.LeapMessageParser] - MessageBodyType: OneZoneStatus 2020-12-31 13:12:47.109 [TRACE] [n.internal.handler.LeapBridgeHandler] - Zone: 59 level: 0 2020-12-31 13:12:47.109 [TRACE] [n.internal.handler.LeapBridgeHandler] - Zone 59 mapped to device id 78 2020-12-31 13:12:47.109 [TRACE] [lutron.internal.handler.ShadeHandler] - Shade 78 received zone level: 0 2020-12-31 13:12:47.113 [TRACE] [rnal.protocol.leap.LeapMessageParser] - Received message: {"CommuniqueType":"CreateResponse","Header":{"MessageBodyType":"OneZoneStatus","StatusCode":"201 Created","Url":"/zone/59/commandprocessor"},"Body":{"ZoneStatus":{"href":"/zone/59/status","Level":0,"Zone":{"href":"/zone/59"}}}} 2020-12-31 13:12:47.113 [DEBUG] [rnal.protocol.leap.LeapMessageParser] - Received CommuniqueType: CreateResponse

openhab:send Lutron_IPShade 100

2020-12-31 13:13:26.755 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'Lutron_IPShade' received command 100 2020-12-31 13:13:26.756 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Lutron_IPShade' predicted to become 100 2020-12-31 13:13:26.757 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Lutron_IPShade' changed from 0 to 100 2020-12-31 13:13:26.787 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Lutron_LEAPShade' changed from 0.00 to 100.00

2020-12-31 13:13:26.758 [TRACE] [n.internal.handler.LeapBridgeHandler] - Received request to send Lutron command: #OUTPUT,78,1,100 2020-12-31 13:13:26.758 [TRACE] [n.internal.handler.LeapBridgeHandler] - Sending command {"CommuniqueType": "CreateRequest","Header": {"Url": "/zone/59/commandprocessor"},"Body": {"Command": {"CommandType": "GoToLevel","Parameter": [{"Type": "Level", "Value": 100}]}}} 2020-12-31 13:13:26.786 [DEBUG] [ron.internal.handler.IPBridgeHandler] - Received message ~OUTPUT,48,1,100.00 2020-12-31 13:13:26.786 [TRACE] [lutron.internal.handler.ShadeHandler] - Shade 48 received zone level: 100.00 2020-12-31 13:13:26.790 [TRACE] [rnal.protocol.leap.LeapMessageParser] - Received message: {"CommuniqueType":"CreateResponse","Header":{"MessageBodyType":"OneZoneStatus","StatusCode":"201 Created","Url":"/zone/59/commandprocessor"},"Body":{"ZoneStatus":{"href":"/zone/59/status","Level":100,"Zone":{"href":"/zone/59"}}}} 2020-12-31 13:13:26.790 [DEBUG] [rnal.protocol.leap.LeapMessageParser] - Received CommuniqueType: CreateResponse 2020-12-31 13:13:26.802 [TRACE] [rnal.protocol.leap.LeapMessageParser] - Received message: {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneZoneStatus","StatusCode":"200 OK","Url":"/zone/59/status/level"},"Body":{"ZoneStatus":{"href":"/zone/59/status","Level":100,"Zone":{"href":"/zone/59"},"StatusAccuracy":"Good"}}} 2020-12-31 13:13:26.802 [DEBUG] [rnal.protocol.leap.LeapMessageParser] - Received CommuniqueType: ReadResponse 2020-12-31 13:13:26.802 [TRACE] [rnal.protocol.leap.LeapMessageParser] - MessageBodyType: OneZoneStatus 2020-12-31 13:13:26.802 [TRACE] [n.internal.handler.LeapBridgeHandler] - Zone: 59 level: 100 2020-12-31 13:13:26.802 [TRACE] [n.internal.handler.LeapBridgeHandler] - Zone 59 mapped to device id 78 2020-12-31 13:13:26.802 [TRACE] [lutron.internal.handler.ShadeHandler] - Shade 78 received zone level: 100

Shade is in up state

openhab:send Lutron_IPShade UP

2020-12-31 13:13:59.607 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'Lutron_IPShade' received command UP 2020-12-31 13:13:59.617 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Lutron_IPShade' predicted to become UP 2020-12-31 13:13:59.618 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Lutron_IPShade' changed from 100 to 0 2020-12-31 13:13:59.620 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Lutron_IPShade' changed from 0 to 100

2020-12-31 13:13:59.619 [TRACE] [n.internal.handler.LeapBridgeHandler] - Received request to send Lutron command: #OUTPUT,78,2 2020-12-31 13:13:59.620 [TRACE] [n.internal.handler.LeapBridgeHandler] - Sending command {"CommuniqueType": "CreateRequest","Header": {"Url": "/zone/59/commandprocessor"},"Body": {"Command": {"CommandType": "Raise"}}} 2020-12-31 13:13:59.636 [TRACE] [rnal.protocol.leap.LeapMessageParser] - Received message: {"CommuniqueType":"CreateResponse","Header":{"StatusCode":"204 NoContent","Url":"/zone/59/commandprocessor"}} 2020-12-31 13:13:59.637 [DEBUG] [rnal.protocol.leap.LeapMessageParser] - Received CommuniqueType: CreateResponse

openhab:send Lutron_IPShade DOWN

2020-12-31 13:14:35.966 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'Lutron_IPShade' received command DOWN 2020-12-31 13:14:35.970 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Lutron_IPShade' predicted to become DOWN 2020-12-31 13:14:35.971 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Lutron_IPShade' changed from 100 to 0 NOTE - MISSING LEAP UPDATE openhab> openhab:status Lutron_LEAPShade 100.00 openhab> openhab:status Lutron_IPShade 0

2020-12-31 13:14:35.971 [TRACE] [n.internal.handler.LeapBridgeHandler] - Received request to send Lutron command: #OUTPUT,78,3 2020-12-31 13:14:35.971 [TRACE] [n.internal.handler.LeapBridgeHandler] - Sending command {"CommuniqueType": "CreateRequest","Header": {"Url": "/zone/59/commandprocessor"},"Body": {"Command": {"CommandType": "Lower"}}} 2020-12-31 13:14:35.990 [TRACE] [rnal.protocol.leap.LeapMessageParser] - Received message: {"CommuniqueType":"CreateResponse","Header":{"StatusCode":"204 NoContent","Url":"/zone/59/commandprocessor"}} 2020-12-31 13:14:35.990 [DEBUG] [rnal.protocol.leap.LeapMessageParser] - Received CommuniqueType: CreateResponse

openhab> openhab:send Lutron_LEAPShade UP

2020-12-31 13:15:52.769 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'Lutron_LEAPShade' received command UP 2020-12-31 13:15:52.771 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Lutron_LEAPShade' predicted to become UP 2020-12-31 13:15:52.771 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Lutron_LEAPShade' changed from 100.00 to 0 NOTE - MISSING IP UPDATE openhab> openhab:status Lutron_LEAPShade 0 openhab> openhab:status Lutron_IPShade 0

2020-12-31 13:15:52.771 [DEBUG] [ron.internal.handler.IPBridgeHandler] - Sending command #OUTPUT,48,2 2020-12-31 13:15:52.771 [TRACE] [ng.lutron.internal.net.TelnetSession] - TelnetSession writeLine called with #OUTPUT,48,2

bobadair commented 3 years ago

Yeah, I've noticed that if you configure the same device on a Caseta hub through both LIP and LEAP bridges bad things can happen. For instance, if you make a change via one protocol, the hub will not always send an update via the other protocol. There isn't much that can be done about that in the binding, since it seems to be a limitation (bug?) of the hub. That's one of the reasons I recommend against configuring any one device through both bridge types at once.

Also, position updates for UP or DOWN commands can be a bit strange. On a RadioRA 2 or HomeWorks system, when you send an UP command to a shade, it will send back a position update when it either hits the end of its travel (100%) or a STOP command is received. The equivalent doesn't always seem to happen with Caseta. With LEAP, it seems to send a position update when STOP is received, but not when the shade hits the end of travel. So the binding attempts to compensate for this by pre-setting shadelevel to 100 when UP is sent, and 0 when DOWN is sent. With LIP, the binding is using the same logic for Caseta as for HomeWorks/RA2, but I don't know if that is correct.

lsiepel commented 1 year ago

This is an older issue that already had some diagnosis. As I don’t own such a device and am no expert to this binding, I wonder if this is still an issue to fix in openHAB?

morph166955 commented 1 year ago

No idea. I lost the lutron gear in the divorce (yes really) so I have no way to test it out.

lsiepel commented 1 year ago

Sorry to hear. I'll set this issue to awaiting feedback, if no one is responding stalebot will close this.

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.