dubocr / homebridge-tahoma

Homebridge plugin for TaHoma, Connexoon, Cozytouch, Energeasy Connect.
Apache License 2.0
133 stars 42 forks source link

Open/Close state reversed on my outdoor Awning #234

Closed Steve3581 closed 3 years ago

Steve3581 commented 3 years ago

Recently the open/close state of my awning is reversed, I have tried removing/re adding the awning but no difference, any idea what I've missed?

iMicknl commented 3 years ago

@dubocr we encounter the same issue in the Home Assistant implementation lately... We haven't been able to figure it out yet, but we gathered some more information regarding device types and firmwares.

bug: reversed state in ha-tahoma

@Steve3581 do you use a TaHoma or Connexoon box? What is the firmware of your box?

dubocr commented 3 years ago

Hi,

Thanks @iMicknl for you help. Hope they will homogenize this state for every covering.

@Steve3581, waiting a fix, you can reverse the behavior :

Globally :

"WindowCovering" : {
 "reverse": true
}

Or by device

"YourDeviceName" : {
 "reverse": true
}
hoefs commented 3 years ago

Hi,

Thanks @iMicknl for you help. Hope they will homogenize this state for every covering.

@Steve3581, waiting a fix, you can reverse the behavior :

Globally :

"WindowCovering" : {
 "reverse": true
}

Or by device

"YourDeviceName" : {
 "reverse": true
}

We mentioned this 5 months ago... I have implemented this fix:

Replaced line 292 with this: (AwningValance is only the small extra curtain at the end of some Awnings)

if(this.device.widget == "PositionableHorizontalAwning") { currentPosition = this.reverse ? (100 - value) : value; } else { currentPosition = this.reverse ? value : (100 - value); }

Can I only change the reverse for my awning and not the other window coverings I have? Can you not implement this for all awnings?

dubocr commented 3 years ago

Hi, Thanks @iMicknl for you help. Hope they will homogenize this state for every covering. @Steve3581, waiting a fix, you can reverse the behavior : Globally :

"WindowCovering" : {
 "reverse": true
}

Or by device

"YourDeviceName" : {
 "reverse": true
}

We mentioned this 5 months ago... I have implemented this fix:

Replaced line 292 with this: (AwningValance is only the small extra curtain at the end of some Awnings)

if(this.device.widget == "PositionableHorizontalAwning") { currentPosition = this.reverse ? (100 - value) : value; } else { currentPosition = this.reverse ? value : (100 - value); }

Can I only change the reverse for my awning and not the other window coverings I have?

Yes as explained in the post your reply on you can apply the reverse by device name

Can you not implement this for all awnings?

The question is on which one should it be applied ?

hoefs commented 3 years ago

Hi, Thanks @iMicknl for you help. Hope they will homogenize this state for every covering. @Steve3581, waiting a fix, you can reverse the behavior : Globally :

"WindowCovering" : {
 "reverse": true
}

Or by device

"YourDeviceName" : {
 "reverse": true
}

We mentioned this 5 months ago... I have implemented this fix: Replaced line 292 with this: (AwningValance is only the small extra curtain at the end of some Awnings) if(this.device.widget == "PositionableHorizontalAwning") { currentPosition = this.reverse ? (100 - value) : value; } else { currentPosition = this.reverse ? value : (100 - value); } Can I only change the reverse for my awning and not the other window coverings I have?

Yes as explained in the post your reply on you can apply the reverse by device name

Can you not implement this for all awnings?

The question is on which one should it be applied ?

I only needed to change it for this part => PositionableHorizontalAwning All the other devices widget use the normal values as before...

dubocr commented 3 years ago

OK, you can do it this way :

"PositionableHorizontalAwning" : {
 "reverse": true
}

This will be clarified in next major release.

hoefs commented 3 years ago

"PositionableHorizontalAwning" : { "reverse": true }

Like this?

         {
            "platform": "Tahoma",
            "name": "Connexoon",
            "user": "xxx",
            "password": "xxx",
            "service": "Connexoon",
            "PositionableHorizontalAwning": {
                "reverse": true
            }
dubocr commented 3 years ago

Yes, but try updating plugin version before

hoefs commented 3 years ago

Yes, but try updating plugin version before

I have updated to latest version in homebridge: From start up log:

[1/26/2021, 4:27:07 PM] [Connexoon] Initializing Tahoma platform...
[1/26/2021, 4:27:07 PM] [Connexoon] Fetch accessories...
[1/26/2021, 4:27:07 PM] [Connexoon] Login Connexoon server...
[1/26/2021, 4:27:07 PM] [Connexoon] Unable to refresh states (not logged in)
[1/26/2021, 4:27:08 PM] [Connexoon] [Box] type: Pod > Pod, protocol: internal
[1/26/2021, 4:27:08 PM] [Connexoon] No definition found for Pod > Pod in mapping.json file
[1/26/2021, 4:27:08 PM] [Connexoon] [IO (13455792)] type: ProtocolGateway > IOStack, protocol: io
[1/26/2021, 4:27:08 PM] [Connexoon] No definition found for ProtocolGateway > IOStack in mapping.json file
[1/26/2021, 4:27:08 PM] [Connexoon] [Lily klein] type: RollerShutter > PositionableRollerShutterWithLowSpeedManagement, protocol: io
[1/26/2021, 4:27:08 PM] [Connexoon] Instanciate Lily klein as WindowCovering
[1/26/2021, 4:27:08 PM] [Connexoon] [Ella] type: RollerShutter > PositionableTiltedRollerShutter, protocol: io
[1/26/2021, 4:27:08 PM] [Connexoon] Instanciate Ella as WindowCovering
[1/26/2021, 4:27:08 PM] [Connexoon] [Lily groot] type: RollerShutter > PositionableRollerShutterWithLowSpeedManagement, protocol: io
[1/26/2021, 4:27:08 PM] [Connexoon] Instanciate Lily groot as WindowCovering
[1/26/2021, 4:27:08 PM] [Connexoon] [Zonnewering] type: Awning > PositionableHorizontalAwning, protocol: io
[1/26/2021, 4:27:08 PM] [Connexoon] Instanciate Zonnewering as WindowCovering**
[1/26/2021, 4:27:08 PM] [Connexoon] [slaapkamer ouders] type: RollerShutter > PositionableRollerShutterWithLowSpeedManagement, protocol: io
[1/26/2021, 4:27:08 PM] [Connexoon] Instanciate slaapkamer ouders as WindowCovering
[1/26/2021, 4:27:08 PM] [Connexoon] [OGP KNX Bridge] type: ProtocolGateway > DynamicBridge, protocol: ogp
[1/26/2021, 4:27:08 PM] [Connexoon] No definition found for ProtocolGateway > DynamicBridge in mapping.json file
[1/26/2021, 4:27:08 PM] [Connexoon] [OGP Siegenia Bridge] type: ProtocolGateway > DynamicBridge, protocol: ogp
[1/26/2021, 4:27:08 PM] [Connexoon] No definition found for ProtocolGateway > DynamicBridge in mapping.json file
[1/26/2021, 4:27:08 PM] [Connexoon] [OGP Intesis Bridge] type: ProtocolGateway > DynamicBridge, protocol: ogp
[1/26/2021, 4:27:08 PM] [Connexoon] No definition found for ProtocolGateway > DynamicBridge in mapping.json file

The awning is closed and shows closed now with this addition to the config file:

 "PositionableHorizontalAwning": {
                "reverse": true

Seems te be fine in homekit. I will evaluate some time

hoefs commented 3 years ago

Yes, but try updating plugin version before

Hi. Small update. Does not seem to be working...

I opened it (showed closing in homekit) and closed it (showed opening)... Now it's closed and homekit shows open

dubocr commented 3 years ago

Can you confirm me that with

"PositionableHorizontalAwning": {
                "reverse": false
}

behavior is reversed compared with "reverse": true ? And could you make a new update and send me starting log to check that config is applied correctly.

hoefs commented 3 years ago

Can you confirm me that with

"PositionableHorizontalAwning": {
                "reverse": false
}

behavior is reversed compared with "reverse": true ? And could you make a new update and send me starting log to check that config is applied correctly.

Hi Romain,

I have updated to the lastest version and restarted homebridge:

Starting log:

[1/27/2021, 9:32:04 AM] [HB Supervisor] Restarting Homebridge...
[1/27/2021, 9:32:04 AM] [HB Supervisor] Starting Homebridge with extra flags: -P /homebridge/node_modules
[1/27/2021, 9:32:05 AM] [HB Supervisor] Started Homebridge v1.2.5 with PID: 7257
[1/27/2021, 9:32:07 AM] Loaded config.json with 1 accessories and 7 platforms.
[1/27/2021, 9:32:07 AM] ---
[1/27/2021, 9:32:08 AM] Plugin /homebridge/node_modules/homebridge-lib package.json does not contain the keyword 'homebridge-plugin'.
[1/27/2021, 9:32:09 AM] Loaded plugin: homebridge-camera-ffmpeg@3.0.3
[1/27/2021, 9:32:09 AM] Registering platform 'homebridge-camera-ffmpeg.Camera-ffmpeg'
[1/27/2021, 9:32:09 AM] ---
[1/27/2021, 9:32:09 AM] Loaded plugin: homebridge-enphase-envoy@3.3.15
[1/27/2021, 9:32:09 AM] Registering platform 'homebridge-enphase-envoy.enphaseEnvoy'
[1/27/2021, 9:32:09 AM] ---
[1/27/2021, 9:32:09 AM] Loaded plugin: homebridge-nut@1.0.14
[1/27/2021, 9:32:09 AM] Plugin 'homebridge-nut' tried to register with an incorrect plugin identifier: 'homebridge-nut-accessory'. Please report this to the developer!
[1/27/2021, 9:32:09 AM] Registering accessory 'homebridge-nut.NutAccessory'
[1/27/2021, 9:32:09 AM] Registering platform 'homebridge-nut.Nut'
[1/27/2021, 9:32:09 AM] ---
[1/27/2021, 9:32:10 AM] Loaded plugin: homebridge-tahoma@0.3.62
homebridge-tahoma API version: 2.6
[1/27/2021, 9:32:10 AM] Registering platform 'homebridge-tahoma.Tahoma'
[1/27/2021, 9:32:10 AM] ---
[1/27/2021, 9:32:11 AM] Loaded plugin: homebridge-unifi-occupancy-sensor@1.0.0
[1/27/2021, 9:32:11 AM] Registering accessory 'homebridge-unifi-occupancy-sensor.UniFi Occupancy Sensor'
[1/27/2021, 9:32:11 AM] ---
[1/27/2021, 9:32:11 AM] Loaded plugin: homebridge-verisure@1.12.1
[1/27/2021, 9:32:11 AM] Registering platform 'homebridge-verisure.verisure'
[1/27/2021, 9:32:11 AM] ---
[1/27/2021, 9:32:11 AM] Loaded plugin: homebridge-zp@1.1.5
[1/27/2021, 9:32:12 AM] Registering platform 'homebridge-zp.Lib'
[1/27/2021, 9:32:12 AM] Registering platform 'homebridge-zp.ZP'
[1/27/2021, 9:32:12 AM] Registering platform 'homebridge-zp.ZPS1'
[1/27/2021, 9:32:12 AM] ---
[1/27/2021, 9:32:12 AM] Loaded plugin: homebridge-config-ui-x@4.36.0
[1/27/2021, 9:32:12 AM] Registering platform 'homebridge-config-ui-x.config'
[1/27/2021, 9:32:12 AM] ---
[1/27/2021, 9:32:12 AM] Loading 7 platforms...
[1/27/2021, 9:32:12 AM] [Config] Initializing config platform...
[1/27/2021, 9:32:12 AM] [Config] Running in Service Mode
[1/27/2021, 9:32:12 AM] [Verisure] Initializing verisure platform...
[1/27/2021, 9:32:12 AM] [ZP] Initializing ZP platform...
[1/27/2021, 9:32:12 AM] [ZP] homebridge-zp v1.1.5, node v14.15.4, homebridge v1.2.5, homebridge-lib v5.0.5
[1/27/2021, 9:32:12 AM] [Connexoon] Initializing Tahoma platform...
[1/27/2021, 9:32:12 AM] [Connexoon] Fetch accessories...
[1/27/2021, 9:32:12 AM] [Connexoon] Login Connexoon server...
[1/27/2021, 9:32:13 AM] [UPS] Initializing Nut platform...
[1/27/2021, 9:32:13 AM] [UPS] Starting Nut Platform on 192.168.1.10:3493. Polling (seconds): 60
[1/27/2021, 9:32:13 AM] [Connexoon] Unable to refresh states (not logged in)
[1/27/2021, 9:32:14 AM] [UPS] Received Nut accessory #0 ups (Description unavailable) from the UPS platform.
[1/27/2021, 9:32:14 AM] Initializing platform accessory 'Description Unavailable'...
[1/27/2021, 9:32:14 AM] [Camera FFmpeg] Initializing Camera-ffmpeg platform...
[1/27/2021, 9:32:14 AM] [enphaseEnvoy] Initializing enphaseEnvoy platform...
[1/27/2021, 9:32:14 AM] Loading 1 accessories...
[1/27/2021, 9:32:14 AM] [Occupancy Sensor] Initializing UniFi Occupancy Sensor accessory...
[1/27/2021, 9:32:14 AM] [ZP] restored 2 accessories from cache
[1/27/2021, 9:32:14 AM] [Camera FFmpeg] [Woonkamer] Configuring unbridged accessory...
[1/27/2021, 9:32:15 AM] [Camera FFmpeg] [Garage] Configuring unbridged accessory...
[1/27/2021, 9:32:15 AM] Woonkamer D67E is running on port 47221.
[1/27/2021, 9:32:15 AM] Please add [Woonkamer D67E] manually in Home app. Setup Code: 031-45-154
[1/27/2021, 9:32:15 AM] Garage 7F73 is running on port 47849.
[1/27/2021, 9:32:15 AM] Please add [Garage 7F73] manually in Home app. Setup Code: 031-45-154
[1/27/2021, 9:32:15 AM] Envoy-S 9170 is running on port 57421.
[1/27/2021, 9:32:15 AM] Please add [Envoy-S 9170] manually in Home app. Setup Code: 031-45-154
[1/27/2021, 9:32:15 AM] [Connexoon] [Box] type: Pod > Pod, protocol: internal
[1/27/2021, 9:32:15 AM] [Connexoon] No definition found for Pod > Pod in mapping.json file
[1/27/2021, 9:32:15 AM] [Connexoon] [IO (13455792)] type: ProtocolGateway > IOStack, protocol: io
[1/27/2021, 9:32:15 AM] [Connexoon] No definition found for ProtocolGateway > IOStack in mapping.json file
[1/27/2021, 9:32:15 AM] [Connexoon] [Lily klein] type: RollerShutter > PositionableRollerShutterWithLowSpeedManagement, protocol: io
[1/27/2021, 9:32:15 AM] [Connexoon] Instanciate Lily klein as WindowCovering with config {}
[1/27/2021, 9:32:15 AM] [Connexoon] [Ella] type: RollerShutter > PositionableTiltedRollerShutter, protocol: io
[1/27/2021, 9:32:15 AM] [Connexoon] Instanciate Ella as WindowCovering with config {}
[1/27/2021, 9:32:15 AM] [Connexoon] [Lily groot] type: RollerShutter > PositionableRollerShutterWithLowSpeedManagement, protocol: io
[1/27/2021, 9:32:15 AM] [Connexoon] Instanciate Lily groot as WindowCovering with config {}
[1/27/2021, 9:32:15 AM] [Connexoon] [Zonnewering] type: Awning > PositionableHorizontalAwning, protocol: io
[1/27/2021, 9:32:15 AM] [Connexoon] Instanciate Zonnewering as WindowCovering with config {"reverse":true}
[1/27/2021, 9:32:15 AM] [Connexoon] [slaapkamer ouders] type: RollerShutter > PositionableRollerShutterWithLowSpeedManagement, protocol: io
[1/27/2021, 9:32:15 AM] [Connexoon] Instanciate slaapkamer ouders as WindowCovering with config {}
[1/27/2021, 9:32:15 AM] [Connexoon] [OGP KNX Bridge] type: ProtocolGateway > DynamicBridge, protocol: ogp
[1/27/2021, 9:32:15 AM] [Connexoon] No definition found for ProtocolGateway > DynamicBridge in mapping.json file
[1/27/2021, 9:32:15 AM] [Connexoon] [OGP Siegenia Bridge] type: ProtocolGateway > DynamicBridge, protocol: ogp
[1/27/2021, 9:32:15 AM] [Connexoon] No definition found for ProtocolGateway > DynamicBridge in mapping.json file
[1/27/2021, 9:32:15 AM] [Connexoon] [OGP Intesis Bridge] type: ProtocolGateway > DynamicBridge, protocol: ogp
[1/27/2021, 9:32:15 AM] [Connexoon] No definition found for ProtocolGateway > DynamicBridge in mapping.json file
[1/27/2021, 9:32:15 AM] Initializing platform accessory 'slaapkamer ouders'...
[1/27/2021, 9:32:15 AM] Initializing platform accessory 'Zonnewering'...
[1/27/2021, 9:32:15 AM] Initializing platform accessory 'Lily groot'...
[1/27/2021, 9:32:15 AM] Initializing platform accessory 'Ella'...
[1/27/2021, 9:32:15 AM] Initializing platform accessory 'Lily klein'...

I have an automatic closure for my awning ([Connexoon] [Zonnewering] type: Awning > PositionableHorizontalAwning, protocol: io) everyday at 21h00. With my fix (in the code line 292) this worked better. With your latest updates, my awning opens at 21h00... My 1 line change fixed all the strange behaviour. Closing = closing & openinig is opening. It showed closed in homekit etc... The strange thing is that is shows closed now in homekit, but behaviour is reversed

//EDIT = behaviour is reversed because "PositionableHorizontalAwning": {"reverse": false} was stil in the config

hoefs commented 3 years ago

Can you confirm me that with

"PositionableHorizontalAwning": {
                "reverse": false
}

behavior is reversed compared with "reverse": true ? And could you make a new update and send me starting log to check that config is applied correctly.

I have now changed this:

"PositionableHorizontalAwning": {
                "reverse": false
}

And when I close it in homekit:

[1/27/2021, 9:56:09 AM] [Connexoon] [Zonnewering] setDeployment COMPLETED
[1/27/2021, 9:56:13 AM] [Connexoon] [Zonnewering] setDeployment[0]
[1/27/2021, 9:56:13 AM] [Connexoon] undefined
[1/27/2021, 9:56:13 AM] [Connexoon] Listener registered 430eb6e2-ac10-3401-7548-14e5a8640ad2
[1/27/2021, 9:56:19 AM] [Connexoon] [Zonnewering] setDeployment COMPLETED

Now it seems the behaviour is fixed. Closing = closing and opening = opening

//EDIT: We seem to be back at default and correct behaviour for opening and closing. Only the closure state after polling is reversed.

hoefs commented 3 years ago

Can you confirm me that with

"PositionableHorizontalAwning": {
                "reverse": false
}

behavior is reversed compared with "reverse": true ? And could you make a new update and send me starting log to check that config is applied correctly.

Now I have removed this and restarted homebridge:

"PositionableHorizontalAwning": {
                "reverse": false
}

When I open homekit the awning shows as open, although it is closed. When I open it 5% and close it again. The status shows closed (correct).

My idea is that we are back at the original problem. It will show closed until it polls again and it will show open... Reversing the behaviour is not good. Only closure state needs to be reversed as in my fix from couple months ago:

Line 292 in WindowCoverings.js: Original:

case 'core:ClosureState':
                if(value == 99) value = 100; // Workaround for io:RollerShutterVeluxIOComponent remains 1% opened
                currentPosition = this.reverse ? value : (100 - value);
                targetPosition = currentPosition;
            break;

Change:

case 'core:ClosureState':
                if(value == 99) value = 100; // Workaround for io:RollerShutterVeluxIOComponent remains 1% opened
                if(this.device.widget == "PositionableHorizontalAwning") {
        currentPosition = this.reverse ? (100 - value) : value;
        } else {
        currentPosition = this.reverse ? value : (100 - value);
        }
                targetPosition = currentPosition;
            break;

//EDIT: verified: when changing line 292 in WindowCovering.js (reversing only closure state) everything is as it should again...

dubocr commented 3 years ago

Oh, you have a closure state on this Awning ?!! That's what's wrong.

Can you please log at https://dev.duboc.pro/tahoma and give me the last 4 digit of your bridge number (or SETUP-XXXX-XXXX-XXXX displayed after login https://dev.duboc.pro/tahoma). I think core:ClosureState interfers with core:DeploymentState

Thanks

hoefs commented 3 years ago

Oh, you have a closure state on this Awning ?!! That's what's wrong.

Can you please log at https://dev.duboc.pro/tahoma and give me the last 4 digit of your bridge number (or SETUP-XXXX-XXXX-XXXX displayed after login https://dev.duboc.pro/tahoma). I think core:ClosureState interfers with core:DeploymentState

Thanks

SETUP-XXXX-XXXX-6951

States Zonnewering io://XXXX-XXXX-6951/XXXXXXXX
core:DeploymentState 0
core:DiscreteRSSILevelState (good,low,normal,verylow) normal
core:Memorized1PositionState 66
core:MovingState (false,true)
core:NameState SUNEA io
core:OpenClosedState (closed,open) closed
core:PriorityLockTimerState 0
core:RSSILevelState 50
core:SecuredPositionState
core:StatusState (available,unavailable) available
core:TargetClosureState 0
io:PriorityLockLevelState (comfortLevel1,comfortLevel2,comfortLevel3,comfortLevel4,environmentProtection,humanProtection,userLevel1,userLevel2)
io:PriorityLockOriginatorState (LSC,SAAC,SFC,UPS,externalGateway,localUser,myself,rain,security,temperature,timer,user,wind)

Why is it fixed with my small change?

dubocr commented 3 years ago

If fact it's because of TargetClosureState I think. Could you please :

Thank you.

hoefs commented 3 years ago

If fact it's because of TargetClosureState I think. Could you please :

  • Update the plugin to latest release.
  • Open your blind, wait end of movement and go to https://dev.duboc.pro/tahoma and give me both core:DeploymentState and core:TargetClosureState
  • Close your blind, wait end of movement and refresh https://dev.duboc.pro/tahoma then give me both parameters.

Thank you.

Ater update to lastest = homebridge-tahoma v0.3.63

Awning open

Awning closed

After this update, when I restart the homebridge service, both my Awning and Velux don't know if they are opened of closed. Before the update, only the Awning showed open instead of closed. Now they both have a spinner...

Awning show close in your tool:

1 Awning > PositionableHorizontalAwning
Devices click on a device to display current states
Zonnewering

States Zonnewering io://0803-2123-6951/4100875
core:DeploymentState 0
core:DiscreteRSSILevelState (good,low,normal,verylow) normal
core:Memorized1PositionState 66
core:MovingState (false,true)
core:NameState SUNEA io
core:OpenClosedState (closed,open) closed
core:PriorityLockTimerState 0
core:RSSILevelState 50
core:SecuredPositionState
core:StatusState (available,unavailable) available
core:TargetClosureState 0
io:PriorityLockLevelState (comfortLevel1,comfortLevel2,comfortLevel3,comfortLevel4,environmentProtection,humanProtection,userLevel1,userLevel2)
io:PriorityLockOriginatorState (LSC,SAAC,SFC,UPS,externalGateway,localUser,myself,rain,security,temperature,timer,user,wind)

Velux shows open in your tool:

1 RollerShutter > PositionableTiltedRollerShutter
Devices click on a device to display current states
Ella

States Ella io://0803-2123-6951/16303989
core:ClosureState 0
core:DiscreteRSSILevelState (good,low,normal,verylow) normal
core:Memorized1PositionState 0
core:NameState Shutter
core:OpenClosedState (closed,open) open
core:PriorityLockTimerState 0
core:RSSILevelState 78
core:SecuredPositionState
core:StatusState (available,unavailable) available
io:PriorityLockLevelState (comfortLevel1,comfortLevel2,comfortLevel3,comfortLevel4,environmentProtection,humanProtection,userLevel1,userLevel2)
io:PriorityLockOriginatorState (LSC,SAAC,SFC,UPS,externalGateway,localUser,myself,rain,security,temperature,timer,user,wind)

Your last update in fact breaks that start up for my Velux and my Awning. This is your new code:

onStateUpdate(name, value) {
        var currentPosition = null, targetPosition = null, currentAngle = null, targetAngle = null;
        switch(name) {
            case 'core:DeploymentState':
                currentPosition = this.reverse ? (100 - value) : value;
            break;

            case 'core:TargetClosureState':
                targetPosition = this.reverse ? value : (100 - value);
            break;

            case 'core:ClosureState':
                if(value == 99) value = 100; // Workaround for io:RollerShutterVeluxIOComponent remains 1% opened
                currentPosition = this.reverse ? value : (100 - value);
            break;

And this was the code that was working with me (with all 5 devices: 1x PositionableHorizontalAwning, 1x PositionableTiltedRollerShutter and 3x PositionableRollerShutterWithLowSpeedManagement):

  onStateUpdate(name, value) {
        var currentPosition = null, targetPosition = null, currentAngle = null, targetAngle = null;
        switch(name) {
            case 'core:DeploymentState':
                currentPosition = this.reverse ? (100 - value) : value;
                targetPosition = currentPosition;
            break;

            case 'core:TargetClosureState':
            case 'core:ClosureState':
                if(value == 99) value = 100; // Workaround for io:RollerShutterVeluxIOComponent remains 1% opened
                if(this.device.widget == "PositionableHorizontalAwning") {
        currentPosition = this.reverse ? (100 - value) : value;
        } else {
        currentPosition = this.reverse ? value : (100 - value);
        }
                targetPosition = currentPosition;
            break;

Screenshot is after restarting homebridge.

IMG_0905

I have edited the WindowCovering.js to match the old adapted code starting line 281:

 onStateUpdate(name, value) {
        var currentPosition = null, targetPosition = null, currentAngle = null, targetAngle = null;
        switch(name) {
            case 'core:DeploymentState':
                currentPosition = this.reverse ? (100 - value) : value;
                targetPosition = currentPosition;
            break;

            case 'core:TargetClosureState':
            case 'core:ClosureState':
                if(value == 99) value = 100; // Workaround for io:RollerShutterVeluxIOComponent remains 1% opened
                if(this.device.widget == "PositionableHorizontalAwning") {
        currentPosition = this.reverse ? (100 - value) : value;
        } else {
        currentPosition = this.reverse ? value : (100 - value);
        }
                targetPosition = currentPosition;
            break;

After homebridge restart my 5 devices show correct status again. Awning = closed and shows as closed (no spinner). Velux is open and shows as open (no spinner)

dubocr commented 3 years ago

Thank you for your feedback. I just deploy a new version, it should fix both issues. Can you check and confirm me.

Thanks

hoefs commented 3 years ago

Thank you for your feedback. I just deploy a new version, it should fix both issues. Can you check and confirm me.

Thanks

Yes!!! Seems to be fixed now! Thanks for your effort!!!!! Much appreciated

iMicknl commented 3 years ago

Thank you for your feedback. I just deploy a new version, it should fix both issues. Can you check and confirm me.

Thanks

Where can I find the changes? I can't find the PR / commit. I would like to see if I can utilize this for the HA version as well.

woutertroost commented 3 years ago

I'm very new at this, so please be gentle :) I still have the same experience:

dubocr commented 3 years ago

Hi,

Please use the reverse option in config until the next major release which must fix all reversed issues.

...
"PergolaName": { "reverse": true }
...

Thank you for your patience.

dubocr commented 3 years ago

Hi,

Could you please upgrade to 2.x.x release, remove any "reverse" settings then give feedback about remaining issues.

Thanks

iMicknl commented 3 years ago

@dubocr which change did you make? On the Home Assistant integration we still face this issue a lot.

Should I have a look at the 2.0.0 source for the solution?

woutertroost commented 3 years ago

Upgraded and removed the "reverse" part. Works like a charm so far. Thanks!

dubocr commented 3 years ago

@dubocr which change did you make? On the Home Assistant integration we still face this issue a lot.

Should I have a look at the 2.0.0 source for the solution?

You could find code in mappers/Awning. Not sure it fix every Awning but what I see is that core:TargetClosureState seems to be reversed than for RollerShutter. And other Awning only have core:ClosureState that seems to be treated like core:DeploymentState (to be confirmed) For (some ?) Awning : core:TargetClosureState = core:DeploymentState

as for RollerShutter : core:TargetClosureState = core:ClosureState.