0x5e / homebridge-tuya-platform

Make homebridge-tuya-platform great again.
MIT License
206 stars 58 forks source link

Support for multi-channel Weather Station #388

Open matscb opened 8 months ago

matscb commented 8 months ago

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

mrmaximas commented 7 months ago

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

mrmaximas commented 7 months ago

@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.

0x5e commented 7 months ago

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 :(

mrmaximas commented 7 months ago

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"] };

matscb commented 7 months ago

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 commented 7 months ago

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.

mrmaximas commented 4 months ago

@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" } ] },