Mon problème
Bonjour,
Je viens d’emménager dnas mon nouvel appartement, équipé de radiateurs connectables.
Ces radiateurs ont le module thermostat suivant :
Leur intégration wifi sur une appli mobile marche asez bien, mais c’est loin d’être l’idéal en terme de vie privée, et ce n’est évidemment pas intégré à mon système HA. (l’appli dépend de la marque du radiateur, mais en pratique ce sont toutes des forks du celle du vendeur du thermostat)
Mais fort heursement, le thermostat est indiqué comme compatible Zigbee.
Je me rends compte alors :
- il n’est pas supporté dans la banque d’appareils Zigbee2MQTT
- j’ai essayé un appareilalge via ZHA, mais je n’ai accès qu’a la valeur de température ambiante. Aucun controle posible du thermostat, ce qui est a contrario possible via leur appli et connecton Wifi.
J’essaye donc de suivre le tuto d’intégration d’appareils non supportés :
Seulement, je galère un peu !
Mon fichier .js de configuration est pour l’instant le suivant (j’ai utilisé le converter thermostat par défaut) :
const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const e = exposes.presets;
const ea = exposes.access;
const definition = {
zigbeeModel: ['PH25'], // The model ID from: Device with modelID 'lumi.sens' is not supported.
model: 'PH25', // Vendor model number, look on the device for a model number
vendor: 'Imhotep creation', // Vendor of the device (only used for documentation and startup logging)
description: 'Heater thermostat', // Description of the device, copy from vendor site. (only used for documentation and startup logging)
fromZigbee: [fz.thermostat], // added from log and following converter https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/converters/fromZigbee.js
toZigbee: [], // Should be empty, unless device can be controlled (e.g. lights, switches).
exposes: [e.temperature()], // Defines what this device exposes, used for e.g. Home Assistant discovery and in the frontend
};
module.exports = definition;
Du coup : j’arrive a récupérer la température locale et la consigne de température via la console de dev
Mais impossible d’écrire une consigne,
Ce qui semble normal, car :
toZigbee: [],
seulement, si je change cette ligne par :
toZigbee: [tz.thermostat],
Alors Z2m ne se lance plus. Voici le log d’erreur au démarrage :
[17:49:52] INFO: Preparing to start...
[17:49:52] INFO: Socat not enabled
[17:49:53] INFO: Starting Zigbee2MQTT...
/app/node_modules/zigbee-herdsman-converters/index.js:91
if (converter.options) {
^
TypeError: Cannot read properties of undefined (reading 'options')
at Object.addDefinition [as addDeviceDefinition] (/app/node_modules/zigbee-herdsman-converters/index.js:91:23)
at new ExternalConverters (/app/lib/extension/externalConverters.ts:15:17)
at new Controller (/app/lib/controller.ts:84:58)
at start (/app/index.js:106:18)
Du coup je sèche.
Second problème, je n’arrive pas a sortir en expose les data que je vois en consile dev.
e.temperature()
renvoie toujours null, et toutes mes tentatives de modifier cette ligne font crasher Z2m au démarrage.
Je planche vraiement, et ça m’embète pas mal.
Avez-vous une aide à m’apporter pour ajouter proprement cete appareil à Z2M ?
Merci d’avance
PS : j’ai contacté en amont le fabriquant pour avoir son aide, mais il fait visiblement la sourde oreille.
PSS : voici pour info ce à quoi ressemble l’onglet « état » de l’appareil sous Zigbee2mqtt:
{
"linkquality": 87,
"local_temperature": 17.96,
"max_heat_setpoint_limit": 19,
"min_heat_setpoint_limit": 5,
"occupied_cooling_setpoint": null,
"occupied_heating_setpoint": 15.5,
"temperature_setpoint_hold": false,
"unoccupied_heating_setpoint": null
}
Ma configuration
System Information
version | core-2023.1.7 |
---|---|
installation_type | Home Assistant OS |
dev | false |
hassio | true |
docker | true |
user | root |
virtualenv | false |
python_version | 3.10.7 |
os_name | Linux |
os_version | 5.15.90 |
arch | x86_64 |
timezone | Europe/Paris |
config_dir | /config |
Home Assistant Community Store
GitHub API | ok |
---|---|
GitHub Content | ok |
GitHub Web | ok |
GitHub API Calls Remaining | 4996 |
Installed Version | 1.31.0 |
Stage | running |
Available Repositories | 1247 |
Downloaded Repositories | 5 |
Home Assistant Cloud
logged_in | false |
---|---|
can_reach_cert_server | ok |
can_reach_cloud_auth | ok |
can_reach_cloud | ok |
Home Assistant Supervisor
host_os | Home Assistant OS 9.5 |
---|---|
update_channel | stable |
supervisor_version | supervisor-2023.03.1 |
agent_version | 1.4.1 |
docker_version | 20.10.22 |
disk_total | 30.8 GB |
disk_used | 7.9 GB |
healthy | true |
supported | true |
board | ova |
supervisor_api | ok |
version_api | ok |
installed_addons | Grafana (8.1.0), InfluxDB (4.5.0), File editor (5.5.0), Node-RED (14.1.0), Mosquitto broker (6.1.3), Zigbee2MQTT (1.30.2-1), Terminal & SSH (9.6.1) |
Dashboards
dashboards | 1 |
---|---|
resources | 2 |
views | 2 |
mode | storage |
Recorder
oldest_recorder_run | 6 mars 2023 à 11:02 |
---|---|
current_recorder_run | 19 mars 2023 à 11:25 |
estimated_db_size | 579.19 MiB |
database_engine | sqlite |
database_version | 3.38.5 |