Age | Commit message (Collapse) | Author | Files | Lines |
|
* 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
|
|
* few item in gendevice use `if` instead of `elif`
* passing `devtype` back to device
change `cli/broadlink_discovery` to display proper devtype
|
|
If both Crypto and pyaes are installed 'pyaes' is in sys.modules(), but as it is not imported (see top) it's not available.
Fix for #128
|
|
Default support for python3 in get_energy() for SP2
|
|
Pro PP
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Fixes invalid byte string (b) for padding (#97, #107)
* Change version to 0.5
|
|
|
|
|
|
|
|
|
|
Fixed up to avoid merge conflict with #78
|
|
|
|
Export raw power state for MP1 devices
|
|
|
|
There's a small race condition in the discover() method. If recv() returns
before the socket timeout is reached, but we hit the top of the loop after
the timeout is reached, we'll return None rather than the set of devices.
|
|
allow to specify network interface for discover method
|
|
Make communication thread safe
|
|
|
|
|
|
|
|
Provide raw versions of the sensor data for interpretation by clients
|
|
Ugly but appears to work
|
|
Allow clients to identify what kind of device has been discovered
|
|
|
|
|
|
UDP doesn't guarantee delivery, so reattempt packet transmission if we don't
get a response and timeout if we still don't have anything after (by
default) 10 seconds.
|
|
Updated SmartPlug commands - set_power() and check_power()
|
|
The automatic device type detection was only implemented when discovering
with a timeout. Refactor to do it for the single-device discover() case.
|
|
|
|
|
|
Look at the device ID and figure out what type of device it is, and provide
appropriate classes for each that only support the functionality available
on that device.
|
|
This adds a set_power() call that should work for the SP2 - unsure whether
it will work for the SP3.
|
|
Increment count instead of randomly generating on each send_packet() as per @mjg59's suggestion.
Tested and working as expected.
|
|
Fixes #3 on macOS
|
|
Add support for discovering more than one device on the network, and update
the documentation to describe that.
|
|
Add a check_temperature() function that'll work for both the RM2 and the A1
sensor platform, and a check_sensors() function that returns the full set of
sensor data for the A1 as a dict.
|
|
The timezone should be embedded in the discovery packet, so make a better
attempt to do that.
|
|
|