Open malwikl opened 6 months ago
Hey there @tuya, @zlinoliver, @frenck, mind taking a look at this issue as it has been labeled with an integration (tuya
) you are listed as a code owner for? Thanks!
(message by CodeOwnersMention)
tuya documentation tuya source (message by IssueLinks)
I have the same Issue with that specific device. Its recognized as HVAC. And nothing is working, except a mode change to switch the device off. But as @malwikl mentioned the datapoints for the pump, duration, ... are shown in diagnostic data
Edit: I got it to run partially with the local_tuya integration, but you must add/map the datapoints by yourself. And it looks like local_tuya doesnt have any possible datapoint in its internal database, in the tuya iot api browser i see some more datapoints (in that specific case the datapoints for the timers, runtime, ...) which are missing in the local_tuya integration. What work so far is on/off, change pump combination (means A,B,A+B), setting of temp (whatever that is), and a sensor which shows the current "clockTime" which is the duration in seconds how long the pumps are pumping at the moment.
I really appreciate if you can explain how you fixed the problem. Even the local_tuya for me is not known. Thank you in advance.
up @tuya?
I really appreciate if you can explain how you fixed the problem. Even the local_tuya for me is not known. Thank you in advance. @salemh Yes, sure. The local_tuya is the equivalent of the tuya integration but use only local connections to the device for communication to not be depending on an internet/cloud connection. If you create a simple developer account on the tuya developer portal you could easily add your tuya app account to the developer account at tuya to debug your devices which are connected to the cloud and your app account. If you have successfully linked your app account you can then use the tuya api explorer to examine the devices and find out the needed local key for the encryption of the communication to the device (most of that the local_tuya integration already does for you) its just you need to find out some datapoints which are not always labeled very good. So the api explorer is for that the correct tool to find out and fiddle around with the unknown datapoints. Dont hesitate to contact me if you encounter any problems in integrating tuya devices with the local_tuya integration.
Thank you a lot. I just added HACS and will go ahead with local tuya. I have one issue with smart watering device that appears as thermostat and driving me crazy. Not sure if I can add pictures here but just in case here
Sent from Outlook for iOShttps://aka.ms/o0ukef
From: ninharp @.> Sent: Wednesday, June 12, 2024 9:02:32 PM To: home-assistant/core @.> Cc: salemh @.>; Mention @.> Subject: Re: [home-assistant/core] Support Tuya BAF-908 Smart Watering System (Issue #117304)
I really appreciate if you can explain how you fixed the problem. Even the local_tuya for me is not known. Thank you in advance. @salemhhttps://github.com/salemh Yes, sure. The local_tuya is the equivalent of the tuya integration but use only local connections to the device for communication to not be depending on an internet/cloud connection. If you create a simple developer account on the tuya developer portal you could easily add your tuya app account to the developer account at tuya to debug your devices which are connected to the cloud and your app account. If you have successfully linked your app account you can then use the tuya api explorer to examine the devices and find out the needed local key for the encryption of the communication to the device (most of that the local_tuya integration already does for you) its just you need to find out some datapoints which are not always labeled very good. So the api explorer is for that the correct tool to find out and fiddle around with the unknown datapoints. Dont hesitate to contact me if you encounter any problems in integrating tuya devices with the local_tuya integration.
— Reply to this email directly, view it on GitHubhttps://github.com/home-assistant/core/issues/117304#issuecomment-2163517055, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABMRDSRDAQ4FYSXEVIJHOU3ZHB5KRAVCNFSM6AAAAABHS2CHGOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNRTGUYTOMBVGU. You are receiving this because you were mentioned.Message ID: @.***>
I also own such a BAF-908 watering can. Can wait Home Assistant to fully support this device? Thank You...
Hello, I also have such a Watering Device and it would be great if it could work perfectly in Home Assistant. Thanks!
Signing up for any future update :)
I just replaced the Tuya module in this pump to esp8266 and migrated to ESPHome)
@ESP4Ever can you share details? wiring, esp home configuration, a guide :)
I have several devices on ESPhome, but was a bit reluctant on going that route...
@ESP4Ever can you share details? wiring, esp home configuration, a guide :)
Please check my repository for details
For anyone finding their way here, here is more info about the device and how I mapped everything:
Warning: the device will be identified as an thermostat because thats the category it reports to the Tuya integration (wk). This could be intentional or not, but it is a pain to deal with.
Code | Type | Values | Information |
---|---|---|---|
switch | Boolean | "{true,false}" |
Controls wherever the device is on or off (not really turned off, but on a sleep state? the screen turns off, but the device receive commands from the app/cloud.) |
mode | Enum | { "range": [ "auto", "manual" ] } |
This is the "Mode" attribute on the app. You can define if the device will be controlled by scheduled (automatic) actions or manual mode. |
temp_set | Integer | { "unit": "s", "min": 0, "max": 360, "scale": 0, "step": 1 } |
Did not find information about it or a way to test it |
level | Enum | { "range": [ "PumpA", "PumpB", "PumpAB" ] } |
This is the "Pumps" attribute on the app. You can define which pumps will be activated when using the manual mode. |
week_program4 | Raw | {} | This is the "Program" attribute on the app. Here the original description for it: Each segment of timing can set the 1st and 2nd byte time, the 3rd and 4th byte temperature; 6 segments of timing; the default time is 06:00 20°C; 08:00 15°C; 11:30 15°C; 13: 30 15°C; 17:00 22°C; 22:00 15°C; each segment occupies 4 bytes. If the temperature contains decimal data, it must be expanded 10 times and transmitted. If it does not contain decimal data, it will be transmitted normally. 06:00 35.0 Then Pass 06 00 01 5e; 6*4*3=72 bytes |
|
runtime | Integer | { "unit": "s", "min": 0, "max": 360, "scale": 0, "step": 1 } |
This is the "Runtime" attribute on the app. You can define manually for how much time the pump will work at any time. |
sampling_time | Integer | { "unit": "h", "min": 0, "max": 60, "scale": 0, "step": 1 } |
This is the "Manual timing interval" attribute on the app. |
ClockTime | Integer | { "unit": "s", "min": 0, "max": 360, "scale": 0, "step": 1 } |
This is the remaining seconds after the pump has started. This attribute is read-only. |
This is how I configured it on HAOS
@ESP4Ever can you share details? wiring, esp home configuration, a guide :)
Please check my repository for details
@ESP4Ever I cannot find the ESP code needed to drive the pumps in your repositories
Englisch: The device broke on me within two days, but perhaps you (the one who found the topic via Google) would like to test it further here. Personally, I would not recommend using this device as it is nothing more than a pump on a SmartPlug. It is easier to integrate a pump and a SmartPlug than this "complete solution".
To integrate the system:
How to use With a developer account you can create virtual devices in tuya. These can be controlled in the app and via the Home Assistant just like real devices. These are placed in the tuya app in scenes with the corresponding switches on the irrigation system. It worked for 2 days before the device itself stopped working. I switched to the SmartPlug+Pump solution. Sometimes you have to cut out unnecessary technology to keep the system stable.
Deutsch: Das Gerät ist bei mir innerhalb von zwei Tagen kaputt gegangen, aber vielleicht möchtest du (derjenige, der das Thema über Google gefunden hat) hier weiter testen. Ich persönlich würde davon abraten, dieses Gerät zu verwenden, da es nichts anderes als eine Pumpe an einem SmartPlug ist. Es ist einfacher eine Pumpe und einen Smartplug zu integrieren als diese "Komplettlösung".
Um das System zu integrieren:
Wie Mit einem developer account kann man virtuelle Geräte in tuya erstellen. Diese sind wie echte Geräte in der App und über den Home Assistant steuerbar. Diese hinterlegt man in der tuya App in Szenen mit den entsprechenden Schaltern an der Bewässerung. Es hat zwei Tage gedauert, bis das Gerät seinen Dienst eingestellt hat. Ich bin auf die SmartPlug+Pumpe-Lösung umgestiegen. Manchmal muss man auf unnötige Technik verzichten, um das System stabil zu halten.
If you have no concerns using Chinese cloud services you can follow the way above. My target is to rid off from any cloud services and do everything in an isolated network with VPN access. ;) For me this pump is not just a smart plug but of course everyone decides himself)
@ESP4Ever I cannot find the ESP code needed to drive the pumps in your repositories
@efferre79 YAML configuration file for ESPhome is in this repo
If you have no concerns using Chinese cloud services you can follow the way above. My target is to rid off from any cloud services and do everything in an isolated network with VPN access. ;) For me this pump is not just a smart plug but of course everyone decides himself)
If you have no concern paying 50 bucks for something and than paying again to get it working properly you are free to grab your soldering iron.
Everyone else should send it back and buy something else.
For anyone finding their way here, here is more info about the device and how I mapped everything:
Warning: the device will be identified as an thermostat because thats the category it reports to the Tuya integration (wk). This could be intentional or not, but it is a pain to deal with. Code Type Values Information switch Boolean
"{true,false}"
Controls wherever the device is on or off (not really turned off, but on a sleep state? the screen turns off, but the device receive commands from the app/cloud.) mode Enum{ "range": [ "auto", "manual" ] }
This is the "Mode" attribute on the app. You can define if the device will be controlled by scheduled (automatic) actions or manual mode. temp_set Integer{ "unit": "s", "min": 0, "max": 360, "scale": 0, "step": 1 }
Did not find information about it or a way to test it level Enum{ "range": [ "PumpA", "PumpB", "PumpAB" ] }
This is the "Pumps" attribute on the app. You can define which pumps will be activated when using the manual mode. week_program4 Raw{}
This is the "Program" attribute on the app. Here the original description for it:Each segment of timing can set the 1st and 2nd byte time, the 3rd and 4th byte temperature; 6 segments of timing; the default time is 06:00 20°C; 08:00 15°C; 11:30 15°C; 13: 30 15°C; 17:00 22°C; 22:00 15°C; each segment occupies 4 bytes. If the temperature contains decimal data, it must be expanded 10 times and transmitted. If it does not contain decimal data, it will be transmitted normally. 06:00 35.0 Then Pass 06 00 01 5e; 6*4*3=72 bytes
runtime Integer{ "unit": "s", "min": 0, "max": 360, "scale": 0, "step": 1 }
This is the "Runtime" attribute on the app. You can define manually for how much time the pump will work at any time. sampling_time Integer{ "unit": "h", "min": 0, "max": 60, "scale": 0, "step": 1 }
This is the "Manual timing interval" attribute on the app. ClockTime Integer{ "unit": "s", "min": 0, "max": 360, "scale": 0, "step": 1 }
This is the remaining seconds after the pump has started. This attribute is read-only.This is how I configured it on HAOS
Hi @Filipe-Souza the data point are correct but how is possible to use with the official Tuya integration in HomeAssistant ?
@eneagiuseppe I did not use the official Tuya integration on this one, the real problems is the device itself. It reports as a 'wk' device category, and the Tuya official integration already mapped that to a thermostat (thats why @ninharp sees that screen).
So the options remaining are:
The second and third are valid but very unlikely to happen and required a lot of work and third party involvement
I made meanwhile the same rework on the device like @ESP4Ever and replaced the wifi chip against a esp8266. Works like a charm now and i have finally my watering schedule in homeassistant
The problem
Hi all,
I acquired a Tuya BAF 908 Smart Watering System similar to this one: https://de.aliexpress.com/item/1005004188351618.html
It has two valves with a timer and can be programmed... In HA it is recognized as a thermostat, but as far I can figure out in the diagnostics data I can see the two valves, two timers (1..360 seconds each) and a mode switch (manual/auto).
Can you hint me how I can define/change the mapping to home assistant entities?
Thanks MAlWiKl
What version of Home Assistant Core has the issue?
core-2024.5.3
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant Container
Integration causing the issue
Tuya
Link to integration documentation on our website
https://www.home-assistant.io/integrations/tuya/
Diagnostics information
{ "home_assistant": { "installation_type": "Home Assistant Container", "version": "2024.5.3", "dev": false, "hassio": false, "virtualenv": false, "python_version": "3.12.2", "docker": true, "arch": "aarch64", "timezone": "Europe/Berlin", "os_name": "Linux", "os_version": "6.6.16-current-meson64", "run_as_root": true }, "custom_components": { "nuki_ng": { "documentation": "https://github.com/kvj/hass_nuki_ng", "version": "0.2.1", "requirements": [] }, "climate_group": { "documentation": "https://github.com/daenny/climate_group", "version": "0.4.2", "requirements": [] }, "browser_mod": { "documentation": "https://github.com/thomasloven/hass-browser_mod/blob/master/README.md", "version": "2.3.0", "requirements": [] }, "dwains_dashboard": { "documentation": "https://dwainscheeren.github.io/dwains-lovelace-dashboard/", "version": "3.1.1", "requirements": [] }, "ui_lovelace_minimalist": { "documentation": "https://ui-lovelace-minimalist.github.io/UI/", "version": "v1.3.9", "requirements": [ "aiofiles==0.8.0", "aiogithubapi>=22.2.4" ] }, "tapo_control": { "documentation": "https://github.com/JurajNyiri/HomeAssistant-Tapo-Control", "version": "5.4.13", "requirements": [ "pytapo==3.3.19" ] }, "hacs": { "documentation": "https://hacs.xyz/docs/configuration/start", "version": "1.34.0", "requirements": [ "aiogithubapi>=22.10.1" ] }, "webrtc": { "documentation": "https://github.com/AlexxIT/WebRTC", "version": "v3.5.2", "requirements": [] } }, "integration_manifest": { "domain": "tuya", "name": "Tuya", "codeowners": [ "@Tuya", "@zlinoliver", "@frenck" ], "config_flow": true, "dependencies": [ "ffmpeg" ], "dhcp": [ { "macaddress": "105A17" }, { "macaddress": "10D561" }, { "macaddress": "1869D8" }, { "macaddress": "381F8D" }, { "macaddress": "508A06" }, { "macaddress": "68572D" }, { "macaddress": "708976" }, { "macaddress": "7CF666" }, { "macaddress": "84E342" }, { "macaddress": "D4A651" }, { "macaddress": "D81F12*" } ], "documentation": "https://www.home-assistant.io/integrations/tuya", "integration_type": "hub", "iot_class": "cloud_push", "loggers": [ "tuya_iot" ], "requirements": [ "tuya-device-sharing-sdk==0.1.9" ], "is_built_in": true }, "data": { "endpoint": "https://apigw.tuyaeu.com", "terminal_id": "1715440815237CdepHJ", "mqtt_connected": true, "disabled_by": null, "disabled_polling": false, "id": "bfc24727a7c200067efocd", "name": "Balkonbew\u00e4sserung", "category": "wk", "product_id": "abzzvtulukkwzynv", "product_name": "smart watering device", "online": true, "sub": false, "time_zone": "+02:00", "active_time": "2024-05-11T15:12:51+00:00", "create_time": "2024-05-11T15:12:51+00:00", "update_time": "2024-05-11T15:12:51+00:00", "function": { "switch": { "type": "Boolean", "value": {} }, "mode": { "type": "Enum", "value": { "range": [ "auto", "manual" ] } }, "temp_set": { "type": "Integer", "value": { "unit": "s", "min": 0, "max": 360, "scale": 0, "step": 1 } } }, "status_range": { "switch": { "type": "Boolean", "value": {} }, "mode": { "type": "Enum", "value": { "range": [ "auto", "manual" ] } }, "temp_set": { "type": "Integer", "value": { "unit": "s", "min": 0, "max": 360, "scale": 0, "step": 1 } } }, "status": { "switch": false, "mode": "manual", "temp_set": 360 }, "home_assistant": { "name": "Balkonbew\u00e4sserung", "name_by_user": null, "disabled": false, "disabled_by": null, "entities": [ { "disabled": false, "disabled_by": null, "entity_category": null, "device_class": null, "original_device_class": null, "icon": null, "original_icon": null, "unit_of_measurement": null, "state": { "entity_id": "climate.balkonbewasserung", "state": "off", "attributes": { "hvac_modes": [ "off", "heat_cool", "heat_cool" ], "min_temp": 0.0, "max_temp": 360.0, "target_temp_step": 1.0, "current_temperature": null, "temperature": 360.0, "friendly_name": "Balkonbew\u00e4sserung", "supported_features": 385 }, "last_changed": "2024-05-11T15:38:24.013089+00:00", "last_reported": "2024-05-11T15:38:24.013089+00:00", "last_updated": "2024-05-11T15:38:24.013089+00:00" } } ] }, "set_up": true, "support_local": true } }
Example YAML snippet
No response
Anything in the logs that might be useful for us?
No response
Additional information
No response