Enedisgateway2mqtt

J’ai des doutes là-dessus …

Ces variables sont bien répertoriées pourtant, par défaut à False mais je supose que du coup ça nous laisse la possibilité de les passer à True si on le souhaite… Quoi qu’il en soit j’ai testé malgré tout en les passant une par une à False et même toutes les trois, avec le même « name client is not defined ».
J’ai même supprimé l’image docker et l’ai retéléchargée au cas où…

Tant qu’à me prendre la tête sur un truc pour lequel je viens de dire que je ne me prendrais plus la tête, je viens de tester sur une autre machine et là, ça fonctionne.
Celle où ça fonctionne est sous Debian Bullseye AmD64, tandis que là où ça ne fonctionne pas c’est un Odroid N2+ sous Armbian Buster.
Peut-être un problème avec l’architecture aarch64 ?

Cela dit ça fonctionne, jusqu’à cette erreur :

Traceback (most recent call last):
  File "/app/main.py", line 631, in <module>
    run()
  File "/app/main.py", line 540, in run
    my_enedis_data = myenedis.myEnedis(cur, con, client, last_activation_date, offpeak_hours)
  File "/app/myenedis.py", line 379, in myEnedis
    attributes[f'offpeak_hours_enedis'] = query_result[1]
TypeError: 'NoneType' object is not subscriptable

ça semble être au moment de la génération de l’entity pour la card linky.

Je ne crois pas car je suis sur cette archi et cela fonctionne. Et dans le container il ne devrait pas y avoir de pb de dépendances.

Tu as donc maintenant la même erreur que mentionné par Balooforever.

Attendons le boss ^^

Les docker-compose ou autre sont des exemples, ils ne faut pas forcément définir toutes les variables, juste celle dont vous avez besoin.
Pour le OFFPEAK_HOURS, inutile de le définir normalement c’est juste pour surcharger les valeurs par défaut que je récupère en retour des APIs.

Traceback (most recent call last):
File « /app/main.py », line 631, in
)
File « /app/main.py », line 416, in run
ha_discovery_consumption = day.getDaily(cur, con, client, « consumption », last_activation_date)
File « /app/daily.py », line 109, in getDaily
if key in lastData:
UnboundLocalError: local variable ‹ lastData › referenced before assignment

J’ai ce genre d’erreur de mon côté actuellement.

Forcer ces valeurs à « True » va augmenter le nombre de call API à chaque appel (3 par appel) et donc à éviter.
Elles sont uniquement la pour forcer le refresh du cache en cas de changement d’adresse, de contrat ou autre.

OFFPEAK_HOURS permet de forcer un horaires sur les HC/HP, de base je vais récupérer l’information dans votre contrat.
Si vous ne désirez pas les forcer, et prendre les valeurs de base, il vous faut les retirer complétement (docker-compose y comprit)

Et le format est bien renseigner dans la doc :

Tu peut me donner ta config sur les variables d’env stp ?

Si besoin, je suis disponible sur Discord pour débugger peut être plus facilement :wink:

  ACCESS_TOKEN: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  PDL: "xxxxxxxxxxxxxx"
  MQTT_HOST: "x.x.x.x"
  MQTT_PORT: "1883"
  MQTT_PREFIX: "enedis_gateway"
  MQTT_CLIENT_ID: "enedis_gateway"
  MQTT_USERNAME: 'xxx'
  MQTT_PASSWORD: 'xxx'
  RETAIN: "True"
  QOS: 0
  GET_CONSUMPTION: "True"
  GET_PRODUCTION: "False"
  HA_AUTODISCOVERY: "True"
  HA_AUTODISCOVERY_PREFIX: 'homeassistant'
  CYCLE: 86400
  OFFPEAK_HOURS: ""
  CONSUMPTION_PRICE_BASE: 0.xxxx
  CONSUMPTION_PRICE_HC: 0.xxxx
  CONSUMPTION_PRICE_HP: 0.xxxx
  REFRESH_CONTRACT: "False" 
  REFRESH_ADDRESSES: "False"  
  WIPE_CACHE: "False"   
  DEBUG: "False"   
  CARD_MYENEDIS: "True"   
  CURRENT_PLAN: "HP/HC"   
  INFLUXDB_ENABLE: "False"
  INFLUXDB_HOST: ""
  INFLUXDB_TOKEN: ""
  INFLUXDB_ORG: ""
  INFLUXDB_BUCKET: ""

Oui, le format est renseigné dans la doc mais une petite précision serait de mise car vu que mes heures creuses successives sont à cheval sur deux jours je ne suis pas certain de la façon don je dois les renseigner.
22h36-23h59;00h00-06h36 ?
22h36-24h00;00h00-06h36 ?
22h36-00h00;00h00-06h36 ?
Si elles étaient de 0h07 à 06h07 et de 14h32 à 16h32 je n’aurais absolument aucun déficite de la compréhension :wink:

Je géré directement dans le code le saut de jour, donc si tu as 22h30-06h00 tu met 22h30-06h00 tt simplement.

Après je rappelle qu’il n’est pas nécessaire de définir cette valeur !
Je récupère déjà les seuil HC/HP via les API via la demande de contrat.

Cette option est juste la pour surcharger une valeur par défaut.

Bonsoir,
Merci @M4dm4rtig4n pour ton travail. Est ce qu’il existe un addon supervisor pour EnedisGateway2MQTT ?

Pas encore, c’est dans ma todo :slight_smile:

1 « J'aime »

Hello
J’ai enfin progressé sur mes docker, j’ai mis un mqtt comme indiqué, j’ai mis un telegraf / influxdb / grafana
J’ai donc mis en place ton container mais il me semble que j’ai la même erreur que les personnes du dessus :

2021-10-28 19:29:54.366965 - INFO  : Connected to MQTT Broker!

2021-10-28 19:29:54.369196 - INFO  : InfluxDB : Connection success

2021-10-28 19:29:54.369303 - INFO  : Check database

2021-10-28 19:29:54.369378 - INFO  :  => Connect to SQLite Database

2021-10-28 19:29:54.377596 - INFO  : Get contract :
2021-10-28 19:29:54.377684 - INFO  :  => Query API
Traceback (most recent call last):
  File "/app/main.py", line 631, in <module>


)

  File "/app/main.py", line 383, in run
    contract = cont.getContract(client, cur, con)
  File "/app/contract.py", line 41, in getContract
    contract = queryApi(url, headers, data)
  File "/app/contract.py", line 16, in queryApi
    contract = f.apiRequest(cur, con, type="POST", url=f"{url}", headers=headers, data=json.dumps(data))
  File "/app/function.py", line 99, in apiRequest
    query_result = json.loads(query_result[0][1])
IndexError: list index out of range

Voici mes variables :

ACCESS_TOKEN: "token_acces"
      PDL: "pdl"
      MQTT_HOST: "Mqtt"
      MQTT_PORT: "1883"
      MQTT_PREFIX: "enedis_gateway"
      MQTT_CLIENT_ID: "enedis_gateway"
      MQTT_USERNAME: 'user'
      MQTT_PASSWORD: 'pwd'
      RETAIN: "True"
      QOS: 0
      GET_CONSUMPTION: "True"
      GET_PRODUCTION: "False"
      HA_AUTODISCOVERY: "False"
      HA_AUTODISCOVERY_PREFIX: 'homeassistant'
      CONSUMPTION_PRICE_BASE: 0.091
      CONSUMPTION_PRICE_HC: 0
      CONSUMPTION_PRICE_HP: 0 
      CARD_MYENEDIS: "False"
      DEBUG: "true"
      CURRENT_PLAN: "BASE"
      INFLUXDB_ENABLE: "True"
      INFLUXDB_HOST: "InfluxDB"
      INFLUXDB_PORT: "8086"
      INFLUXDB_TOKEN : "Tokeinfdb"
      INFLUXDB_ORG : "Maison"
      INFLUXDB_BUCKET : "InfData"

Hello,
Tu as mis la version dev du docker enedisgateway2mqtt ? Me semble que cela fonctionne avec la dév pour l’instant.

je viens de tester avec la m4dm4rtig4n/enedisgateway2mqtt:latest-dev mais cela semble être le même message
je verrai ça après avoir réussi a réactiver la Collecte de la consommation horaire, sur le site d’enedis ça fait une semaine que j’essaye d’activer l’option et il ne se passe rien :frowning:

Tu doit avoir une information qui est remonté dans ton contrat qui a priori pose soucis, pour debugger plus facilement et afin de diagnostiquer et traiter le cas, serait tu m’envoyer en privé ton pdl et ton token stp ?

Tu pourras le renouveller en refaisant une demande de consentement.

1 « J'aime »

Pour information l’addon HassOS est disponble :
https://github.com/alexbelgium/hassio-addons/tree/master/enedisGateway2MQTT

Merci à @foXaCe qui à fait la demande sur le forum officiel et un contributeur c’est occupé de le créer :slight_smile:

2 « J'aime »

Le lien ne fonctionne pas