Bonjour,
J’ai récemment fait l’acquisition d’une poignée de boîtier de pilotage de radiateur par fil pilote de marque Powernity (modèle PO-BOCO-ELEC).
Ceux-ci sont a priori gérés sous Zigbee2MQTT, mais pas sous ZHA. Je me suis donc lancé dans le codage d’un quirk.
Je me suis basé sur le code existant pour Z2M :
Pour le moment, j’ai réussi à gérer la sélection du pré-réglage (auto / manuel), du mode manuel, la récupération du mode auto, et les valeurs de température et d’humidité.
Voici le code de mon quirk en l’état actuel :
from zigpy.quirks.v2 import EntityPlatform, EntityType, SensorDeviceClass
from zhaquirks.tuya.builder import TuyaQuirkBuilder, TuyaTemperatureMeasurement
import zigpy.types as t
class POBOCOELECPreset(t.enum8):
Auto = 0x00
Manual = 0x01
Holiday = 0x02
class POBOCOELECMode(t.enum8):
Off = 0x05
AntiFrost = 0x04
Eco = 0x03
ComfortMinus2 = 0x02
ComfortMinus1 = 0x01
Comfort = 0x00
(
TuyaQuirkBuilder("Powernity", "PO-BOCO-ELEC")
.applies_to("_TZE204_d6i25bwg", "TS0601")
.tuya_enum(
dp_id=2,
attribute_name="preset",
enum_class=POBOCOELECPreset,
entity_platform=EntityPlatform.SELECT,
entity_type=EntityType.STANDARD,
translation_key="preset",
fallback_name="Preset",
)
.tuya_temperature(dp_id=16, scale=10)
.tuya_humidity(dp_id=8)
.tuya_enum(
dp_id=126,
attribute_name="auto_mode",
enum_class=POBOCOELECMode,
entity_platform=EntityPlatform.SENSOR,
entity_type=EntityType.STANDARD,
translation_key="auto_mode",
fallback_name="Auto mode",
)
.tuya_enum(
dp_id=127,
attribute_name="manual_mode",
enum_class=POBOCOELECMode,
entity_platform=EntityPlatform.SELECT,
entity_type=EntityType.STANDARD,
translation_key="manual_mode",
fallback_name="Manual mode",
)
.skip_configuration()
.add_to_registry()
)
J’aimerais pouvoir rajouter au moins les valeurs des « schedule » journaliers (DP 28 à 34) pour pouvoir modifier depuis HA la programmation horaire gérée directement par l’équipement en mode auto. Je comprends en gros le principe du converter qui a été codé pour Z2M, qui permet de passer d’un tableau d’entiers à une chaine de caractère lisible et modifiable par l’humain:
Mais je ne suis pas parvenu à retranscrire ça sous forme de quirk ZHA. J’ai trouvé assez peu d’infos et/ou de temps pour bien piger le fonctionnement des quirks et des fonctions spécifiques Tuya.
Quelqu’un serait-il intéressé de contribuer ? Vu le faible coût d’aquisition de ces boîtiers par rapport à d’autres appareils du même type, il serait intéressant de pousser un quirk officiel pour le support sur ZHA.
N’hésitez pas à me faire des remarques sur le code actuel !