Commit Graph

357 Commits (291a2d625829d0469020631a6f136607e762ec7e)

Author SHA1 Message Date
Jan Bouwhuis 28ad5b5514
Implement percentage_step and preset_mode is not not speed fix for MQTT fan (#48951) 2021-04-09 16:14:48 -07:00
Erik Montnemery 5e8559e3cc
Validate supported_color_modes for MQTT JSON light (#48836) 2021-04-08 12:40:48 -07:00
Erik Montnemery 9f2fb37e17
Flag brightness support for MQTT RGB lights (#48718) 2021-04-06 12:39:29 +02:00
Erik Montnemery b26779a27a
Add id to automation triggers (#48464) 2021-03-31 14:56:04 +02:00
Erik Montnemery c7584a1f92
Add color_mode support to MQTT JSON light (#47993) 2021-03-31 11:28:45 +02:00
Erik Montnemery 8ad3c65645
Allow MQTT entities to be disabled by default (#48284)
* Allow MQTT entities to be disabled by default

* Tweak
2021-03-30 00:09:14 +02:00
Jan Bouwhuis d8a4cf63f4
Command template support for MQTT fan (#48413)
* Command template support

* Fix typo in abbreviations

* Update homeassistant/components/mqtt/fan.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Fix initialize templates

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-03-29 20:41:51 +02:00
Franck Nijhof ad13a9295e
Merge multiple context managers in tests (#48146) 2021-03-27 09:17:15 +01:00
Jan Bouwhuis 5b17aaf9d5
Percentage and preset mode support for MQTT fan (#47944)
* git push --all origin

* Fix percentage to ordered list conversion

* Tests for mqtt fan and fixes

* Improve tests and error handling base config

* Additional tests

* Tests completed, small fixes

* Allow preset mode and percentages combined

* Remove raise in setup and update tests

* Alignment with fan entity mode

* Fix pylint for len-as-condition

* Remove python binary cache file from PR

* Additional tests on async_turn_on and fix

* Added comments for deprecation of speeds

* Schema checks before init

* Optimize pre schema checks

* Correct schema checks

* Update homeassistant/components/mqtt/abbreviations.py

Comment speeds for mqtt fan are deprecated not needed here

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Update homeassistant/components/mqtt/fan.py

Comment speeds for mqtt fan are deprecated not needed here

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Update homeassistant/components/mqtt/fan.py

Comment speeds for mqtt fan are deprecated not needed here

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Update homeassistant/components/mqtt/fan.py

Comment speeds for mqtt fan are deprecated not needed here

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Update homeassistant/components/mqtt/fan.py

Comment speeds for mqtt fan are deprecated not needed here

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Warnings for exceptions - testing speed_range

* Update homeassistant/components/mqtt/abbreviations.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Update homeassistant/components/mqtt/fan.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Update homeassistant/components/mqtt/fan.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Update homeassistant/components/mqtt/fan.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Update homeassistant/components/mqtt/fan.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Update homeassistant/components/mqtt/fan.py

* Save with black

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-03-26 08:37:47 +01:00
Franck Nijhof 5a2b5fe7c5
Yoda assertion style removed is (#48142) 2021-03-20 13:55:10 +01:00
Franck Nijhof fb849b81b5
Rewrite of not a == b occurances (#48132) 2021-03-20 01:27:04 +01:00
J. Nick Koston c820dd4cb5
Have pylint warn when user visible log messages do not start with capital letter or end with a period (#48064)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-03-19 09:26:36 -05:00
RadekHvizdos 9f4c2f6260
Add suggested_area to MQTT discovery (#47903)
* Add suggested_area to MQTT Discovery

This adds suggested_area to MQTT discovery, so that the discovered devices could be automatically added to the proper area.

* Add abbreviation for MQTT suggested_area

* Remove extra whitespace

* Remove extra whitespace #2

* Added tests for MQTT Dicovery of suggested_area

* Fix test for MQTT suggested_area

* Better tests of MQTT suggested_area

Changes made as per feedback from @emontnemery
2021-03-15 20:02:02 +01:00
Drzony 99d1e3e71d
MQTT Light: Use flash attribute in async_turn_off (#47919) 2021-03-15 11:24:07 +01:00
mtl010957 b162c45e0a
Cover Tilt Position Bugfix (#47682)
* Report tilt position properly when inverting using tilt_max < tilt_min

* Add warning per review comment

* Add test for inverted tilt position configuration

* Separate non-numeric and out of range warnings per review comment

* Fix out of range message and add tests for not numeric and out of range messages
2021-03-11 13:49:10 +01:00
Erik Montnemery 84226da404
Update tests i-o to use async_get() instead of async_get_registry() (#47653) 2021-03-09 14:32:08 +01:00
Ville Skyttä dc880118a4
Lint suppression cleanups (#47248)
* Unused pylint suppression cleanups

* Remove outdated pylint bug references

* Add flake8-noqa config and note to run it every now and then

* Add codes to noqa's

* Unused noqa cleanups
2021-03-02 09:02:04 +01:00
Erik Montnemery 19cd29affa
Fix MQTT trigger where wanted payload may be parsed as an integer (#47162) 2021-02-28 12:19:27 -08:00
Erik Montnemery daf7595ca6
Support value_template in MQTT triggers (#46891)
* Support value_template in MQTT triggers

* Rename value_template to payload_template

* Revert "Rename value_template to payload_template"

This reverts commit 902094eefc.
2021-02-24 20:16:36 +01:00
Shay Levy a5d943b5f1
MQTT cover Bugfixes (#46479)
* MQTT cover Bugfixes

* Remove period
2021-02-15 17:33:42 +01:00
J. Nick Koston c9df42b69a
Add support for pre-filtering events to the event bus (#46371) 2021-02-14 09:42:55 -10:00
Steve Dwyer 5ce49c62b1
Allow MQTT template light floating point transition (#46385)
Allow to use floating point values for the transition time of the MQTT
template light.
2021-02-11 14:57:27 +01:00
Shay Levy 81c88cd639
Enhance MQTT cover platform (#46059)
* Enhance MQTT cover platform

Allow combining of position and state of MQTT cover
Add template and fix optimistic in set tilt position
Add tests

* Add abbreviations

* Add tests and stopped state

* Cleanup & fix range for templates

* Apply suggestions from code review

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-02-08 16:02:12 +01:00
Erik Montnemery 047f16772f
Support templating MQTT triggers (#45614)
* Add support for limited templates (no HASS access)

* Pass variables to automation triggers

* Support templates in MQTT triggers

* Spelling

* Handle trigger referenced by variables

* Raise on unsupported function in limited templates

* Validate MQTT trigger schema in MQTT device trigger

* Add trigger_variables to automation config schema

* Don't print stacktrace when setting up trigger throws

* Make pylint happy

* Add trigger_variables to variables

* Add debug prints, document limited template

* Add tests

* Validate MQTT trigger topic early when possible

* Improve valid_subscribe_topic_template
2021-02-08 10:50:38 +01:00
Erik Montnemery 411c0a9685
Improve MQTT JSON light to allow non-ambiguous states (#45522) 2021-02-02 09:36:00 +01:00
radovanbauer baab9b9a81
Added command templates for the mqtt climate component. (#44976)
This allows integrating with devices which require more complex payloads to be posted when updating their values.

Old feature request: https://github.com/home-assistant/core/issues/11496
There are numerous posts requesting this feature, example: https://community.home-assistant.io/t/need-help-with-value-template-for-mqtt-hvac/73395/68https://community.home-assistant.io/t/need-help-with-value-template-for-mqtt-hvac/73395/68

Command templates have been added for the following:
- fan_mode
- hold
- mode
- swing_mode
- temperature
- temperature high/low

This doesn't add templates for aux, away mode, power since these already accept custom payload_on/off (although they all share the same payload). It should be straightforward to add templates for them as well if needed.
2021-01-26 16:12:33 +01:00
Erik Montnemery f86beed7b0
Subscribe only to valid MQTT discovery topics (#45456) 2021-01-23 08:51:25 -05:00
J. Nick Koston 954ad854fb
Remove the ability for mqtt to set speeds that are not in the speed_list (#45445) 2021-01-23 06:24:06 +01:00
Erik Montnemery d60fc0de38
Add availability_mode "all" and "any" to MQTT entities (#44987)
* Add availability_mode "all" to MQTT entities

* Add availability mode any
2021-01-11 16:04:22 +01:00
Erik Montnemery b85efd343f
Move MQTT entity helpers to separate file (#44838)
* Move MQTT entity helpers to separate file

* Fix imports

* Update MQTT number

* Review comments

* Fix formatting
2021-01-09 00:47:17 +01:00
Diogo Gomes e3c1281616
Add MQTT Number (non optimistic) (#44883)
* non optimistic

* test restored state

* ups

* review

* Ensure the entity is not in optimistic mode

Co-authored-by: Erik Montnemery <erik@montnemery.com>

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-01-08 23:43:14 +01:00
Ville Skyttä 2fb3be50ab
Make DeviceRegistry.async_get_device connections arg optional (#44897)
* Make async_get_device connections Optional, default None

* Remove unnecessary async_get_device connections arg usages

Some of these were using an incorrect collection type, which didn't
cause issues mostly just due to luck.
2021-01-07 13:49:45 +01:00
Erik Montnemery 93ae65d704
Improve MQTT number test coverage (#44870) 2021-01-06 13:27:05 +01:00
Diogo Gomes f18880686c
Add MQTT Number (#44739)
* Initial Commit

* initial commit

* add discovery and tests

* increase coverage

* address review

* catchup with reality
2021-01-06 08:27:46 +01:00
Erik Montnemery 34bd70aee6
Fix race when handling MQTT discovery messages (#44730)
* Fix race when handling MQTT discovery messages

* Lint

* retrigger checks
2021-01-04 12:28:17 +01:00
Franck Nijhof 65cf2fcb6f
Drop asynctest (#44746) 2021-01-01 22:31:56 +01:00
PeteBa 727b1d37b6
Add discovery for MQTT device tracker (#42327) 2020-12-07 13:16:56 +01:00
Philip Allgaier 18736dbebf
Bump voluptuous to 0.12.1 (#44002)
* Bump voluptuous to 0.12.1

* Adjust MQTT climate test to new error msg
2020-12-07 02:49:36 +01:00
Erik Montnemery 5e6f5fca90
Don't send MQTT birth message in tests (#43917) 2020-12-04 04:39:49 +01:00
Kiall Mac Innes 8efa9c5097
Add support for MQTT Scenes (#42639) 2020-12-02 19:42:28 +01:00
Erik Montnemery 8ff10ad3b8
Fix MQTT threading bug (#43667) 2020-11-26 22:33:58 +01:00
Paulus Schoutsen b3be708db6
Add default config if not there (#43321)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2020-11-25 15:10:04 +01:00
Erik Montnemery 52e1282d8c
Make MQTT climate return PRESET_NONE when no preset is set (#43257) 2020-11-16 20:10:55 +01:00
Erik Montnemery 4e49bd0596
Correct handling of existing MQTT subscriptions (#43056) 2020-11-10 21:55:26 +01:00
Erik Montnemery b45fa29077
Force color or white mode exclusivity for MQTT lights (#42887) 2020-11-09 12:51:01 +01:00
Paulus Schoutsen d4efa938dd
Improve mqtt test (#42490) 2020-10-27 23:22:59 +01:00
Paulus Schoutsen 6380ebd1eb
Fix MQTT publish from a script with templates (#42398) 2020-10-26 16:46:26 +01:00
Paulus Schoutsen 5dac3883b0
Stub light profiles (#42232) 2020-10-23 16:28:21 +02:00
Erik Montnemery e203896638
Align MQTT light's default color temperature (#41842) 2020-10-21 15:46:29 +02:00
Tim Werner e5aa5e2c35
rewrite mqtt unittest tests to pytest style (#42122) 2020-10-20 16:35:49 +02:00
Erik Montnemery 343e5d64b8
Add MQTT integration discovery (#41332)
* Add MQTT integration discovery

* Add script/hassfest/mqtt.py

* Unsubscribe if config entry exists

* Add homeassistant/generated/mqtt.py

* Fix bad loop

* Improve tests

* Improve tests

* Apply suggestions from code review

Co-authored-by: Fabian Affolter <mail@fabian-affolter.ch>

* Prevent initiating multiple config flows

Co-authored-by: Fabian Affolter <mail@fabian-affolter.ch>
2020-10-07 18:30:51 +02:00
Erik Montnemery 306ee30574
Enable MQTT discovery by default (#41361) 2020-10-07 14:51:06 +02:00
Franck Nijhof ee914366a8
Add native Python types support to templates (#41227)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2020-10-07 00:05:52 +02:00
Erik Montnemery c777647233
Drop legacy_patchable_time from MQTT tests (#41287) 2020-10-05 21:39:44 +02:00
Erik Montnemery 13dad34019
Reorder MQTT binary sensor tests (#41277) 2020-10-05 19:42:28 +02:00
Erik Montnemery e7f832a82f
Add MQTT tag scanner (#40709) 2020-09-28 22:04:27 +02:00
Franck Nijhof 8837ed35cd
Use direct service calls in tests instead of automation common (#40623)
* Use direct service calls in tests instead of automation common

* Remove automation common test helpers
2020-09-26 19:28:26 +02:00
Erik Montnemery 4d6e694d14
Fix discovery update of MQTT state templates (#39901) 2020-09-10 20:52:23 +02:00
Erik Montnemery 9aba1985c7
Fix MQTT light value template (#39820) 2020-09-08 23:11:42 +02:00
J. Nick Koston 65e53b8251
Support reloading mqtt yaml configuration (#39531) 2020-09-02 20:16:21 -05:00
Erik Montnemery 4c6960ed36
Fix discovery update of MQTT light (#39325) 2020-09-02 10:52:33 +02:00
Franck Nijhof 1c2ebdf307
Upgrade black to 20.8b1 (#39287) 2020-08-27 13:56:20 +02:00
Erik Montnemery 114a7226d6
Wait before sending MQTT birth message (#39120)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2020-08-25 16:42:24 +02:00
Erik Montnemery ee043d8614
Wait for broker to ACK MQTT operations (#39051)
* Wait for broker to ACK MQTT operations

* Deduplicate new code

* Fix tests

* Improve test

* Don't hold PAHO lock when waiting for ACK

* Fix tests

* Add constant for ACK timeout
2020-08-21 17:00:13 +02:00
Phil Bruckner ca9dd0c833
Reorganize trigger code (#38655) 2020-08-17 11:54:56 -05:00
Erik Montnemery 4ed1f8023b
Suppress MQTT discovery updates without changes (#38568) 2020-08-06 10:43:47 +02:00
Erik Montnemery 686e6b8fc3
Add test (#37890) 2020-07-24 12:29:19 +02:00
Erik Montnemery fa0e12ffe8
Use keywords for MQTT birth and will (#38040) 2020-07-21 14:10:34 -07:00
Erik Montnemery 908b72370b
Correct arguments to MQTT will_set (#38036) 2020-07-21 12:36:21 -07:00
J. Nick Koston 910b6c9c2c
Index entity_registry_updated listeners (#37940) 2020-07-17 21:59:18 -07:00
Erik Montnemery fb3049d6a2
Set MQTT sensor to state unavailable when value expires (#36609) 2020-07-08 16:20:19 -07:00
Erik Montnemery b63655057c
Publish birth and will messages by default (#37371)
* Publish birth and will messages by default

* Remove useless copy
2020-07-04 17:49:08 +02:00
Erik Montnemery 4b3ad0a1cd
Support multiple MQTT availability topics (#37418)
* Support multiple MQTT availability topics

* Make availability list and availability_topic exclusive

* Make availability list and availability_topic exclusive

* Add missing abbreviation
2020-07-04 17:48:34 +02:00
Erik Montnemery 9ade1de3d5
Support empty output of MQTT binary_sensor value_template (#37420)
* Support empty output of MQTT binary_sensor value_template

* Strip white space

* Add test

* Add test
2020-07-04 17:48:02 +02:00
J. Nick Koston 89a9634d35
Use eventloop for scheduling (#37184)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2020-06-29 09:39:24 -07:00
Erik Montnemery bb17cbdd83
Drop MQTT broker tls_version parameter (#37033) 2020-06-23 12:12:37 -07:00
Erik Montnemery 4e77969f5e
Drop use of mock_mqtt_component (#37013)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-06-23 10:17:22 -07:00
Erik Montnemery 1b3e5460a9
Remove embedded MQTT broker (#37032) 2020-06-23 09:51:50 -07:00
Erik Montnemery 747490ab34
Support reconfiguring MQTT config entry (#36537) 2020-06-22 17:49:01 -07:00
Erik Montnemery 280f49540e
Drop use of async_mock_mqtt_component (#37011) 2020-06-22 23:59:50 +02:00
Erik Montnemery a2e2c35011
Use pytest for more MQTT tests (#36859)
* Use pytest for more MQTT tests

* Address review comments

* Break out PAHO client mock in separate fixture.

* tweak.
2020-06-22 22:02:29 +02:00
Erik Montnemery 16cf16e418
Update MQTT tests to not create duplicated config entries (#36833) 2020-06-15 15:38:56 -07:00
Paulus Schoutsen c33edbe5bb
Use TestCase.addCleanup (#36560) 2020-06-08 12:26:40 -07:00
Erik Montnemery 35cd6b9abf
Remove unused parameter for MQTT discovery (#36526)
* Remove unused parameter for MQTT discovery

* Fix tests
2020-06-07 19:35:35 +02:00
definitio ad5101c5c0
Set state for MQTT entities to 'unavailable' when no connection to broker (#36479)
* Report 'unavailable' state when not connected

to MQTT broker

* Fix tests

* Rewrite to remove the polling

* Add tests

* Add some fixes
2020-06-07 09:21:16 +02:00
Paulus Schoutsen 276f3afb00
Do async_setup_platform in background (#36244)
Co-authored-by: J. Nick Koston <nick@koston.org>
2020-05-31 22:18:30 -07:00
Erik Montnemery f1af5b71e2
Correct MQTT device trigger reconfiguration with same topic (#36234) 2020-05-28 15:50:23 -07:00
Erik Montnemery 8de863ecf1
Let PAHO MQTT client handle connection to MQTT server (#35983)
* Let PAHO client handle connection to MQTT server
2020-05-26 17:12:22 +02:00
Pieter Goetschalckx 02a36a9b68
Add min_mireds and max_mireds to MQTT Light (#32613)
* Add min_mireds and max_mireds to MQTT Light

* Add abbreviations for min_mireds and max_mireds

* Add tests for min_mireds and max_mireds
2020-05-10 09:34:48 +02:00
Erik Montnemery f1ecac92df
Fail tests if wrapped callbacks or coroutines throw (#35010) 2020-05-06 14:14:57 -07:00
Erik Montnemery f9b420a5a5
Make sure MQTT light brightness is not rounded to 0 (#35207) 2020-05-04 15:54:49 -07:00
Paulus Schoutsen 2af984917e
Use asynctest-mock in most places (#35109)
* Use asynctest-mock in most places

* Fix broken patch in pilight
2020-05-03 11:27:19 -07:00
Erik Montnemery 2b13a8cde4
Include QoS and retain in MQTT debug info (#35011) 2020-05-01 08:41:57 -07:00
Erik Montnemery 82a478e2fb
Fix MQTT debug info for same topic (#34952) 2020-04-30 22:34:44 -07:00
Paulus Schoutsen 76f392476b
Use a future for mock coro (#34989) 2020-04-30 16:31:00 -07:00
Paulus Schoutsen ec47216388
Use built-in test helpers on 3.8 (#34901) 2020-04-30 13:29:50 -07:00
Paulus Schoutsen 454c5d824a
Attempt to fix CI (#34800) 2020-04-28 10:31:22 -07:00
Paulus Schoutsen 0d700f6a63
Fix tests for Python 3.8 (#34672) 2020-04-25 14:32:55 -07:00
Erik Montnemery 4448eb94a1
Only subscribe when MQTT client is connected. (#34557) 2020-04-22 14:38:04 -07:00
Tom d6ab36bf8e
Set mqtt binary_sensor unavailable if expire_after specified (#34259)
* Set self._expired=True if expire_after specified

* Added test_expiration_on_discovery_and_discovery_update_of_binary_sensor to mqtt/test_binary_sensor.py

* Fixed flake8 error

* Fixed isort error
2020-04-22 23:29:49 +02:00