Intégration micro-onduleur StepupTech SPD800 via tuya-local : récupérer les données depuis iot tuya?

Bonjour à tous,

Je sollicite vos compétences pour m’aider à intégrer mon tout nouveau micro-onduleur StepupTech SPD-800 à Home Assistant via le plugin tuya-local (https://github.com/make-all/tuya-local).

Voici les données que je retrouve dans l’application smartlife :

J’ai bien accès à la plateforme iot tuya et j’ai pu récupérer tous les Data Points (DP) dont voici le tableau :

dp_id code type Exemple de valeur Remarque
6 switch bool true Micro-onduleur en marche ou arrêté
7 fault bitmap 0
10 electric_total value Toujours à 0
101 PVV value 2500
102 PVI value Toujours à 0
103 product_category value Toujours à 0
104 ACV value 247000 (247V) Tension en sortie de micro-onduleur
105 ACI value 34 (0,34A) Intensité du courant en sortie de micro-onduleur
106 product_specifications value Europe
107 Temp value 25 Température du micro-onduleur
108 electric value 67 Puissance instantannée en sortie du micro-onduleur ??
109 Unit enum Euro
110 Money string ‹ ’ ‘ ›
111 DeviceID string S/N du device
112 Model string ‹ ’ ‘ ›
113 TempUnit enum centigrade
114 pv1_volt value 3393 (33,93V) Tension en sortie du panneau 1
115 pv1_curr value 95 (0,95A) Intensité du courant en sortie du panneau 1
116 ACHZ value 49 Fréquence du réseau électrique en sortie du MO
117 pv2_volt value 3253 (32,53V) Tension en sortie du panneau 2
118 pv2_curr value 171 (1,71A) Intensité du courant en sortie du panneau 2

A partir de ce tableau, j’ai créé le fichier qui décrit le périphérique dans tuya-local - à placer dans /homeassistant/custom_components/tuya_local/devices/solar_inverter_stepuptech_SPD800.yaml

edit: version du 01/08/2024

name: Micro Inverter Stepuptech SPD-800
products:
  - id: 2zkyfrpmfxmex896
    name: SPD-800
primary_entity:
  entity: sensor
  name: AC power
  class: power
  dps:
    - id: 108
      type: integer
      name: sensor
      unit: W
      force: true
      class: measurement
      mapping:
        - scale: 100

secondary_entities:
  - entity: sensor
    name: PV1 voltage
    class: voltage
    category: diagnostic
    dps:
      - id: 114
        type: integer
        name: sensor
        unit: V
        force: true
        mapping:
            - scale: 100

  - entity: sensor
    name: PV1 current
    class: voltage
    category: diagnostic
    dps:
      - id: 115
        type: integer
        name: sensor
        unit: A
        force: true
        mapping:
            - scale: 100

  - entity: sensor
    name: PV2 voltage
    class: voltage
    category: diagnostic
    dps:
      - id: 117
        type: integer
        name: sensor
        unit: V
        force: true
        mapping:
            - scale: 100

  - entity: sensor
    name: PV2 current
    class: voltage
    category: diagnostic
    dps:
      - id: 118
        type: integer
        name: sensor
        unit: A
        force: true
        mapping:
            - scale: 100

  - entity: sensor
    class: temperature
    dps:
      - id: 107
        type: integer
        name: sensor
        unit: C
        force: true
        class: measurement
        mapping:
          - scale: 1

  - entity: sensor
    name: AC voltage
    class: voltage
    category: diagnostic
    dps:
      - id: 104
        type: integer
        name: sensor
        unit: V
        force: true
        mapping:
            - scale: 100

  - entity: sensor
    name: AC current
    class: current
    category: diagnostic
    dps:
      - id: 105
        type: integer
        name: sensor
        unit: A
        force: true
        mapping:
            - scale: 100

  - entity: switch
    name: Inverter switch
    category: config
    dps:
      - id: 6
        type: boolean
        name: switch
        optional: true

Ce qui donne une fois importé dans Home Assistant via tuya-local :

Mon problème

Cependant dans mon application smartlife, je peux consulter la production du jour et la production totale depuis la mise en service du micro-onduleur et malheureusement je ne retrouve pas ces données dans les data points et je ne peux donc pas les importer dans HA.

→ Est-ce que vous avez une idée de où sont stockées ces 2 valeurs ? Dans le cloud tuya ? Est-ce qu’il est possible de les récupérer ?

Ma configuration


System Information

version core-2024.6.4
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 6.6.33-haos
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 5000
Installed Version 1.34.0
Stage running
Available Repositories 1391
Downloaded Repositories 4
HACS Data ok
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 12.4
update_channel stable
supervisor_version supervisor-2024.06.2
agent_version 1.6.0
docker_version 26.1.4
disk_total 30.8 GB
disk_used 7.2 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization kvm
board ova
supervisor_api ok
version_api ok
installed_addons Mosquitto broker (6.4.1), Advanced SSH & Web Terminal (18.0.0), File editor (5.8.0), Zigbee2MQTT (1.38.0-1)
Dashboards
dashboards 4
resources 1
views 9
mode storage
Recorder
oldest_recorder_run 13 juillet 2024 à 14:03
current_recorder_run 13 juillet 2024 à 16:20
estimated_db_size 417.95 MiB
database_engine sqlite
database_version 3.44.2
___

Merci par avance de votre aide

Salutations

Bonjour,
je l’ai installé dernièrement aussi et effectivement j’ai la production totale mais seulement à partir du jour où j’ai intégré dans ha.
Je n’ai pas trouvé l’info.

Bonjour kristobal,

Est-ce que tu possèdes le micro-onduleur STEPUPTECH SP800 qui est noir ou le nouveau STEPUPTECH SPD 800 V2 qui lui est gris ?

J’ai déjà un SP800 (le noir) et lui est parfaitement intégré à Home Assistant, par contre ce nouveau modèle ne l’ai pas encore.

Bon j’ai dis des bêtises. J’ai bien le total je viens de vérifier. Mais au début je l’avais pas je suis quasi sur.
J’ai le micro onduleur noir.
Il a quoi de plus de la nouvelle version

Oui aucun soucis avec le SP800 V1 (noir), j’ai toutes les données.
Le SPD800 V2 (gris) permet d’avoir la production des 2 panneaux :

J’ai l’impression qu’il chauffe moins et qu’il produit plus que le V1 (meilleur rendement ?)

Ah dommage j’ai eus la v1. Ça aurait était bien. Après ça va pas faire un gain non plus énorme sur l’année.
Mon onduleur est placé sur le mur de l’abri de jardin donc je pense qu’il chauffe moins que si il était sous les panneaux directement.

Bonjour,

J’ai reçu le SPD800 V2 et je galère à l’intégrer (j’ai des valeurs de sensor qui ne correspondent pas à l’identique des infos dans smart life).
Exemple :
AC power = 26w dans HA et 32w dans smartlife
PV power = 25w dans HA et 36w dans smartlife

Savez vous ce qui peut provoquer ces écarts de valeurs ?

Bonjour @sephi67 ,
Je viens de recevoir un shellyplug, je vais le brancher demain et mesurer la puissance qui sort effectivement de la prise du micro-onduleur pour être sûr que la valeur retournée dans smartlife soit bien la bonne !

merci, j’attends ton retour

Bonjour @Titi007,
As-tu réussi à intégrer le micro-onduleur dans HA? Tu as pu récupérer la local key ?

Oui j’ai réussi, je l’ai passé sur l’appli Tuya et ça a fonctionné.
Par contre, il me faut créer 2 entités pour la puissance afin de l’intégrer au Dashboard énergie.
Pour ton incohérences de données, je pense que c’est dû à une latence de Home Assistant par rapport au spd800.
Il faudrait regarder si ton total en fin de journée est équivalent

Bah comme j’ai toujours 9W environ de moins dans HA il faut voir si je peux lui dire prend la valeur et ajoute 9 mais le problème c’est que le soir au lieu d’être à 0, il sera à 9W.
Étant nouveau sur HA, peux on espérer une prise en charge native dans l’avenir par Tuya ?

Par contre je trouve pas comment faire cumuler les valeurs entre ma prise Tuya où j’ai 1 panneaux et le SPD800 où j’ai 2 panneaux dans le dash énergie

Rectification, plus la puissance de production augmente et plus l’écart entre smartlife et HA augmente donc pas pratique du tout


J’ai branché un Shelly Plug S depuis ce matin et les valeurs mesurées correspondent aux valeurs retournées par l’appli Smart Life, par contre la valeur que je récupère via tuya local contenue dans le dp-id 108 « electric » ne correspond pas du tout…

Exemple à un instant T :
valeur Smartlife : 764W / 2.95A 259V
valeur HA (dp_id 108) : 630W / 2.95A / 259V
valeur Shelly Plug S : 760W / 235.6V

Ici les valeurs mesurée de 10h à 13h :

Par le Shelly Plug S :

Ici par le dp_id 108 du MO via tuya local :

On constate une grande différence qui ne peut pas s’expliquer par une éventuelle latence de Home Assistant (@Titi007 )

Par contre, les valeurs retournées dans les dp_id 104 (Tension en sortie du MO) et 105 (Intensité du courant en sortie du MO) sont correctes et si je les multiplie (P=UxI), je retombe bien sur les valeurs affichées dans l’appli SmartLife, j’ai crée un sensor en faisant le calcul de la tension x l’intensité :

template:
  - sensor:
    - name: "SPD800_AC_Power_Calcul"
      unit_of_measurement: W
      state: >-
        {{ (states('sensor.micro_inverter_stepuptech_spd_800_ac_current')|float(default=0))  * (states('sensor.micro_inverter_stepuptech_spd_800_ac_voltage'))|float(default=0)|round(3) }}

Je pense donc que dans l’appli Smart Life la puissance de sortie du MO est calculée ( Tension x Intensité) et qu’elle n’est pas stockée dans un dp_id comme c’était le cas dans le modèle d’avant (SP800 noir)

@sephi67, tu peux additionner les puissances instantanées des deux micro-onduleurs en créant un template, dans le fichier configuration.yaml :

template:
  - sensor:
    - name: "PV_Puissance_totale"
      unit_of_measurement: W
      state: >-
        {{ 0 if states('sensor.micro_inverter_stepuptech_spd_800_ac_power') == 'unavailable' else (states('sensor.micro_inverter_stepuptech_sp800_ac_power')|float +
        states('sensor.micro_inverter_stepuptech_spd_800_ac_power')|float )|round(0) }}

Puis si tu veux calculer la production (énergie) totale (kWh) :

sensor:
  - platform: integration
    source: sensor.PV_Puissance_totale
    name: "PV_Energie_totale"
    unit_prefix: k
    round: 2
    max_sub_interval:
      minutes: 5

template:
  - sensor:
    - name: "PV_total_energy"
      unit_of_measurement: 'kWh'
      state: >
        {{ (states('sensor.PV_Energie_totale')|float )|round(2) }}       
      device_class: energy
      state_class: "total_increasing"
      attributes:         
        last_reset: '1970-01-01T00:00:00+00:00'

L’intégration du SP800 (1er modèle noir) dans tuya_local a été faite par une personne membre du groupe Facebook de materfrance, donc si on veut une intégration native dans tuya local, c’est à nous de proposer le fichier de configuration (/homeassistant/custom_components/tuya_local/devices/solar_inverter_stepuptech_SPD800.yaml) au développeur de ce module !

Tu arriverais à m’expliquer comment tu créer le sensor en rentrant du code (quel menu et options) ?

On peut faire ça en message privé, tu as reçu mon message ?

Le truc par exemple c’est que moi dans mon file editor le tuya_local se nomme localtuya et je n’avais pas le dossier devices dedans. J’ai donc créer le dossier et généré le yaml au même nom mais cela ne semble pas fonctionner chez moi.