39cc64efce
* Initial support for Hysen heating controller device. Only gets current temperature. * Add switch_to_auto() to put the controller in (pre-programmed) timed mode * Add set_temp() to manually set temperature. Now requires PyCRC (payload needs modbus CRC16) * Remove test script * Get current timer schedule * Get much more data from device * Add PyCRC to install_requires setup.py * Rewrite based on better understanding. Allow setting schedule and changing 'loop mode' * Add set_time function * Support advanced settings and perform CRC check on responses * Explain remaining unknowns for Hyson thermostat The room_temp_adj (or simply 'adj') only applies to the room_temp. It's limited to -5.0..+5.0, but uses a 2 byte data type. This leads to the assumption that external_temp could also use this data type, maybe for showing temperatures below 0 - but I cannot test this currently. Maybe I have to place it near a fridge to confirm. * Fix get_temp and add get_external_temp for Hysen Again: maybe payload[17] also belongs to the external temperature... * remove comment about first 2 bytes and raise error if CRC check on response fails * Remove comment about guessed meaning of unknown Just confirmed, that lowest outside temp is 0. So it seems to only need 1 byte, as room temp does. * add ability to toogle hysen device power Turn display power on/off * Update set_power() to support remote_lock for Hysen Sorry, there was still one thing missing: set/unset remote_lock. I captured again and changed the set_power accordingly. * fix comments |
||
---|---|---|
broadlink | ||
cli | ||
.gitignore | ||
LICENSE | ||
protocol.md | ||
README.md | ||
requirements.txt | ||
setup.py |
Python control for Broadlink RM2 IR controllers
A simple Python API for controlling IR controllers from Broadlink. At present, only RM Pro (referred to as RM2 in the codebase) and A1 sensor platform devices are supported. There is currently no support for the cloud API.
Example use
Setup a new device on your local wireless network:
- Put the device into AP Mode
- Long press the reset button until the blue LED is blinking quickly.
- Long press again until blue LED is blinking slowly.
- Manually connect to the WiFi SSID named BroadlinkProv.
- Run setup() and provide your ssid, network password (if secured), and set the security mode
- Security mode options are (0 = none, 1 = WEP, 2 = WPA1, 3 = WPA2, 4 = WPA1/2)
import broadlink
broadlink.setup('myssid', 'mynetworkpass', 3)
Discover available devices on the local network:
import broadlink
devices = broadlink.discover(timeout=5)
Obtain the authentication key required for further communication:
devices[0].auth()
Enter learning mode:
devices[0].enter_learning()
Obtain an IR or RF packet while in learning mode:
ir_packet = devices[0].check_data()
(This will return None if the device does not have a packet to return)
Send an IR or RF packet:
devices[0].send_data(ir_packet)
Obtain temperature data from an RM2:
devices[0].check_temperature()
Obtain sensor data from an A1:
data = devices[0].check_sensors()
Set power state on a SmartPlug SP2/SP3:
devices[0].set_power(True)
Check power state on a SmartPlug:
state = devices[0].check_power()
Set power state for S1 on a SmartPowerStrip MP1:
devices[0].set_power(1, True)
Check power state on a SmartPowerStrip:
state = devices[0].check_power()