Vanne thermostatique commandable en mode pourcentage d'ouverture

Bonjour à tous,

Je cherche des vannes thermostatiques ZIGBEE qui peuvent être utilisées en mode « contrôle du pourcentage d’ouverture » via zigbeelinker
En effet, J’ai des chauffages en fonte qui pour certain se trouvent « encastrés » (logement très ancien, classé, je ne peux pas toucher :wink:).

Du coup, j’aimerai tester le plugin thermostat avec envoi du pourcentage d’ouverture sur toute la durée de la période de calcul plutôt que du on/off sur la vanne qui fait beaucoup de bruit et use énormément les piles.
J’ai actuellement des Eurotronic Spirit zigbee contrôlables en mode pourcentage, mais ca ne fonctionne pas (tests faits via zigbee2mqtt, le paramètre existe mais msg d’erreur, impossible d’ajuster la position de la vanne, et via le plugin zigbee ou la fonction n’est pas implémentée) et des MOES HY368 (Tuya TS0601) mais la fonction n’existe pas sur la vanne.

Si d’autres ont l’expérience de Vanne avec cette fonction « fonctionnelle », je suis preneur

Norbert

Salut, peux tu envoyer la ligne qui correspond à ton équipement dans la database de zigbee2mqtt.
Tu peux editer ce fichiers grâce à un bouton dans le menu configuration du plugin ZigbeeLinker (vers le bas).

Ensuite, tu as aussi le plugins « thermostat virtuel » que j’ai développé dans le sens de piloter ce genre de produits ou climatisation (vas faire un tour sur la doc, il y a des copies d’écran et exemples d’utilisations)

voilà les lignes demandées :

{"id":5,"type":"EndDevice","ieeeAddr":"0x00158d00053d26d7","nwkAddr":5630,"manufId":4151,"manufName":"Eurotronic","powerSource":"Battery","modelId":"SPZB0001","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":769,"inClusterList":[0,1,3,513,25,10],"outClusterList":[0,1,3,4,513,25,10],"clusters":{"genBasic":{"attributes":{"modelId":"SPZB0001","manufacturerName":"Eurotronic","powerSource":3,"zclVersion":2,"appVersion":22,"stackVersion":5,"hwVersion":35,"dateCode":"20191014","swBuildId":"22190930"}},"hvacThermostat":{"attributes":{"16384":2,"16385":0,"16386":0,"16387":2100,"16392":1,"localTemp":2100,"pIHeatingDemand":17,"occupiedHeatingSetpoint":2100,"unoccupiedHeatingSetpoint":1600,"localTemperatureCalibration":0}},"genPowerCfg":{"attributes":{"batteryPercentageRemaining":130,"batteryAlarmState":0}}},"binds":[{"cluster":1,"type":"endpoint","deviceIeeeAddress":"0x00212effff060dcc","endpointID":1},{"cluster":513,"type":"endpoint","deviceIeeeAddress":"0x00212effff060dcc","endpointID":1}],"configuredReportings":[{"cluster":513,"attrId":0,"minRepIntval":0,"maxRepIntval":600,"repChange":25},{"cluster":513,"attrId":8,"minRepIntval":0,"maxRepIntval":600,"repChange":1},{"cluster":513,"attrId":18,"minRepIntval":0,"maxRepIntval":600,"repChange":25},{"cluster":513,"attrId":20,"minRepIntval":0,"maxRepIntval":600,"repChange":25},{"cluster":513,"attrId":16387,"minRepIntval":0,"maxRepIntval":600,"repChange":25},{"cluster":513,"attrId":16392,"minRepIntval":0,"maxRepIntval":3600,"repChange":1}],"meta":{}}},"appVersion":22,"stackVersion":5,"hwVersion":35,"dateCode":"20191014","swBuildId":"22190930","zclVersion":2,"interviewCompleted":true,"meta":{"configured":3},"lastSeen":1638111011920}
{"id":16,"type":"EndDevice","ieeeAddr":"0x00158d00032f6fbf","nwkAddr":14147,"manufId":4151,"manufName":"Eurotronic","powerSource":"Battery","modelId":"SPZB0001","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":769,"inClusterList":[0,1,3,513,25,10],"outClusterList":[0,1,3,4,513,25,10],"clusters":{"genBasic":{"attributes":{"modelId":"SPZB0001","manufacturerName":"Eurotronic","powerSource":3,"zclVersion":2,"appVersion":22,"stackVersion":5,"hwVersion":35,"dateCode":"20191014","swBuildId":"22190930"}},"hvacThermostat":{"attributes":{"16384":2,"16386":0,"16387":2000,"16392":1,"localTemp":2050,"pIHeatingDemand":0,"occupiedHeatingSetpoint":2000,"unoccupiedHeatingSetpoint":1600}},"genPowerCfg":{"attributes":{"batteryPercentageRemaining":40,"batteryAlarmState":0}}},"binds":[{"cluster":1,"type":"endpoint","deviceIeeeAddress":"0x00212effff060dcc","endpointID":1},{"cluster":513,"type":"endpoint","deviceIeeeAddress":"0x00212effff060dcc","endpointID":1}],"configuredReportings":[{"cluster":513,"attrId":0,"minRepIntval":0,"maxRepIntval":600,"repChange":25},{"cluster":513,"attrId":8,"minRepIntval":0,"maxRepIntval":600,"repChange":1},{"cluster":513,"attrId":18,"minRepIntval":0,"maxRepIntval":600,"repChange":25},{"cluster":513,"attrId":20,"minRepIntval":0,"maxRepIntval":600,"repChange":25},{"cluster":513,"attrId":16387,"minRepIntval":0,"maxRepIntval":600,"repChange":25},{"cluster":513,"attrId":16392,"minRepIntval":0,"maxRepIntval":3600,"repChange":1}],"meta":{}}},"appVersion":22,"stackVersion":5,"hwVersion":35,"dateCode":"20191014","swBuildId":"22190930","zclVersion":2,"interviewCompleted":true,"meta":{"configured":3},"lastSeen":1638110763178}
{"id":19,"type":"EndDevice","ieeeAddr":"0x00158d00053d36a8","nwkAddr":45993,"manufId":4151,"manufName":"Eurotronic","powerSource":"Battery","modelId":"SPZB0001","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":769,"inClusterList":[0,1,3,513,25,10],"outClusterList":[0,1,3,4,513,25,10],"clusters":{"genBasic":{"attributes":{"modelId":"SPZB0001","manufacturerName":"Eurotronic","powerSource":3,"zclVersion":2,"appVersion":22,"stackVersion":5,"hwVersion":35,"dateCode":"20191014","swBuildId":"22190930"}},"hvacThermostat":{"attributes":{"16384":1,"16385":74,"16386":0,"16387":2100,"16392":1,"unoccupiedHeatingSetpoint":1600,"occupiedHeatingSetpoint":2100,"localTemp":2050,"pIHeatingDemand":37,"localTemperatureCalibration":0}},"genPowerCfg":{"attributes":{"batteryPercentageRemaining":80,"batteryAlarmState":0}}},"binds":[{"cluster":1,"type":"endpoint","deviceIeeeAddress":"0x00212effff060dcc","endpointID":1},{"cluster":513,"type":"endpoint","deviceIeeeAddress":"0x00212effff060dcc","endpointID":1}],"configuredReportings":[{"cluster":513,"attrId":0,"minRepIntval":0,"maxRepIntval":600,"repChange":25},{"cluster":513,"attrId":8,"minRepIntval":0,"maxRepIntval":600,"repChange":1},{"cluster":513,"attrId":18,"minRepIntval":0,"maxRepIntval":600,"repChange":25},{"cluster":513,"attrId":20,"minRepIntval":0,"maxRepIntval":600,"repChange":25},{"cluster":513,"attrId":16387,"minRepIntval":0,"maxRepIntval":600,"repChange":25},{"cluster":513,"attrId":16392,"minRepIntval":0,"maxRepIntval":3600,"repChange":1}],"meta":{}}},"appVersion":22,"stackVersion":5,"hwVersion":35,"dateCode":"20191014","swBuildId":"22190930","zclVersion":2,"interviewCompleted":true,"meta":{"configured":3},"lastSeen":1638082822389}
{"id":37,"type":"EndDevice","ieeeAddr":"0x00158d00053d3676","nwkAddr":44011,"manufId":4151,"manufName":"Eurotronic","powerSource":"Battery","modelId":"SPZB0001","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":769,"inClusterList":[0,1,3,513,25,10],"outClusterList":[0,1,3,4,513,25,10],"clusters":{"genBasic":{"attributes":{"modelId":"SPZB0001","manufacturerName":"Eurotronic","powerSource":3,"zclVersion":2,"appVersion":22,"stackVersion":5,"hwVersion":35,"dateCode":"20191014","swBuildId":"22190930"}},"hvacThermostat":{"attributes":{"16384":2,"16386":0,"16387":1700,"16392":1,"unoccupiedHeatingSetpoint":1600,"occupiedHeatingSetpoint":1700,"pIHeatingDemand":0,"localTemp":1700}},"genPowerCfg":{"attributes":{"batteryPercentageRemaining":150,"batteryAlarmState":0}}},"binds":[{"cluster":1,"type":"endpoint","deviceIeeeAddress":"0x00212effff060dcc","endpointID":1},{"cluster":513,"type":"endpoint","deviceIeeeAddress":"0x00212effff060dcc","endpointID":1}],"configuredReportings":[{"cluster":513,"attrId":0,"minRepIntval":0,"maxRepIntval":600,"repChange":25},{"cluster":513,"attrId":8,"minRepIntval":0,"maxRepIntval":600,"repChange":1},{"cluster":513,"attrId":18,"minRepIntval":0,"maxRepIntval":600,"repChange":25},{"cluster":513,"attrId":20,"minRepIntval":0,"maxRepIntval":600,"repChange":25},{"cluster":513,"attrId":16387,"minRepIntval":0,"maxRepIntval":600,"repChange":25},{"cluster":513,"attrId":16392,"minRepIntval":0,"maxRepIntval":3600,"repChange":1}],"meta":{}}},"appVersion":22,"stackVersion":5,"hwVersion":35,"dateCode":"20191014","swBuildId":"22190930","zclVersion":2,"interviewCompleted":true,"meta":{"configured":3},"lastSeen":1638110994718}

0 noter que le passage du TRV_MODE de 2 (automatique mode ) à 1 (direct control via valve position) est OK car l’affichage sur la vanne bascule d’un afficahge de la temperature de consigne (mode 2) à l’affichage du % d’ouverture de la vanne (mode 1).

Par contre, la modification du valve position en mode 1 abouti à l’erreur ci-dessous.

Error Publish 'set' 'valve_position' to 'Salon_Vanne1' failed: 'Error: Write 0x00158d00053d36a8/1 hvacThermostat({"16385":{"value":109,"type":32}}, {"sendWhenActive":false,"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":4151,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'INVALID_VALUE')'
Info MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Publish 'set' 'valve_position' to 'Salon_Vanne1' failed: 'Error: Write 0x00158d00053d36a8/1 hvacThermostat({\"16385\":{\"value\":109,\"type\":32}}, {\"sendWhenActive\":false,\"timeout\":10000,\"disableResponse\":false,\"disableRecovery\":false,\"disableDefaultResponse\":true,\"direction\":0,\"srcEndpoint\":null,\"reservedBits\":0,\"manufacturerCode\":4151,\"transactionSequenceNumber\":null,\"writeUndiv\":false}) failed (Status 'INVALID_VALUE')'","meta":{"friendly_name":"Salon_Vanne1"},"type":"zigbee_publish_error"}

Tu envoies une chaine de caractère, je pense qu’il attend un numérique.
C’est dans un scénario je suppose ? Si Salon_Vanne1 est une variable, il faut envoyer variable(Salon_Vanne1, 0) par exemple et pas directement Salon_Vanne1

Non, j’ai passé les commandes directement via l’interface zigbee2mqtt, sur la page de l’équipement, indépendamment de jeedom, en utilisant le slider valve position

Bonjour,
Si je ne dis pas de bêtise, la valeur envoyée (d’après les logs) est 109. Si c’est comme sur la version z-wave de ces vannes, la valeur doit-être entre 0 et 99.

1 « J'aime »

En fait, la position de la valve est bien une valeur entre 0 et 100 (%), par contre, la commande d’envoi de la position de la valve est entre 0 et 255. De toute façon, même une position inferieure à 100 ne passe pas, même message.

Du coup, personne, qui pourrait me conseiller, n’utilise des vannes thermostatiques Zigbee en mode % d’ouverture de la vanne ?

Effectivement, j’étais dans le faux.

Essayes de renvoyer une valeur proche de 50 par exemple et envoi le log stp

Voilà les logs zigbee2mqtt pour un changement de valeur de valve position de 50
(je suis passé en zigbee2mqtt 1.22.1)

Publish 'set' 'valve_position' to 'Salon_Vanne1' failed: 'Error: Write 0x00158d00053d36a8/1 hvacThermostat({"16385":{"value":50,"type":32}}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":4151,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'INVALID_VALUE')'
Debug Error: Write 0x00158d00053d36a8/1 hvacThermostat({"16385":{"value":50,"type":32}}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":4151,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'INVALID_VALUE') at Endpoint.checkStatus (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:310:23) at Endpoint.write (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:392:22) at Object.convertSet (/opt/zigbee2mqtt/node_modules/zigbee-herdsman-converters/converters/toZigbee.js:3453:13) at Publish.onMQTTMessage (/opt/zigbee2mqtt/lib/extension/publish.ts:247:36)

Bon ben je te propose d’ouvrir une issue sur le git z2m.
Tu envoies ton log, et les lignes dans le database (tout ce que tu as mis ici)
Avec aussi des copies d’écran pour aider le dév de z2m.

Regardes quand même si le sujet n’a pas été déjà traité : Issues · Koenkk/zigbee2mqtt · GitHub

Merci, c’est fait :

A suivre

1 « J'aime »