Hi, I've been working on getting TDBU (Top Down Bottom Up) shades working with this library and found two things:
Bug fix
TDBU shades return None for mp (combined position), causing a TypeError crash. Change:
"closed_percent": int(roller.get("mp", 100)),
to:
"closed_percent": int(roller.get("mp") or 100),
Feature discovery
TDBU shades expose mp1 (bottom rail) and mp2 (top rail) positions separately, and accept movePercent1 and movePercent2 commands to control each rail independently. Adding move_to1() and move_to2() methods to the Roller class enables full dual rail control.
I've also modified the custom component's cover.py to create two entities per TDBU shade. The updated file is here:
https://github.com/bls0n/tdbu-shade-card/blob/main/backend/cover.py
Full documentation and a custom Lovelace card for visual dual rail control:
https://github.com/bls0n/tdbu-shade-card
Happy to submit a PR if helpful.
Hub: Rollease Acmeda Pulse v2, firmware 1.3.0
Shade type: Top Down Bottom Up, T13/T14 motor
Hi, I've been working on getting TDBU (Top Down Bottom Up) shades working with this library and found two things:
Bug fix
TDBU shades return None for mp (combined position), causing a TypeError crash. Change:
"closed_percent": int(roller.get("mp", 100)),
to:
"closed_percent": int(roller.get("mp") or 100),
Feature discovery
TDBU shades expose mp1 (bottom rail) and mp2 (top rail) positions separately, and accept movePercent1 and movePercent2 commands to control each rail independently. Adding move_to1() and move_to2() methods to the Roller class enables full dual rail control.
I've also modified the custom component's cover.py to create two entities per TDBU shade. The updated file is here:
https://github.com/bls0n/tdbu-shade-card/blob/main/backend/cover.py
Full documentation and a custom Lovelace card for visual dual rail control:
https://github.com/bls0n/tdbu-shade-card
Happy to submit a PR if helpful.
Hub: Rollease Acmeda Pulse v2, firmware 1.3.0
Shade type: Top Down Bottom Up, T13/T14 motor