# localtuya-homeassistant Local handling for Tuya Devices under Home-Assistant and Hassio, getting parameters from them (as Power Meters: Voltage, Current, Watt) # How it works: 1. Copy switch.py to /custom_components/localtuya/ folder, inside /config folder (via Samba for HASSIO). 2. Identify on your Home-Assistant logs (putting your logging into debug mode), the different attributes you want to handle by HA. 3. Find in the switch.py file that part, and edit it for ID/DPS that is correct for your device. ``` @property def device_state_attributes(self): attrs = {} try: attrs[ATTR_CURRENT] = "{}".format(self._status['dps']['104']) attrs[ATTR_CURRENT_CONSUMPTION] = "{}".format(self._status['dps']['105']/10) attrs[ATTR_VOLTAGE] = "{}".format(self._status['dps']['106']/10) except KeyError: pass return attrs ``` 4. Use this declaration on your configuration.yaml file (you need to get the 'device_id' and 'local_key' parameters for your device, as it can be obtained on other tutorials on the web: ``` switch: - platform: localtuya host: 192.168.1.251 local_key: 1234567890abcdef device_id: abcdef1234567890abcdef switches: switch1: friendly_name: TUYA_LED id: 1 switch2: friendly_name: TUYA_SW01 id: 101 ``` NOTE: (as many switch declared as the device has, take note that: If your device is composed (ex. one switch with a independent led light in it), this led can be declared as a 'switch'. ¡This Python script does not include RGB handling! (RGB Handling is independent and must be declared as a 'light' custom device, you can search web for examples, but i have not test this). 5. Use this declaration on your configuration.yaml file, for stating sensors that handle its attributes: ``` sensor: - platform: template sensors: tuya-sw01_voltage: value_template: >- {{ states.switch.tuya-sw01.attributes.voltage }} unit_of_measurement: 'V' tuya-sw01_current: acs_voltage: >- {{ states.switch.tuya-sw01.attributes.current }} unit_of_measurement: 'mA' tuya-sw01_current_consumption: value_template: >- {{ states.switch.tuya-sw01.attributes.current_consumption }} unit_of_measurement: 'W' ``` 6. If all gone OK (your device's parameters local_key and device_id are correct), your switch is working, so the sensors are working too. NOTE: You can do as changes as you want in scripts ant/or yaml files. But: You can't declare your "custom_component" as "tuya", tuya is a forbidden word from 0.88 version or so. So if you declare a switch.tuya, the embedded (cloud based) Tuya component will be load instead custom_component one. NOTE2: tuya-sw01, TUYA-SW01, is the name (friendly name), so you can name it as you want, regarding to change this word every where it appears. # Thanks to: sean6541, for the working (standard) Python Handler for Tuya devices. some-other-user, i really can't find now, (i will credit/thank him here), who published a partialy Python script that inspired this solution