Skip to content

Commit

Permalink
Merge branch 'main' into woox_r7246
Browse files Browse the repository at this point in the history
  • Loading branch information
make-all authored Jan 6, 2025
2 parents e04b8be + 349197e commit 9240b87
Show file tree
Hide file tree
Showing 642 changed files with 2,320 additions and 810 deletions.
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ body:
value: |
This form is for reporting bugs with the integration or existing devices. Bug reports should be detailed **with log messages or device diagnostics** to help developers determine what is going wrong.
**If you are reporting a deprecation message from the log, please check that the message is for an HA deprecation (telling you to report the issue here), and that there is not already [a bug](https://github.com/make-all/tuya-local/issues?q=is%3Aissue+is%3Aopen+label%3Amaintenance) for the issue.** Most likely the deprecation is new in the latest HA release, and will not be "fixed" in the integration until late in the month or the next month, as fixes generally are not backwards compatible with older HA versions. Other deprecation messages can be aimed at you, the end user, to prompt you to update automations etc. If the message is telling you an entity is deprecated, then you can disable the entity in Settings / Devices once you have adapted to use the replacement.
If you have a question, or are unsure if what you observe is really a bug, consider using [Discussions](https://github.com/make-all/tuya-local/discussions) instead.
If you are reporting an unsupported device, please use the **New Device** reporting template instead, which will guide you on the information required to make sure your request is not put into the "too hard" pile.
Expand Down
5 changes: 4 additions & 1 deletion ACKNOWLEDGEMENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,7 @@ Further device support has been made with the assistance of users. Please consid
- [supersjimmie](https://github.com/supersjimmie) for assisting with support for A60 RGBWW lightbulbs.
- [b1be](https://github.com/b1be) for contributing support for AlecoAir D25 dehumidifiers.
- [jesuslobo](https://github.com/jesuslobo) for contributing support for Eightree ET43 powerstrips.
- [stquinn](https://github.com/stquinn) for contributing support for Ultenic T10 vacuum cleaners.
- [stquinn](https://github.com/stquinn) for contributing support for Ultenic T10 vacuum cleaner and Cecotec ReadyWarm 8400 fan heater.
- [palfrey](https://github.com/palfrey) for contributing improvements to shutdown handling.
- [dvpereira](https://github.com/dvpereira) for contributing support for Intelbras IFR7000 locks.s
- [jcastang](https://github.com/jcastang) for contributing support for Dcenta dual clamp meters.
Expand Down Expand Up @@ -793,3 +793,6 @@ Further device support has been made with the assistance of users. Please consid
- [merlin051](https://github.com/merlin051) for assisting with support for Mayborn GroClock Connect.
- [Sk1nnyDoc](https://github.com/Sk1nnyDoc) for assisting with support for PowerAsia RGB 6-inch recessed lighting.
- [Fuechslein](https://github.com/Fuechslein) for contributing support for a second version of Petoneer Fresco Hydrate Ultra.
- [stevanov](https://github.com/stevanov) for assisting with support for Etna VW644MC dishwasher.
- [kmavrov](https://github.com/kmavrov) for assisting with support for Scheeair Nova 100 ventilation fan.
- [HomeAssistant9121](https://github.com/HomeAssistant9121) for assisting with support for Hysen HY101RF thermostat.
4 changes: 4 additions & 0 deletions DEVICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
- BVF CP1 heater
- Caldo Up T fan heater
- Calex Smart Convector heater
- Cecotec ReadyWarm 8400 fan heater
- Cleverio AR10/AR20 panel heaters
- Create Warm Towel Advance bathroom heater
- Cronos GPH-D-DA heater
Expand Down Expand Up @@ -197,6 +198,7 @@
- Hysen HY02TP thermostat
- Hysen HY08ACF thermostat
- Hysen HY08WE-2 thermostat
- Hysen HY101RF thermostat
- Inkbird IPT-2CH v2.0 reptile thermostat
- Inkbird ITC306A thermostat smartplug
- Inkbird ITC308 thermostat smartplug
Expand Down Expand Up @@ -280,6 +282,7 @@
- Princess DC pedestal fan
- Reiga ceiling fans with and without light
- Royal Clima RCB 150 ventilation system
- Scheeair Nova 100 ventilation fan
- Skyfan DC fan
- Skyfan DC fan with light
- Smart Mist3 TX-1602MF (ZJ-1522A-WiFi)
Expand Down Expand Up @@ -409,6 +412,7 @@
- Ciarra CBCS4850 range hood
- Casdon TD Pro 2 oven
- Cecofry 5500 Connected air fryer
- Etna VW644MC dishwasher
- Inkbird iBBQ-4BW cooking probe thermometer
- Inkbird iBBQ-4T cooking probe thermometer (separate and combined measurement variants)
- Inkbird IBS-M1S temperature probe hub
Expand Down
37 changes: 25 additions & 12 deletions custom_components/tuya_local/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -333,11 +333,16 @@ async def async_receive(self):

if poll:
if "Error" in poll:
_LOGGER.warning(
"%s error reading: %s", self.name, poll["Error"]
)
if self._api_working_protocol_failures == 0:
_LOGGER.warning(
"%s error reading: %s", self.name, poll["Error"]
)
else:
_LOGGER.debug(
"%s error reading: %s", self.name, poll["Error"]
)
if "Payload" in poll and poll["Payload"]:
_LOGGER.info(
_LOGGER.debug(
"%s err payload: %s",
self.name,
poll["Payload"],
Expand Down Expand Up @@ -481,12 +486,20 @@ def _refresh_cached_state(self):
log_json(new_state),
)
if "Err" in new_state:
_LOGGER.warning(
"%s protocol error %s: %s",
self.name,
new_state.get("Err"),
new_state.get("Error", "message not provided"),
)
if self._api_working_protocol_failures == 1:
_LOGGER.warning(
"%s protocol error %s: %s",
self.name,
new_state.get("Err"),
new_state.get("Error", "message not provided"),
)
else:
_LOGGER.debug(
"%s protocol error %s: %s",
self.name,
new_state.get("Err"),
new_state.get("Error", "message not provided"),
)
_LOGGER.debug(
"new state (incl pending): %s",
log_json(self._get_cached_state()),
Expand Down Expand Up @@ -608,7 +621,7 @@ async def _retry_on_failed_connection(self, func, error_message):
if self._api_working_protocol_failures == 1:
_LOGGER.error(error_message)
else:
_LOGGER.info(error_message)
_LOGGER.debug(error_message)

if not self._api_protocol_working:
await self._rotate_api_protocol_version()
Expand Down Expand Up @@ -661,7 +674,7 @@ async def _rotate_api_protocol_version(self):
self._api_protocol_version_index = 0

new_version = API_PROTOCOL_VERSIONS[self._api_protocol_version_index]
_LOGGER.info(
_LOGGER.debug(
"Setting protocol version for %s to %0.1f",
self.name,
new_version,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
name: Air Quality
products:
- id: rqhuxgkizawedhxj
name: ZN-2C09
- id: rqhuxgkizawedhxj
model: ZN-2C09
entities:
- entity: sensor
name: Air Quality
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
name: Motion detector
products:
- id: ejptirvg36uwwdwu
name: CT20W PIR Motion Detector
model: CT20W
name: PIR motion detector
entities:
- entity: alarm_control_panel
dps:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
name: Weather station
products:
- id: cvurn5ynloebrpwy
name: Viflykoo EM3390TF
manufacturer: Viflykoo
model: EM3390TF
entities:
- entity: sensor
name: Indoor temperature
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Dual water timer
products:
- id: smd9kj1n
name: HCT-626
model: HCT-626
entities:
- entity: valve
name: Valve 1
Expand Down
24 changes: 12 additions & 12 deletions custom_components/tuya_local/devices/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,19 @@ generic name for the type of device should go in the top level name.

### `products`

*Optional, for future use.*
*Optional.*

A list of products that this config applies to. Each product in the list must
have an `id` specified, which corresponds to the productId or productKey
(depending on where you are getting it from) in Tuya info. This is available
from the Tuya developer web portal listing for your device, or when using
UDP discovery (via tinytuya). In future it is intended that UDP discovery
will be used to more precisely match devices to configs, so it is recommended
to report these if you can find them when requesting a new device. Each
listing can also have an optional `name`, which is intended to specify the
specific brand and model name or number of the matching device. In future
when local discovery is implemented to discover products by id, this name will
be displayed on discovery, and be available as manufacturer and model info
in device settings.
have an `id` specified, which corresponds to the product_id from cloud device
info, or productKey from the local discovery. If these are different, it is
recommended that listings are created for both.

In addition to the id, the `manufacturer`, `model` and `model_id` (if
the model has both a name and a more code like id) can be listed here.
In future the intention is to display these in the Device info panel
for the device. The `name` can also be overridden here with a more
specific name to be used in future in place of the generic name at the
top of the config.

### `entities`

Expand Down Expand Up @@ -145,6 +144,7 @@ The type of data returned by the Tuya API. Can be one of the following:
- **base64** is a special case of string, where binary data is base64 encoded. Platforms that use this type will need special handling to make sense of the data.
- **hex** is a special case of string, where binary data is hex encoded. Platforms that use this type will need special handling to make sense of the data.
- **json** is a special case of string, where multiple data points are encoded in json format in the string. Platforms that use this type will need special handling to make sense of the data.
- **utf16b64** is a special case of string, where a UTF-16 string is base64 encoded. This will be decoded into a UTF-8 string so it is readable in Home Assistant.
- **float** can contain floating point numbers. No known devices use this, but it is supported if needed.

### `name`
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
name: Window opener
products:
- id: ozttm5n6okadq7tq
name: ZC34T-03-3A swing arm opener
model: ZC34T-03-3A
name: Swing arm opener
entities:
- entity: cover
class: window
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
name: Curtain rail motor
products:
- id: XS76BY5Q1uKO6gjC
name: Abalon BCM700D
manufacturer: Abalon
model: BCM700D
entities:
- entity: cover
class: curtain
Expand Down
3 changes: 2 additions & 1 deletion custom_components/tuya_local/devices/abir_x8_vacuum.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
name: Robot vacuum
products:
- id: hslyk0g1sim9ojqu
name: Abir X8
manufacturer: Abir
model: X8
entities:
- entity: vacuum
dps:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
name: Fireplace
name: Electric fireplace
products:
- id: bf773f569661709b88gzbb
name: Advanced Fires 1500 electric fireplace
manufacturer: Advanced Fires
model: "1500"
entities:
- entity: climate
dps:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
name: Ceiling fan
products:
- id: iarwcyttkv1kvent
name: Aeratron AE3+
manufacturer: Aeratron
model: AE3+
entities:
- entity: fan
translation_only_key: fan_with_presets
Expand Down
2 changes: 1 addition & 1 deletion custom_components/tuya_local/devices/af3w_petfeeder.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Pet feeder
# products:
# - id: UNKNOWN
# name: TY-AF3W
# model: TY-AF3W
entities:
- entity: number
name: Servings
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
name: EV charger
products:
- id: dsmsam7xpb3ht7rl
name: "Afyeev 16A EV Charger"
manufacturer: Afyeev
name: "16A EV Charger"
entities:
- entity: sensor
translation_key: status
Expand Down
6 changes: 4 additions & 2 deletions custom_components/tuya_local/devices/afyeev_evcharger.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
name: EV charger
products:
- id: aaaealnecwgwerjl
name: AFYEEV 32A 22kW
manufacturer: Afyeev
name: "32A 22kW EV charger"
- id: 65zlpwd6lhgpbwtd
name: AFYEEV 32A wall mounted
manufacturer: Afyeev
name: "32A wall mounted EV charger"
entities:
- entity: sensor
class: enum
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
name: Gate lock
products:
- id: xrqkoapmq1rwjvms
name: AGL Ultra Magic
manufacturer: AGL
name: Ultra Magic gate lock
entities:
- entity: cover
class: gate
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,12 @@ name: Door lock
legacy_type: ironzon_fingerprint_lock
products:
- id: ludzroix
name: Ironzon PLD 190
manufacturer: Ironzon
model: PLD 190
name: Fingerprint lock
- id: okkyfgfs
name: Ailrinni BLE fingerprint lock
manufacturer: Ailrinni
name: BLE fingerprint lock
entities:
- entity: lock
dps:
Expand Down
3 changes: 2 additions & 1 deletion custom_components/tuya_local/devices/airrobo_p20_vacuum.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
name: Robot vacuum
# products:
# - id: UNKNOWN
# name: Airrobo P20
# manufacturer: Airrobo
# model: P20
entities:
- entity: vacuum
dps:
Expand Down
3 changes: 2 additions & 1 deletion custom_components/tuya_local/devices/akai_dryer.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
name: Dryer
products:
- id: do3cbzmmdqfdpqxw
name: Akai heat pump dryer
manufacturer: Akai
name: Heat pump dryer
entities:
- entity: sensor
class: enum
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
name: Dehumidifier
products:
- id: ifasqsxbghku3bwk
name: Aktobis WDH-310EKW dehumidifier
manufacturer: Aktobis
model: WDH-310EKW
entities:
- entity: humidifier
class: dehumidifier
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
name: AlecoAir D12 ECO dehumidifier
name: Dehumidifier
products:
- id: gcthce4ejb8nzgow
name: D12 ECO 2.0
manufacturer: AlecoAir
model: D12 ECO 2.0
entities:
- entity: humidifier
class: dehumidifier
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ name: Dehumidifier
legacy_type: alecoair_d14_dehumidifier
products:
- id: pzq25786mlkxmtbb
name: AlecoAir D16 Purify
manufacturer: AlecoAir
model: D16 Purify
entities:
- entity: humidifier
class: dehumidifier
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
name: Ceiling fan
products:
- id: eb208a14315d7cb2bd6txt
name: Amico 52 inch ceiling fan
manufacturer: Amico
name: "52 inch ceiling fan"
entities:
- entity: fan
translation_only_key: fan_with_presets
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ products:
# - id: UNKNOWN
# name: Andersson GSH
- id: qAmsenZuNF74vRvj
name: Devola Intelligent
manufacturer: Devola
model: Intelligent
entities:
- entity: climate
translation_only_key: heater
Expand Down
5 changes: 3 additions & 2 deletions custom_components/tuya_local/devices/anko_kettle.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
name: Anko kettle
name: Kettle
products:
- id: dft4ebatvon3ha5s
name: Anko LD-K3068
manufacturer: Anko
model: LD-K3068
entities:
- entity: water_heater
icon: "mdi:kettle"
Expand Down
Loading

0 comments on commit 9240b87

Please sign in to comment.