homebridge-tuya-platform icon indicating copy to clipboard operation
homebridge-tuya-platform copied to clipboard

Support for multi-channel Weather Station

Open matscb opened this issue 2 years ago • 9 comments

Device Infomation JSON File

No response

Detail Informations

I have a Ventus W640 weather station that is supported Tuya. It is multichannel temperature/humidity device (7 channels + 1 channel in the station as such).

I would be nice to be able to show all 8 channels in HomeKit (maybe a separate sensors). Do you see any possibility for this? Currently is only the device own temp and humidity values shown not the additional channels.

In the Tuya IoT Platform it looks like attached (for two first additional channels):

Skärmavbild 2023-10-12 kl  20 52 18

Rgds, Mats

matscb avatar Oct 12 '23 18:10 matscb

@0x5e same https://github.com/0x5e/homebridge-tuya-platform/issues/292

mrmaximas avatar Dec 02 '23 21:12 mrmaximas

@0x5e I've written a node for nodered and I send data to influxdb, but it would be really nice to add this to a plugin. I can share my knowledge, in general I have studied this weather station quite well.

mrmaximas avatar Dec 02 '23 21:12 mrmaximas

Thanks @mrmaximas , sorry I have no enough time to maintain the project recently.

I've been used the node-red before, maybe it's a better solution to expose all tuya data points on node-red, and let user convert data point to homekit service/characteristic manually. cuz there's soooooo many tuya products with different definitions, it's really hard for me to support them one by one :(

0x5e avatar Dec 04 '23 08:12 0x5e

cuz there's soooooo many tuya products with different definitions, it's really hard for me to support them one by one :(

I see your point! By the way, Homekit supports just few values sent by this weather station. I think it would be nice to add indoor/outdoor temperature and humidity, may be outdoor illumination. Below I will give a piece of node red code, where you can see which DP is responsible for which values. If you need more infornation i comment this any time. Thanks!

let obj = msg.payload.data.dps let fin = {} if (obj.hasOwnProperty(1)){ fin["temperature_in"] = obj["1"]/10 }; if (obj.hasOwnProperty(2)) { fin["humidity_in"] = obj["2"] }; if (obj.hasOwnProperty(38)) { fin["temperature_out"] = obj["38"]/10 }; if (obj.hasOwnProperty(39)) { fin["humidity_out"] = obj["39"] }; if (obj.hasOwnProperty(54)) { fin["pressure"] = obj["54"]/10 }; if (obj.hasOwnProperty(55)) { fin["pressure_drop"] = obj["55"] }; if (obj.hasOwnProperty(56)) { fin["wind_speed"] = obj["56"]/10 }; if (obj.hasOwnProperty(57)) { fin["wind_gust"] = obj["57"]/10 }; if (obj.hasOwnProperty(60)) { fin["daily_rainfall"] = obj["60"]/1000 }; if (obj.hasOwnProperty(61)) { fin["rain_rate"] = obj["61"]/1000 }; if (obj.hasOwnProperty(62)) { fin["uv_index"] = obj["62"]/10 }; if (obj.hasOwnProperty(63)) { fin["illuminance"] = obj["63"] }; if (obj.hasOwnProperty(64)) { fin["dew_point"] = obj["64"]/10 }; if (obj.hasOwnProperty(65)) { fin["feels_like"] = obj["65"]/10 }; if (obj.hasOwnProperty(66)) { fin["heat_index"] = obj["66"]/10 }; if (obj.hasOwnProperty(67)) { fin["wind_chill"] = obj["67"]/10 }; if (obj.hasOwnProperty(101)) { fin["wind_angle"] = obj["101"] };

mrmaximas avatar Dec 04 '23 08:12 mrmaximas

A question from someone new to this.

I would not be possible to use the concept of "Non-standard DP" and "override the device schema" (as described in the documentation) for the additional 7 channels as seen in my original post, mapping the temp and humidity values to standard DP codes?

matscb avatar Dec 04 '23 12:12 matscb

I tried to use the concepts mentioned above. By this I could define which of the channels (temp and humidity) that is displayed in HomeKit. I assume this is because the plugin only supports single channel Tuya temp and humidity sensor.

This solved one of my problems as I wanted to display a pool temperature in Homekit and this is connected to one of the additional channels but then I lost the display of indoor temp and humidity that is built into the base unit of the weather station.

matscb avatar Dec 06 '23 18:12 matscb

@matscb finally it's my working config for external gauge only { "id": "bf2733df5541a391111111", "category": "wsdcg", "schema": [ { "code": "temp_current_external", "newCode": "va_temperature" }, { "code": "humidity_outdoor", "newCode": "va_humidity" } ] },

mrmaximas avatar Feb 14 '24 18:02 mrmaximas

@mrmaximas I have a similar issue with another product, I can get data from any one temp sensor, but not more than one. In the below mapping only the first va_temperature will be shown. Did you find a way to get multiple?

"schema": [
                    {
                        "code": "ToutCh1",
                        "newCode": "va_temperature",
                    },
                    {
                        "code": "HoutCh1",
                        "newCode": "humidity_value",
                    },
                    {
                        "code": "ToutCh2",
                        "newCode": "va_temperature",
                    },
                    ```

TristanBrotherton avatar Aug 29 '24 21:08 TristanBrotherton

@TristanBrotherton i don't have any external sensors. try to make device with the same id but with another schema?

mrmaximas avatar Aug 29 '24 22:08 mrmaximas