ZLinky_TIC - ou connecter simplement Linky en zigbee

Bonjour WarC0zes,
Hélas non. Le ZLinky est installé dans ma maison secondaire qui est très éloigné de mon lieu de résidence.
Les màj s’étaient bien passés jusqu’a celle-ci. Je vais devoir attendre de me rendre sur place ou qu’une autre màj résolve le problème :smile:

Ah oui ca va être dur a distance. Mais moi quand je le supprime de ZHA, le Zlinky repasse en mode appairage et j’ai plus cas lancer le scan de nouveau appareil. Sans toucher le Zlinky, après sous Z2M je sais pas si c’est pareille.

Re,

je suis sous Z2M, pas souci depuis que je fais les MAJ

aucun fige , ou reboot , aucun souci de connexion

tu as fait comment pour passer ton zlinky en Limited sous Z2M? le mien est en Router, impossible de le changer en limited (il est en bout de ligne).

je sais pas, je connais pas Z2M.

Bonjour,
Moi je suis en tarif BASE et je n’ai pas d’HC et d’HP.
Et je n’arrive pas à remonter la valeur en watts en ayant adapté ce bout de code.
J’ai essayé avec le sensor base, le papp… Mais je reste toujours à 0.
Une idée?

La réponse de Koenk
For now you can use the OTA override functionallity: OTA updates | Zigbee2MQTT

Bonjour,

Depuis hier mon Zlinky ne remonte plus aucune information :confused:

J’utilise ZHA avec un dongle zigbee popp et mon device Zlinky est en version Firmware: 0x0000000b

J’utilise zha toolkit pour faire un refresh toutes les 15min de la conso total.

Jusqu’a maintenant aucun probleme mais depuis hier ça ne fonctionne plus et je n’arrive pas à définir pourquoi…

J’ai restart mon HA (raspberry 3)
J’ai rapproché mon rpi3 de mon linky
Rien n’y fait :confused:

Voila ce que je retrouve dans la log lorsque je lance manuellement un read_attr avec zha toolkit.

Merci pour votre aide

 2022-11-30 11:26:34.662 DEBUG (MainThread) [custom_components.zha_toolkit] event_data {'zha_toolkit_version': 'v0.8.26', 'zigpy_version': '0.51.5', 'zigpy_rf_version': '0.34.2', 'ieee_org': 00:15:8d:00:05:d2:a9:7a, 'ieee': '00:15:8d:00:05:d2:a9:7a', 'command': 'attr_read', 'command_data': None, 'start_time': '2022-11-30T10:26:29.807722+00:00', 'errors': ["DeliveryError('Failed to deliver message: <EmberStatus.DELIVERY_FAILED: 102>')"], 'params': {'cluster_id': 1794, 'attr_id': 256, 'dir': 0, 'tries': 1, 'expect_reply': True, 'args': [], 'state_id': 'sensor.Consommation_electricite', 'read_before_write': True, 'read_after_write': True}, 'success': False}
2022-11-30 11:26:34.664 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [547384516784] Failed to deliver message: <EmberStatus.DELIVERY_FAILED: 102>
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 200, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1744, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1781, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/config/custom_components/zha_toolkit/__init__.py", line 751, in toolkit_service
raise handler_exception
File "/config/custom_components/zha_toolkit/__init__.py", line 715, in toolkit_service
await handler(
File "/config/custom_components/zha_toolkit/__init__.py", line 800, in command_handler_default
await default.default(
File "/config/custom_components/zha_toolkit/default.py", line 33, in default
await handler(app, listener, ieee, cmd, data, service, params, event_data)
File "/config/custom_components/zha_toolkit/zcl_attr.py", line 292, in attr_read
await attr_write(*args, **kwargs)
File "/config/custom_components/zha_toolkit/zcl_attr.py", line 334, in attr_write
result_read = await u.cluster_read_attributes(
File "/config/custom_components/zha_toolkit/utils.py", line 778, in cluster_read_attributes
return await cluster.read_attributes(attrs, manufacturer=manufacturer)
File "/usr/local/lib/python3.10/site-packages/zigpy/zcl/__init__.py", line 471, in read_attributes
result = await self.read_attributes_raw(to_read, manufacturer=manufacturer)
File "/usr/local/lib/python3.10/site-packages/zigpy/quirks/__init__.py", line 240, in read_attributes_raw
results = await super().read_attributes_raw(
File "/usr/local/lib/python3.10/site-packages/zigpy/quirks/__init__.py", line 285, in _read_attributes
return await super()._read_attributes(
File "/usr/local/lib/python3.10/site-packages/zigpy/zcl/__init__.py", line 324, in request
return await self._endpoint.request(
File "/usr/local/lib/python3.10/site-packages/zigpy/endpoint.py", line 237, in request
return await self.device.request(
File "/usr/local/lib/python3.10/site-packages/zigpy/device.py", line 297, in request
await self._application.request(
File "/usr/local/lib/python3.10/site-packages/zigpy/application.py", line 659, in request
await self.send_packet(
File "/usr/local/lib/python3.10/site-packages/bellows/zigbee/application.py", line 805, in send_packet
raise zigpy.exceptions.DeliveryError(
zigpy.exceptions.DeliveryError: Failed to deliver message: <EmberStatus.DELIVERY_FAILED: 102`

Je suis passé de V5 en V12 sous ZHA - très déçu de cette mise à jour.

Résumé:

  • Plus de remonté (sauf initiale) du tout - l’ancienne configuration était perdue.
  • Plusieurs fois impossible de lire des attributs.
  • Plusieurs réappairages suite au problèmes.
  • Suppression nécessaire sous ZHA, puis réappairage à cause du cluster supplémentaire (PowerConfiguration).
  • ZHA indque que la valeur du compteur est en kWh alors que ce sont des Wh.
    Donc vite fait avant mauvaise prise en compte par le Energy Dashboard:
# Fichier customize.yaml, inclus dans configuration.yaml:
#   homeassistant:
#     customize: !include customize.yaml
sensor.lixee_zlinky_tic_summation_delivered:
  unit_of_measurement: 'Wh'

Puis recharger les customisations (dans les outils développeur, premier onglet).

Pour info, mon script de configuration pour le Lixee (à ajouter comme script, puis à appeler comme service depuis les outils développeur):

alias: Configure Lixee
sequence:
  - variables:
      ieee: "{{(device_attr(device, 'identifiers')|list)[0][1]}}"
      default_tries: 3
  - service: zha_toolkit.conf_report
    data:
      ieee: "{{ ieee }}"
      cluster: 1794
      attribute: 0
      min_interval: 1
      max_interval: 300
      tries: "{{ default_tries}}"
      reportable_change: 1
      event_done: zha_done
  - service: zha_toolkit.conf_report_read
    alias: read report configuration (allows verification)
    data:
      ieee: "{{ ieee }}"
      cluster: 1794
      attribute: 0
      tries: "{{ default_tries}}"
      event_done: zha_done
  - service: zha_toolkit.conf_report
    data:
      ieee: "{{ ieee }}"
      cluster: 1794
      attribute: 0
      min_interval: 1
      max_interval: 300
      tries: "{{ default_tries}}"
      reportable_change: 1
      event_done: zha_done
  - service: zha_toolkit.conf_report_read
    alias: read report configuration (allows verification)
    data:
      ieee: "{{ ieee }}"
      endpoint: 1
      cluster: 1794
      attribute: 0
      tries: "{{ default_tries}}"
      event_done: zha_done
  - service: zha_toolkit.conf_report
    alias: Active power report configuration
    data:
      ieee: "{{ ieee }}"
      endpoint: 1
      cluster: 2820
      attribute: 1291
      min_interval: 1
      max_interval: 300
      tries: "{{ default_tries}}"
      reportable_change: 1
      event_done: zha_done
  - service: zha_toolkit.conf_report_read
    alias: Active power report configuration read back
    data:
      ieee: "{{ ieee }}"
      cluster: 2820
      attribute: 1291
      tries: "{{ default_tries}}"
      event_done: zha_done
  - service: zha_toolkit.conf_report
    alias: Mains voltage report configuration
    data:
      ieee: "{{ ieee }}"
      cluster: 1
      attribute: 0
      min_interval: 1
      max_interval: 3900
      tries: "{{ default_tries}}"
      reportable_change: 1
      event_done: zha_done
  - service: zha_toolkit.conf_report_read
    alias: Mains voltage report configuration read back
    data:
      ieee: "{{ ieee }}"
      cluster: 1
      attribute: 0
      tries: "{{ default_tries}}"
      event_done: zha_done
fields:
  device:
    name: Lixee
    description: Lixee ZLinky device to configure
    required: true
    selector:
      device:
        manufacturer: LiXee
        model: ZLinky_TIC
        entity:
          integration: zha
mode: single

EDIT: Je viens de constater que la suppression du ZLinky de ZHA a changé le nom ensuite… Données à regrouper…

EDIT2: J’ai compris pourquoi l’unité n’est plus bonne, le quirk (zha-device-handlers) n’est plus appliqué… (Mais bon, si le ZLinky ferait ce qu’il faut, le quirk ne serait pas nécessaire pour cela).

EDIT3: Après la création d’un quirk local pour prendre en compte le nouveau PowerConfiguration Cluster il a fallu supprimer le ZLinky et reappairer pour que la consommation soit effectivement enregistré comme kWh (et défaire la configuration réalisé sous customize.yaml).

Bonjour @le_top,
effectivement depuis la v12, le quirk sous ZHA est plus utiliser. Après le flash en v12 Limited, j’ai supprimer et ré-appairer le Zlinky et tout a fonctionner.
il y a un post ou ont en parler avec pdecat sur github Cluster Power Configuration ajouté en v12.0 non déclaré ? · Issue #140 · fairecasoimeme/Zlinky_TIC · GitHub.

Par contre de mon coté la v12 Limited a éliminer les soucis de led qui clignoter et j’ai plus d’erreur de timeout. Mon réseau Zigbee est stable avec le Zlinky, alors que de la v5 a v11 c’était pas le cas.

Bon, visiblement ce post ne mène pas à grand chose - je pratiques généralement l’autodébrouille car je peux et que bien souvent c’est la seule méthode ou celle qui est la plus rapide.

Je partage mon quirk « local » ce qui permet de réutiliser le quirk original. Il sera à supprimer une fois qu’il y a une mise à jour avec la modification adéquate dans zha-device-handlers.

A priori il faut relancer HA après avoir placé ce fichier.

Même souci, j’ai du désapérer et ré-appérer le Zlinky sous Z2M avant que mes valeurs remontent

Bonjour,

j’ai entrepris de me créer une vue de gestion d’énergie via le Zlink.
Afin d’avoir un maximum de flexibilité je voudrais utiliser le couple InfluxDB/Grafana (déjà installés sur mon HA).

Est-ce que l’un de vous aurait déjà utilisé cette solution et créé une vue Grafana utilisant les informations remontées par le ZLink ?
Si oui, vous serait-il possible de partager votre json ?

Merci d’avance.

Bonjour tout le monde :slight_smile:

J’ai pas trouvé la réponse en auto-recherche:

Est-ce que vous savez si on peut utiliser Zlinky sur un Linky de production, donc dans mon cas sur le linky qui gère l’injection de mes panneaux afin de voir les chiffres de la production par heure sur mon panel HA?

Merci beaucoup pour l’info si vous l’avez :slight_smile:

Bonjour,
Mon Zlinky semble très bavard, il remonte un mssg « zlinky config: standard, single_phase, false, BASE » toutes les minutes dans les logs Z2M !
Vous avez aussi les mêmes messages ?

C’est normal… maj minutier.

1 « J'aime »

Bonjour à tous,

je cherche à utiliser grafana via InfluxDB pour suivre ma consommation en utilisant le Lixee. Avez-vous déjà expérimenté cette solution. Si oui, vous serait-il possible de partager votre dashboard ?
Il existe un très beau dashboard grafana mais il utilise la solution avec Enedis MyElectricalData.

1 « J'aime »

Bonjour,
je viens d’installer le Zlinky TIC sur mon compteur puis sous mq2mtt.
il est bien reconnu par contre, les infos sont erronnées.
Je suis en HC-HP, il n’affiche : Current Tarif : Base.
Je trouve que je n’ai pas beaucoup d’infos retournées.
qu’en pensez vous ?
Comment faite vous pour l’intégrer dans le tableau de bord Energie ? Sachant que j’ai déja un shelly EM avec une pince AMP.
Merci

Pour ceux que ça intéresse et qui ne sont pas électriciens, ça y est j’ai compris !

Pourquoi EDF compte la puissance en kVA et non en kW ? C’est quoi le « cos(phi) » et la puissance réactive ?

Et si j’ai bien suivi, la formule de calcul est la suivante:
P = U x I x cos(phi) , à savoir Puissance = Tension en volts * Courant en Ampère * cos(phi)

Si j’ai bien suivi et en résumé:

  • certains appareils consomment du courant, mais en restituent aussi dans le réseau, par exemple un moteur électrique ou une pompe. EDF (pour les particuliers) va facturer: Consommation - Restitution, c’est les kWh.
  • néanmoins, il y a un flux d’énergie dans les 2 sens qui oblige à dimensionner le réseau conséquence, c’est les KVAh qui eux sont facturés aux entreprises.

Et du coup, j’en déduis que si l’on ne connaît pas son cos(phi) qui est lié à l’installation et aux appareils utilisés, on ne peut pas traduire des kVA (mesurés par EDF) en kW (ce qui est facturé) autrement qu’en faisant la différence des kWh consommés dans un intervalle de temps défini.

Et du coup, je me suis amusé à calculer mon CosPhi minute et heure (ça ne sert à rien à ce stade, juste pour ma culture personnelle). sauf erreur:

La consommation moyenne en kVA

sensor:
  - platform: statistics
    entity_id: sensor.garage_lixee_zlinky_tic_fd98d205_electrical_measurement_apparent_power
    name: "Lixee Apparent Power Moyenne mn"
    unique_id: lixee_apparent_power_moyenne_mn
    state_characteristic: mean
    max_age:
      minutes: 1

  - platform: statistics
    entity_id: sensor.garage_lixee_zlinky_tic_fd98d205_electrical_measurement_apparent_power
    name: "Lixee Apparent Power Moyenne h"
    unique_id: lixee_apparent_power_moyenne_h
    state_characteristic: mean
    max_age:
      hours: 1

Le rapport (division) entre les kVAh et les kWh qui doit le donner un CosPhi entre 0 et 1:

template:
      - name: 'CosPhi mn'
        unique_id: sensor.cosphi_mn
        icon: mdi:math-cos
        state_class: "measurement"
        state: >-
          {% if not is_number(states('sensor.lixee_current_summation_derived_v1') ) %}
            'unavailable'
          {% elif not is_number(states('sensor.lixee_apparent_power_moyenne_mn') ) %}
            'unavailable'
          {% else %}
            {{ ( states ('sensor.lixee_current_summation_derived_v1') | float / states ('sensor.lixee_apparent_power_moyenne_mn') | float ) | round(3)  }}
          {% endif %}

  - sensor:
      - name: 'CosPhi h'
        unique_id: sensor.cosphi_h
        icon: mdi:math-cos
        state_class: "measurement"
        state: >-
          {% if not is_number(states('sensor.lixee_current_summation_derived_h') ) %}
            'unavailable'
          {% elif not is_number(states('sensor.lixee_apparent_power_moyenne_h') ) %}
            'unavailable'
          {% else %}
            {{ ( states ('sensor.lixee_current_summation_derived_h') | float / states ('sensor.lixee_apparent_power_moyenne_h') | float ) | round(3)  }}
          {% endif %}
1 « J'aime »

Salut,
merci pour le partage.
Par contre j’ai en statut inconnu au lieu de indisponible avant que les infos réapparaissent au démarrage.

j’ai modifier comme ca:

      - name: zlinky_metering_HC_HP_sum
        unit_of_measurement: "Wh"
        device_class: energy
        state_class: total_increasing
        state: >-
          {% if is_state('sensor.0x00158d0005d299cf_hchc', 'unknown') %}
            unknown
          {% elif is_state('sensor.0x00158d0005d299cf_hchp', 'unknown') %}
            unknown
          {% else %}
            {% set HC = states('sensor.0x00158d0005d299cf_hchc') | float*1000 %}
            {% set HP = states('sensor.0x00158d0005d299cf_hchp') | float*1000 %}
            {{ HC + HP | int }}
          {% endif %}