telemetry
Quoi de neuf

Home Assistant

  • Forum Electricité - Domotique
  • Auteur du sujet Auteur du sujet v1d53e2
  • Date de début Date de début
  • #501
J'ai enfin installé le SSD pour la raspberry, et la migration carte SD / SSD s'est bien déroulé grâce au tutoriel trouvé dans cette discussion.
 
  • #502
Bonjour,
Quel est la déclaration de variable/sensor... qui permet n'importe quel contenu ?
Int16, int32, ... string ?

Même si je m'attends à du numérique sur le modbus, je peux obtenir une liste de valeurs.
 
  • #503
Voilà ou j'en suis :

modbus:
- name: "Diris"
close_comm_on_error: true
delay: 5
timeout: 5
type: tcp
host: 192.168.0.xxx
port: 502

sensors:
- name: sensor01
address: 50526
count: 2
scan_interval: 20
slave: 255
#input_type: input #holding
data_type: float32
#structure: ">f"
precision: 2

Cela indique 0,00 alors que la valeur attendue est 50.
 
  • #504
Bonjour,

Quelqu'un sait comment obtenir la valeur maximale ou minimale d'un senseur depuis minuit aujourd'hui.
J'ai essayé la plateforme statistics avec le paramètre max_age:

- platform: statistics
name: "SolarEdge I1 MAX AC voltage"
entity_id: sensor.solaredge_i1_ac_voltage_ab
state_characteristic: value_max
unique_id: "solaredge_i1_max_ac_voltage"
max_age:

hours: 24
# 1 decimal is enough
precision: 1

Le problème est que 24 heures correspondent aux 24 dernières heures alors que ce que je voudrais, ce sont les données depuis minuit jusqu'au temps présent.
 
  • #505
Bonjour,

Quelqu'un sait comment obtenir la valeur maximale ou minimale d'un senseur depuis minuit aujourd'hui.
J'ai essayé la plateforme statistics avec le paramètre max_age:

- platform: statistics
name: "SolarEdge I1 MAX AC voltage"
entity_id: sensor.solaredge_i1_ac_voltage_ab
state_characteristic: value_max
unique_id: "solaredge_i1_max_ac_voltage"
max_age:

hours: 24
# 1 decimal is enough
precision: 1
Le problème est que 24 heures correspondent aux 24 dernières heures alors que ce que je voudrais, ce sont les données depuis minuit jusqu'au temps présent.

Juste en vitesse je vois ceci :
https://community.home-assistant.io/t/need-max-value-for-the-day/535328
 
  • #506
Bonjour,

Quelqu'un sait comment obtenir la valeur maximale ou minimale d'un senseur depuis minuit aujourd'hui.
J'ai essayé la plateforme statistics avec le paramètre max_age:

- platform: statistics
name: "SolarEdge I1 MAX AC voltage"
entity_id: sensor.solaredge_i1_ac_voltage_ab
state_characteristic: value_max
unique_id: "solaredge_i1_max_ac_voltage"
max_age:

hours: 24
# 1 decimal is enough
precision: 1
Le problème est que 24 heures correspondent aux 24 dernières heures alors que ce que je voudrais, ce sont les données depuis minuit jusqu'au temps présent.

Vous pouvez tester ChatGPT parfois ça marche, lui il dit ceci:
Code:
sensor:
  - platform: statistics
    name: "SolarEdge I1 MAX AC voltage"
    entity_id: sensor.solaredge_i1_ac_voltage_ab
    state_class: measurement
    state_type: float
    sampling_size: 100
    max_age:
      hours: 24
    precision: 1
    unit_of_measurement: "V"
 
  • #507
C’est pas plus simple via une simple carte statistique?
Code:
type: statistic
entity: sensor.baie_informatique_voltage
period: 
  calendar:   
    period: day
stat_type: max
 
Dernière édition:
  • #508
C’est pas plus simple via une simple carte statistique?
Code:
type: statistic
entity: sensor.baie_informatique_voltage
period:
  calendar:  
    period: day
stat_type: max

J'aurais voulu mettre la statistique dans une carte de type: multiple-entity-row.
C'est dommage que l'on ne peut pas mettre le code d'un carte statistique dans la carte multiple-entity-row.
 
  • #509
J’ai peut-être trouvé une solution : sur hacs tu as une intégration qui s’appelle daily sensor. Il crée un sensor qu’il reset tous les jours à x h
 
  • #510
J’ai peut-être trouvé une solution : sur hacs tu as une intégration qui s’appelle daily sensor. Il crée un sensor qu’il reset tous les jours à x h

Merci pour ta suggestion.

L'intégration est plutôt faite pour des capteurs de température. Du coup, le temps de mise à jour ne peut-être définit qu'en minute. Comme je cherche le maximum et le minimun parmi des tensions qui évoluent plus vite que la minute, l'intégration par défaut ne me convient pas vraiment.
Cependant, j'ai modifié le code de l'intégration pour pouvoir définir des mises à jour en secondes et cela semble fonctionner.

L'autre désavantage de cette méthode est que l'intégration définit un objet en mémoire qui garde ses variables en mémoire. Contrairement à un traitement statistique, l'intégration n'explore pas les N derniers échantillons contenus dans la base de données pour en trouver le maximum ou le minimum.
L'intégration garde des variables volatiles en mémoires qui contiennent le maximum et le minimum courant et ces variables sont mises à jour régulièrement en fonction de l'état du capteurs observés lors de la mise à jour périodique.
Le problème de cette méthode est qu'en cas d'arrêt ou de redémarrage de home assistant, les variables qui contiennent le minimum et le maximum sont perdues et réinitialisées avec la première valeur lue. On perd l'avantage d'avoir réinitialisé les variables min et max à minuit.

Je vais utiliser cette méthode en attendant de trouver mieux, mais tant que je chipote avec HA, je le redémarre souvent pour intégrer les nouveautés et donc, je n'aurai pas des valeurs min et max correctes.

C'est dommage que la plateforme statistique soit aussi rigide au niveau de la définition du temps et qu'il n'y ai pas la possibilité de définir une durée calculée.

En tout cas, merci pour ton aide.
 
Dernière édition:
  • #512
Bonjour,
Que conseilleriez-vous comme capteur de température ? Et pourquoi ;-)
Merci
 
  • #513
Bonjour,

J'avance et cerne mieux le problème.

Si je passe par nod red, j'obtiens comme réponse [ 0 , 4996 ] en mode debug. La valeur 4996 est cohérente (je cherche la fréquence).
Donc le code ci-dessous est valide mais si on utilise un sensor, on obtient la valeur 0.
Si je comprends bien, je dois passer par un registre. Et décoder le registre.

Si une bonne âme connaît le code pour 'registre' ? Et obtenir un sensor avec la valeur 49,96. Je pourrais gagner un peu de temps.
Merci


#Modbus
modbus:
- name: "Diris101"
close_comm_on_error: true
delay: 5
timeout: 5
type: tcp
host: 192.168.0.101
port: 502

sensors:
- name: sensorDIRIS01
address: 0x70A #50526
count: 2
scan_interval: 20
slave: 255
#input_type: input #holding
data_type: float32
precision: 2
 
  • #514
Bonjour,

J'avance et cerne mieux le problème.

Si je passe par nod red, j'obtiens comme réponse [ 0 , 4996 ] en mode debug. La valeur 4996 est cohérente (je cherche la fréquence).
Donc le code ci-dessous est valide mais si on utilise un sensor, on obtient la valeur 0.
Si je comprends bien, je dois passer par un registre. Et décoder le registre.

Si une bonne âme connaît le code pour 'registre' ? Et obtenir un sensor avec la valeur 49,96. Je pourrais gagner un peu de temps.
Merci


#Modbus
modbus:
- name: "Diris101"
close_comm_on_error: true
delay: 5
timeout: 5
type: tcp
host: 192.168.0.101
port: 502

sensors:
- name: sensorDIRIS01
address: 0x70A #50526
count: 2
scan_interval: 20
slave: 255
#input_type: input #holding
data_type: float32
precision: 2

Je vais peut-être te suggérer quelque chose qui ne t'avancera pas, mais pour debugger le modbus, pourquoi ne passes-tu pas directement par python avant de passer par HA?

Dans mon cas, pour explorer le modbus de mon onduleur, j'ai directement créé un script python tel que celui-ci:

Code:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from pyModbusTCP.client import ModbusClient
import time

# TCP auto connect on modbus request, close after it
c = ModbusClient(host="192.168.0.101", port=502, unit_id=1, auto_open=True, auto_close=True)

for i in range(8):
    regs = c.read_holding_registers(40000+i*125, 125)
    if regs:
        cpt = 40000+i*125
        s=''
        for x in regs:
            x1 = int(x/256)
            x2 = (x%256)
            s=s+chr(x1)+chr(x2)
            print(cpt,':',hex(x), x)
            cpt=cpt+1
        print(s)
    else:
        print("read error")
    time.sleep(0.1)

time.sleep(0.1)
regs = c.read_holding_registers(41000, 100)
if regs:
    cpt = 41000
    s=''
    for x in regs:
        x1 = int(x/256)
        x2 = (x%256)
        s=s+chr(x1)+chr(x2)
        print(cpt,':',hex(x), x)
        cpt=cpt+1
    print(s)
else:
    print("read error")

Pour installer le module pyModbusTCP sous python, il suffit de taper les lignes de code suivantes.


Code:
# install the last available release (stable)
sudo pip install pyModbusTCP

L'avantage de travailler directement en python, c'est que tu évites la couche HA et que tu ne dois pas à chaque fois recharger les configurations.
Dans mon cas, je connaissais l'adresse de base des registres.
Si tu ne la connais pas, en python, tu pourras faire une boucle qui balaye les registres de l'adresse 0 à l'adresse que tu veux et vérifier pour chaque adresse si tu obtiens une valeur.
Cela me semble plus rapide que de tâtonner dans le YAML de HA.
 
  • #515
Super, mes compétences ont été dépassé...

Je ne maîtrise absolument pas py.
Avec nod red, j'ai enfin compris mon souci.
Je vais m'y atteler ce soir et j'espère sortir enfin des valeurs exploitables.

Merci. Merci.
 
  • #516
Voilà, je me répond à moi même et laisse une méthode pour un(e) suivant(e) comme je m'auto trouve dans les recherches de google.

Home Assistant - Socomec - Diris A40 - Node Red

Finalement, je suis passé par Node Red. J'en avais déjà fait connaissance au début des IoT et de MQTT.
C'est beaucoup plus simple et surtout le debug est instantané, ce qui est plus rapide que les nombreux redémarrages de HA et la lecture des journaux. Peut-être qu'il existe une autre méthode de debug dans HA mais avec la mienne et mes incompétences, cela a pris beaucoup, beaucoup de temps.

En préambule, il a fallu mettre tout ce beau monde dans le même range d'IP, ce qui est compliqué quand t'es pas admin de ton pc et qu'y a pas de serveur dhcp qui distribue les adresses IP.
J'ai également rencontré des problèmes de health de HA avant de capter que cela venait de la carte SD. Maintenant que le projet est viable, il faudra passer sur disque externe. La sauvegarde externe vers google drive m'a pris moins de 5 minutes.
Il m'a fallu plus de temps pour comprendre que Node Red tout seul, c'est beau mais ça ne s'intègre pas comme cela dans HA, il faut Node Red Companion ... qui n'est pas supporté officiellement.
Les tâtonnements du début viennent du fait que la valeur renvoyée par le Modbus du Diris est une array de 2 valeurs pour la lecture d'une adresse . Dans Node Red, cela se voit en 6 dixième de second, dans HA, je cherche toujours.
Par facilité, je suis resté dans Node Red, retourner dans HA m'aurait demandé quelques heures de plus pour étudier l'extraction des valeurs d'une array et leurs traitements.
Le Diris A40 a plusieurs tables d'adresses, certaines en 2 mots, une autre en 1 mot. Evidement, celle en 1 mot ne renvoie pas des valeurs directement utilisable, elles doivent être interprétées ea en fonction des caractéristiques de la pince de mesure.

Le résultat est le suivant :

ha01.jpg


Dans Node Red :
NR01.jpg


J'ai deux entrées de lecture modbus, car la consommation est une variable quart horaire, donc à relever toutes les 15 minutes. La première entrée relève une série d'adresses.

L'Edit du Modbus-Read node :
NR02.jpg


L'edit du serveur :
NR_server.jpg


L'édit du buffer :
NR_Buffer.jpg


L'edit du sensor :
NR_sensor01.jpg


NR_sensor02.jpg



En conclusion, pour beaucoup moins de 500€, je suis autonome pour la lecture et la synthèse d'une dizaine de Diris A40. Cela m'a déjà permis de voir qu'il y a un problème sur un des Diris.
Tout cela est possible directement dans HA sans Node Red mais pour les nuls comme moi, c'est parfais.

Edit : je suis plus à l'aise dans ma cabane à créer un meuble à partir de bois brut qu'avec cette technologie.
 
Dernière édition:
  • #518
Hello à tous, question un peu parallèle mais je la laisse quand même ici, en triphasé sans neutre, c'est bien ceci ?
(pour mettre en amont de ma PAC)
https://www.homewizard.com/fr-be/shop/compteur-wi-fi-kwh-mid-3-phases/

Merci.

Salut,

Qu'est-ce que tu veux mesurer au juste?
Le modèle que tu montres semble mesurer uniquement la consommation énergétique (il ne donne sans doute pas accès à la tension, au courant ni à la fréquence et probablement pas la puissance).

Quand tu dis que tu veux l'installer en amont de ta PAC, c'est une PAC qui se branche en monophasé ?
Et si oui, tu comptes installer le compteur d'énergie sur le circuit monophasé de la PAC ou sur le circuit triphasé de ton boîtier à fusible principal ?

En ce qui concerne le branchement sur du triphasé sans neutre, c'est normalement possible vu que l'on trouve les symboles d'une installation monophasé, tri à 3 fils (sans neutre) et tri à 4 fils (avec neutre).

Cependant, méfiance, le modèle présenté semble être un modèle développé spécialement par Eastron pour Homewizard et on ne trouve aucune documentation sur le site de Eastron pour ce modèle WiFi.

D'autre part, Homewizard indique qu'il est possible d'utiliser ce modèle dans une installation sans neutre (3P3W) mais suggère de les contacter dans ce cas là: Voir ici en toute fin d'article.

Mon avis, c'est que le compteur communiquant donne sans doute plus d'information que ce compteur d'énergie home wizard.
 
  • #519
Merci pour ce retour fourni :-)

J'ai déjà le P1 meter sur mon double flux.
J'ai également une vue précise de ce que je produit via mes deux onduleurs
J'aurais souhaité avoir une vue sur mon "plus gros consommateur".
Le but était (mais mes compétences et ma compréhension de l'électricité sont basiques) de brancher ce Homewizard en tête du tableau secondaire dédié à la PAC, afin de savoir exactement ce que tout l'ensemble de mon installation Stiebel prélève).

J'ai ceci (entre autre) via le modbus du module ISG de la PAC, mais je ne sais pas si c'est vraiment précis et fiable...
upload_2023-5-12_7-50-15.png
 
  • #520
En parallèle à mon besoin de monitorer la conso de ma PAC (message précédent), j'ai deux nouvelles questions décorrélées.

  1. Les coupures de courant générales sont monnaie courante ici en cette période.
    Le RPI reboot automatiquement, mais je remarque que 90% des capteurs sont indisponibles.
    Il faut alors faire un reboot système.
    Comment pourrais-je automatiser cela ?

  2. J'ai deux VELUX dans le grenier (aménagé = pièce que vie), mais nous n'y allons pas tous les jours.
    J'aimerais éviter le bête oubli de VELUX ouvert + pluie :-)
    Je cherche donc le bon plan en capteurs/contacts discrets.
    J'ai déjà du Z-wave, mais l'antenne est en USB sur le RPI dans la cave (-1) et le grenier est donc un équivalent +2...
Merci
 

Sujet semblables

Réponses
4
Affichages
354
Phothom
Réponses
9
Affichages
2K
jcoenen
Réponses
40
Affichages
2K
Fgalette
Réponses
9
Affichages
1K
Michadt

Nos articles

On a aimé dans le forum

Retour
Haut