Emucs (DSMR) décodage telegram P1 Homewizard

Bonjour,

Mon problème

Je possède un compteur électrique avec un port P1 et le protocole Emucs que je lis avec un dongle P1 homewizard Emucs est un complément au protocole DSMR.
Malheureusement tous les code OBIS ne se trouve pas dans l’intégration homeassistant, ni dans api/data qui est du JSON.
Je joint un extrait du telegram ce qui m’intéresse c’est l’historique des pointes quart horaire. C’est le code OBIS 0-0:98.1.0, la pointe 1/4h du mois courant est le code OBIS 1-0:1.6.0 Il y a jusqu’a 13 mesures enregistrée, j’en ai que 1+2 (3) puisque je n’ai que le compteur depuis deux mois plein.

Je commence à créer des sensor en YAML, j’ai plusieurs calculs à effectuer (max puissance, date du max, moyenne, moyenne avec un minima de valeur,
J’ai donc certain décodage que j’utilise plusieurs fois.
Par exemple le nombre de mois enregistré (3), voir la séquence ((date)(date)(puissance))*

  1. Y a t’il moyen d’utiliser la valeur d’un sensor dans value template: > d’un autre ?
  2. Y a t’il moyen de communaliser l’écriture l’appel à la platform , la ressource , définir les constantes regex une seule fois…
  3. Y at’il un traitement d’erreur à prévoir si le telegram n’est pas dispo, ,e contient pas le code OBIS décodé

Je débute avec YAML et home assistant.

Merci de l’aide

BG

1-0:1.6.0(240901103000S)(01.897*kW)
0-0:98.1.0(3)(1-0:1.6.0)(1-0:1.6.0)(231201000000W)(231101000000W)(00.000*kW)(240801000000S)(240728104500S)(03.163*kW)(240901000000S)(240827210000S)(02.660*kW)
1-0:1.7.0(00.023*kW)
  - platform: rest
    resource: http://192.168.1.22/api/v1/telegram#
    method: GET
    scan_interval: 5
    # Capteur 1 : P1 Count Month
    name: P1 Count Month
    value_template: >
        {%- set rgx_98_Cnt_1 = '0\-0\:98\.1\.0\([0-9]*\)' -%}
        {%- set rgx_98_Cnt_2 = '\(\d+\)' -%}
        {%- set rgx_98_Cnt_3 = '\d+' -%}

        {%- set cnt_month = value 
              | regex_findall(rgx_98_Cnt_1)
              | regex_findall(rgx_98_Cnt_2)
              | regex_findall_index(rgx_98_Cnt_3,0) | int()
              %}
        {{ cnt_month }}

Ma configuration


System Information

version core-2024.9.0
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.4
os_name Linux
os_version 6.6.46-haos
arch x86_64
timezone Europe/Brussels
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
HACS Data ok
GitHub API Calls Remaining 5000
Installed Version 2.0.1
Stage running
Available Repositories 1392
Downloaded Repositories 2
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 13.1
update_channel stable
supervisor_version supervisor-2024.08.0
agent_version 1.6.0
docker_version 26.1.4
disk_total 30.8 GB
disk_used 6.0 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization oracle
board ova
supervisor_api ok
version_api ok
installed_addons File editor (5.8.0), Terminal & SSH (9.14.0)
Dashboards
dashboards 5
resources 0
views 4
mode storage
Recorder
oldest_recorder_run 26 août 2024 à 20:31
current_recorder_run 5 septembre 2024 à 19:42
estimated_db_size 44.48 MiB
database_engine sqlite
database_version 3.45.3