ENKI Recepteur connecté fil pilote

J’ai mis à jour mon post pour que cela fonctionne. Lors d’une prochaine version il ne sera plus obligatoire car un PR a été créé.

1 « J'aime »

Maintenant on peut contrôler les modes confort, éco… ?
PR c’est quoi ? Le convertisseur ne sera plus nécessaire à la prochaine mise à jour de zigbee2mqtt ?

Bonjour, tu peux installer les modules, tu les appaire avec z2m .
par defaut ils ne sernt pas reconnus , mais tu pourra utiliser tes radiateurs normalement .
quand la maj de z2m passera , ils seront reconnus .

en attendant, tu peux aussi rajouter le convertisseur , et pouvoir avoir la conso, la puissance, et basculer de hors/gel à consigne .

1 « J'aime »

Bonjour à tous,

On a des news pour le plein fonctionnement ou il faut attendre la MaJ de z2mqtt?

Merci.

2 « J'aime »

Je viens d’acheter un module Leroy Merlin, installation niquel, reconnu dans Z2M avec le code convertisseurs de @Sweepy.

Est-ce qu’il y a un moyen d’avoir la température dans Home Assistant avec ce module ?

Et si j’ai bien compris, actuellement impossible d’ajouter l’entité dans une carte thermostat ?

Hello, il faut que tu le couples à un capteur de température zigbee par exemple. Ça coûte environ 5 euros pièces sur Aliexpress.
Ensuite tu peux créer un template climate qui va lier les deux.

1 « J'aime »

Ok, et même si on as la full intégration du module dans Z2M on auras pas la remonté de température ?

Autre question, est-ce qu’on as moyen d’afficher un graphique de la conso dans une carte graph ?

Non, le module ne capte pas la température. Il est incapable de connaître la température d’une piece.

IL faut forcément un capteur séparé, lié au radiateur via un climate.

Ok, je pensais que l’info pouvais remonté du fait que mon radiateur ai une sonde pour réguler la température.

Et tu as un modèle à conseiller ?

Je ne connais pas ton radiateur, il faudrait qu’il soit lui aussi connecté à HA.
Pour Les capteurs de température, j’ai pris ça :

Attention : je ne les ai pas encore reçus, donc impossible de te faire un retour à l’usage. Mais je suppose que d’autres personnes ici doivent en avoir chez eux.

Pas connectable, juste contrôlable avec des micro-modules

Ok j’irais checker ça. J’ai vu les sonoff qui me plaise bien pour avoir un visuel direct sans lancer HA

Pour compléter les informations, dans les zigbee-herdsman-converters :

  • le module Nodon SIN-4-FP-21 a été intégré dans la release v15.106.0 (avec des correctifs et ajouts dans v15.112.0, v15.113.0, v15.115.0 et v15.116.0)
  • le module Leroy Merlin/Adeo/Equation SIN-4-FP-21_EQU a été intégré dans la release v15.109.0 (mais dépend des mêmes correctifs que pour SIN-4-FP-21).

Malheureusement, la version actuelle de Zigbee2MQTT (v1.33.2) n’embarque que la version v15.106.0 de zigbee-herdsman-converters. Donc il faudra attendre la prochaine release de Zigbee2MQTT pour avoir le support de SIN-4-FP-21_EQU.

En attendant, on peut peut-être l’installer localement en copiant le code qui va bien. Je vais essayer et je reposte.

Résultat des courses : j’ai essayé avec ce code :

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 ota = require('zigbee-herdsman-converters/lib/ota');
const e = exposes.presets;
const ea = exposes.access;

const fz_nodon_fil_pilote_mode = {
    cluster: 'manuSpecificNodOnFilPilote',
    type: ['attributeReport', 'readResponse'],
    convert: (model, msg, publish, options, meta) => {
        const payload = {};
        const mode = msg.data['mode'];

        if (mode === 0x00) payload.mode = 'anti-freeze';
        else if (mode === 0x01) payload.mode = 'comfort';
        else if (mode === 0x02) payload.mode = 'eco';
        else if (mode === 0x03) payload.mode = 'stop';
        else if (mode === 0x04) payload.mode = 'comfort_-1';
        else if (mode === 0x05) payload.mode = 'comfort_-2';
        else {
            meta.logger.warn(`wrong mode : ${mode}`);
            payload.mode = 'unknown';
        }
        return payload;
    },
};

const tz_nodon_fil_pilote_mode = {
    key: ['mode'],
    convertSet: async (entity, key, value, meta) => {
        const mode = utils.getFromLookup(value, {
            'comfort': 0x01,
            'eco': 0x02,
            'anti-freeze': 0x00,
            'stop': 0x03,
            'comfort_-1': 0x04,
            'comfort_-2': 0x05,
        });
        const payload = {'mode': mode};
        await entity.command('manuSpecificNodOnFilPilote', 'setMode', payload);
        return {state: {'mode': value}};
    },
    convertGet: async (entity, key, meta) => {
        await entity.read('manuSpecificNodOnFilPilote', [0x0000], manufacturerOptions.nodon);
    },
};

const definition = {
    zigbeeModel: ['SIN-4-FP-21_EQU'],
    model: 'SIN-4-FP-21_EQU',
    vendor: 'ADEO',
    description: 'Equation pilot wire heating module',
    fromZigbee: [fz.on_off, fz.metering, fz_nodon_fil_pilote_mode],
    toZigbee: [tz.on_off, tz_nodon_fil_pilote_mode],
    exposes: [
        e.switch(),
        e.power(),
        e.energy(),
        e.enum('mode', ea.ALL, ['comfort', 'eco', 'anti-freeze', 'stop', 'comfort_-1', 'comfort_-2']),
    ],
    configure: async (device, coordinatorEndpoint, logger) => {
        const ep = device.getEndpoint(1);
        await reporting.bind(ep, coordinatorEndpoint, ['genBasic', 'genIdentify', 'genOnOff', 'seMetering', 'manuSpecificNodOnFilPilote']);
        await reporting.onOff(ep, {min: 1, max: 3600, change: 0});
        await reporting.readMeteringMultiplierDivisor(ep);
        await reporting.instantaneousDemand(ep);
        await reporting.currentSummDelivered(ep);
        const p = reporting.payload('mode', 0, 120, 0, {min: 1, max: 3600, change: 0});
        await ep.configureReporting('manuSpecificNodOnFilPilote', p);
    },
};

module.exports = definition;

Mais malheureusement, je tombe sur l’erreur suivante :

Zigbee2MQTT:error 2023-11-19 00:45:40: Failed to configure '0x01234567890', attempt 4 (Error: Cluster with name 'manuSpecificNodOnFilPilote' does not exist

Et ça, c’est dû au fait que manuSpecificNodOnFilPilote est définie dans zigbee-herdsman v0.22.0, alors que la version embarquée dans la version actuelle de Zigbee2MQTT (v1.33.2) n’embarque que la version v0.21.0 :cry:.

Du coup, il va falloir attendre la prochaine release de Zigbee2MQTT…

Oui, pour moi aussi, je vais attendre. plus que 11 jours. Mais c’est plus sage.
tiens au passage, la sortie du module nodon identique a été repoussée en janvier…

Et le module est en promo…

Je viens de tester le support de SIN-4-FP-21_EQU dans Zigbee2MQTT en installant tout en mode dev sur mon mac : ça marche très bien :star_struck:. Inclus les confort -1 et -2. Hate de pouvoir jouer avec sur mon serveur une fois que la release est dispo :smiley:.

3 « J'aime »

Au passage (et c’est un sujet un peu annexe), quel cards Lovelace ou ensemble de cards vous conseilleriez pour piloter les radiateurs sur leur propre Dashboard ? J’aimerai créer des groupe/zone (genre rez-de-chaussée, 1er étage,…) et piloter tous les radiateurs dans ces groupes.

Même question pour programmer le chauffage durant la journée / semaine, voir mois.

Tout début de piste bienvenu.

Em

@esciara Perso j’utilise l’intégration Versatile Thermostat https://github.com/jmcollin78/versatile_thermostat
Il y a une carte Lovelace faites pour cette intégration. Je sais pas si ca répond à ta question :wink:

J’ai racheter deux modules, mais impossible de les piloter. Ils sont bien en ligne dans mon interface Z2M, j’ai essayer de les supprimé et relink, mais pas possible j’ai cette erreur :

Publish 'get' 'state' to 'Radiateur Cuisine' failed: 'Error: Read 0x187a3efffeaa9a46/242 genOnOff(["onOff"], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Timeout - 13945 - 242 - 70 - 6 - 1 after 10000ms)'

Et dans mon schéma il n’est pas connecté à mon coordinator. J’ai rien changé à ma config, je comprend pas trop le soucis

1 « J'aime »

Bonjour peut t’on supprimer le convertisseur externe ou il faut attendre ?

Je pense que le mieux est d’attendre juste la prochaine version stable qui intègrera la gestion complète (avec les pressets), normalement ça sort le 1er décembre.
En tout cas, c’est ce je vais faire pour moi.

1 « J'aime »