MyElectricalData - Vos données Linky chez vous :)

Hello par ici !
Merci pour ce chouette outil.
Simple question : est-il normal que Home Assistant ne puisse pas exploiter directement le sensor remonté par MED dans le TdB « Energie » ?

De mon côté il ne remonte pas dans la liste des entités utilisables pour ce tableau de bord.

Merci !

J’aimerais bien bosser sur le sujet sauf que…

Et la Sandbox est arrêté la nuit !

Bref, désolé mais je peut rien debug pour l’instant :confused:

3 « J'aime »

@M4dm4rtig4n

tu y es pour rien sur ce coup !

Le jour ou Enedis bosseront pour de vrai , les poules auront des dents
t’ inquiète pas va :grinning:

1 « J'aime »

Bonjour à tous,

Pensez-vous qu’il soit possible d’utiliser le dashboard de MyElectricalData avec le module Zlink Lixee ?

Merci pour votre retour

J’essaye de comprendre l’exploitation des infos. En regardant le json du dashboard, on peut voir que des données « year » et « month » sont récupérées dans la base InfluxDB. Sauriez-vous svp m’indiquer comment ces données sont enregistrées ?

Bonjour à tous,
Ce matin j’ai cliqué un peu trop vite sur les mises à jour et hop enedisgateway2mqtt mis à jour de 0.77 à 0.8.10… Du coup, dans l’addon qui s’appelle désormais MyElectricalData, j’ai le message d’erreur suivant:


2022-12-13 07:10:00.142 -  WARNING :   - 2021-03 => 677.93kW
2022-12-13 07:10:00.601 -  WARNING :   - 2021-04 => 517.41kW
2022-12-13 07:10:00.897 -  WARNING :   - 2021-05 => 535.23kW
2022-12-13 07:10:01.208 -  WARNING :   - 2021-06 => 592.03kW
2022-12-13 07:10:01.462 -  WARNING :   - 2021-07 => 572.22kW
2022-12-13 07:10:01.753 -  WARNING :   - 2021-08 => 743.8kW
2022-12-13 07:10:02.060 -  WARNING :   - 2021-09 => 674.66kW
2022-12-13 07:10:02.503 -  WARNING :   - 2021-10 => 599.27kW
2022-12-13 07:10:02.776 -  WARNING :   - 2021-11 => 518.04kW
2022-12-13 07:10:03.062 -  WARNING :   - 2021-12 => 445.21kW
2022-12-13 07:10:03.306 -  WARNING :   - 2022-01 => 653.49kW
2022-12-13 07:10:03.564 -  WARNING :   - 2022-02 => 969.45kW
2022-12-13 07:10:03.837 -  WARNING :   - 2022-03 => 584.71kW
2022-12-13 07:10:04.145 -  WARNING :   - 2022-04 => 392.62kW
2022-12-13 07:10:04.447 -  WARNING :   - 2022-05 => 230.16kW
2022-12-13 07:10:04.745 -  WARNING :   - 2022-06 => 189.82kW
2022-12-13 07:10:05.236 -  WARNING :   - 2022-07 => 187.94kW
2022-12-13 07:10:05.547 -  WARNING :   - 2022-08 => 375.99kW
2022-12-13 07:10:05.847 -  WARNING :   - 2022-09 => 349.84kW
2022-12-13 07:10:06.147 -  WARNING :   - 2022-10 => 267.82kW
2022-12-13 07:10:06.464 -  WARNING :   - 2022-11 => 231.04kW
2022-12-13 07:10:06.757 -  WARNING :   - 2022-12 => 346.34kW
2022-12-13 07:10:08.804 -  WARNING :  Migration des "production_daily"
2022-12-13 07:10:08.812 -  WARNING :  Migration des "production_detail"
2022-12-13 07:10:08.832 -     INFO :  Configure Databases
/app/models/database.py:114: SAWarning: Column 'consumption_daily.id' is marked as a member of the primary key for table 'consumption_daily', but has no Python-side or server-side default generator indicated, nor does it indicate 'autoincrement=True' or 'nullable=True', and no explicit value is passed.  Primary key columns typically may not store NULL.
  day = self.session.scalars(query).one_or_none()
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1900, in _execute_context
    self.dialect.do_execute(
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute
    cursor.execute(statement, parameters)
sqlite3.IntegrityError: NOT NULL constraint failed: consumption_daily.id
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/app/main.py", line 9, in <module>
    from models.ajax import Ajax
  File "/app/models/ajax.py", line 3, in <module>
    from models.jobs import Job
  File "/app/models/jobs.py", line 6, in <module>
    from models.database import Database
  File "/app/models/database.py", line 1141, in <module>
    Database().init_database()
  File "/app/models/database.py", line 114, in init_database
    day = self.session.scalars(query).one_or_none()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1771, in scalars
    return self.execute(
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1660, in execute
    ) = compile_state_cls.orm_pre_session_exec(
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/context.py", line 312, in orm_pre_session_exec
    session._autoflush()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2257, in _autoflush
    util.raise_(e, with_traceback=sys.exc_info()[2])
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 208, in raise_
    raise exception
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2246, in _autoflush
    self.flush()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3386, in flush
    self._flush(objects)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3526, in _flush
    transaction.rollback(_capture_exception=True)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
    compat.raise_(
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 208, in raise_
    raise exception
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3486, in _flush
    flush_context.execute()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 456, in execute
    rec.execute(self)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 630, in execute
    util.preloaded.orm_persistence.save_obj(
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 245, in save_obj
    _emit_insert_statements(
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 1238, in _emit_insert_statements
    result = connection._execute_20(
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1705, in _execute_20
    return meth(self, args_10style, kwargs_10style, execution_options)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 333, in _execute_on_connection
    return connection._execute_clauseelement(
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1572, in _execute_clauseelement
    ret = self._execute_context(
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1943, in _execute_context
    self._handle_dbapi_exception(
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2124, in _handle_dbapi_exception
    util.raise_(
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 208, in raise_
    raise exception
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1900, in _execute_context
    self.dialect.do_execute(
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.IntegrityError: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely)
(sqlite3.IntegrityError) NOT NULL constraint failed: consumption_daily.id
[SQL: INSERT INTO consumption_daily (usage_point_id, date, value, blacklist, fail_count) VALUES (?, ?, ?, ?, ?)]
[parameters: ('24390738009939', '2019-01-15 00:00:00.000000', 0, 0, 0)]
(Background on this error at: https://sqlalche.me/e/14/gkpj)
[07:10:11] FATAL: The app has crashed. Are you sure you entered the correct config options?

Je crois comprendre que la migration s’est correctement réalisée mais avant de faire une grosse con…rie, je préfère vous demander la conduite à tenir sachant que du coup je n’ai pas fait de sauvegarde de la base de données avant cette mise à jour (clic trop rapide!!)
bizarrement dans le répertoire /local/config/enedisgateway2mqtt je n’ai pas de enedisgateway.db.migrate mais toujours le fichier initial. Je ne sais pas où trouver ce fameux fichier cache.db non plus.
Du coup je me demande si la migration s’est bien déroulée… bref je pensais que les deux pouvaient tourner indépendamment mais visiblement non. Donc là je suis un peu pommé…
Je n’ai pas encore fait une demande de consentement pour la nouvelle version tant que je ne suis pas sure de l’odre des actions à réaliser au vue de mon cas particulier.
Quelqu’un pourrait il m’aiguiller sur les différentes étapes ? Merci

Bon bonne nouvelle, normalement le parcours de consentement est de nouveau opérationnel ! :fireworks:

Je viens de faire quelques tests, et le renouvellement ce passe correctement après expiration du token.

@phil, il y a un soucis avec l’addons sur HAOS, il faut que je croise Alexbelgium à ce sujet.
L’addon crée des symlink & co et n’est pas forcement compatible avec mon fonctionnement.

3 « J'aime »

J’ai crée une issue chez Alexbelgium à ce sujet :

Bonjour,
Tout d’abord merci pour le travail de fou que vous faites.

J’ai installé l’add-on, passé la procédure de consentement et j’essaye de démarrer myElectricalData.
J’avais cru comprendre que cet add-on n’était plus dépendant de MQTT mais j’ai le message d’erreur suivant dans le log:

2022-12-13 17:21:49.533 -    ERROR : 
2022-12-13 17:21:49.533 -    ERROR :  Echec de la récupération des données.
2022-12-13 17:21:49.535 -    ERROR :   => no measure found for this usage point
2022-12-13 17:21:49.535 -    ERROR :   => 2020-12-14 -> 2020-12-15
2022-12-13 17:21:49.536 -    ERROR : 
2022-12-13 17:21:49.536 -    ERROR : ═══════════════════════════════════════════════════════════════════════════════════════════════════════════════
2022-12-13 17:21:49.542 - CRITICAL :  L'export Home Assistant est dépendant de MQTT, merci de configurer MQTT avant d'exporter vos données dans Home Assistant
2022-12-13 17:21:49.544 -    ERROR : Job "fetch_data_boot (trigger: date[2022-12-13 17:19:30 CET], next run at: 2022-12-13 17:19:30 CET)" raised an exception
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/apscheduler/executors/base.py", line 125, in run_job
    retval = job.func(*job.args, **job.kwargs)
  File "/app/models/jobs.py", line 157, in job_import_data
    app.LOG.critical("L'export Home Assistant est dépendant de MQTT, "
  File "/app/models/log.py", line 97, in critical
    sys.exit()
SystemExit

Est-ce qu’il faut configurer la section mqtt du fichier config.yaml ?

mqtt:
  client_id: myelectricaldata
  enable: false
  host: X.X.X.X
  password: ''
  port: 1883
  prefix: myelectricaldata
  qos: 0
  retain: true
  username: ''

Je pense que cette texte suffice … donc OUI…j’attend que t’a un serveur MQTT

mqtt:
client_id: myelectricaldata
enable: true
hostname: X.X.X.X
password: ‹  ›
port: 1883
prefix: myelectricaldata
qos: 0
retain: true
username: ‹  ›

tjrs meme logs

les erreurs donnent d’info: indentation
copie ton config.yaml stp

le voici`cycle: 14400
debug: true
wipe_influxdb: false
home_assistant:
card_myenedis: true
discovery_prefix: homeassistant
enable: true
influxdb:
enable: true
hostname: 192.168.1.20
port: 8086
token: myelectricaldata
org: myelectricaldata
bucket: myelectricaldata
method: asynchronous

mqtt:
client_id: myelectricaldata
enable: true
hostname: 192.168.1.20
password: C
port: 1883
prefix: myelectricaldata
qos: 0
retain: true
username: D

myelectricaldata :
« 16137 »:
enable: ‹ true ›
token: « yMY9IjDZMj9PD……………DrXx_QZEaR2px-picWo= »
name: « Maison »
addresses: ‹ true ›
cache: ‹ true ›
consumption: ‹ true ›
consumption_detail: ‹ true ›
consumption_price_base: ‹ 0.145907 ›
consumption_price_hc: ‹ 0.147 ›
consumption_price_hp: ‹ 0.18 ›
offpeak_hours_0: 2H00-8H00;13H30-15H30
offpeak_hours_1: 2H00-8H00;13H30-15H30
offpeak_hours_2: 2H00-8H00;13H30-15H30
offpeak_hours_3: 2H00-8H00;13H30-15H30
offpeak_hours_4: 2H00-8H00;13H30-15H30
offpeak_hours_5: 2H00-8H00;13H30-15H30
offpeak_hours_6: 2H00-8H00;13H30-15H30
plan: HC/HP
production: ‹ TRUE ›
production_detail: ‹ false ›
production_price: ‹ 0.10 ›
refresh_addresse: ‹ false ›
refresh_contract: ‹ false ›`

Donc, je ne sais pas si t’as utiliser le format
image

mais c’est ABSOLUEMENT nécessaire de respecter les indentations.
example copié de si-dessus

cycle: 14400
debug: false
wipe_cache: true
wipe_influxdb: false
home_assistant:
  enable: true
  discovery: true
  discovery_prefix: homeassistant
  card_myenedis: true
influxdb:
  enable: false
  hostname: 192.168.X.X
  port: 8086
  token: XXXXXX:XXXXXXXX
  org: "-"
  bucket: myelectricaldata
  method: asynchronous
mqtt:
  enable: true
  hostname: core-mosquitto
  port: 1883
  username: XXXXX
  password: XXXXXX
  prefix: myelectricaldata
  client_id: myelectricaldata
  retain: true
  qos: 0
myelectricaldata:
  2XXXXXXXXXX:
    enable: true
    token: XXXXXXX
    name: Maison
    addresses: true
    cache: true
    consumption: true
    consumption_detail: true
    consumption_detail_max_date: ''
    consumption_max_date: ''
    consumption_price_base: 0
    consumption_price_hc: 0.1470
    consumption_price_hp: 0.1841
    offpeak_hours_0: 23H30-7H30
    offpeak_hours_1: 23H30-7H30
    offpeak_hours_2: 23H30-7H30
    offpeak_hours_3: 23H30-7H30
    offpeak_hours_4: 23H30-7H30
    offpeak_hours_5: 23H30-7H30
    offpeak_hours_6: 23H30-7H30
    plan: HC/HP
#    production: false
#    production_detail: false
#    production_detail_max_date: ''
#    production_max_date: ''
#    production_price: 0
    refresh_addresse: false
    refresh_contract: false
cycle: 14400
debug: true
wipe_influxdb: false
home_assistant:
  card_myenedis: true
  discovery_prefix: homeassistant
  enable: true
influxdb:
  enable: true
  hostname: 192.168.1.20
  port: 8086
  token: myelectricaldata
  org: myelectricaldata
  bucket: myelectricaldata
  method: asynchronous    
  
mqtt:
client_id: myelectricaldata
enable: true
hostname: 192.168.1.20
password: C
port: 1883
prefix: myelectricaldata
qos: 0
retain: true
username: D

myelectricaldata : 
   "161306":
    enable: 'true'
    token: "yMY9IjDZMj9PD……………DrXx_QZEaR2px-picWo="
    name: "Maison"
    addresses: 'true'
    cache: 'true'
    consumption: 'true'
    consumption_detail: 'true'
    consumption_price_base: '0.145907'
    consumption_price_hc: '0.147'
    consumption_price_hp: '0.18'
    offpeak_hours_0: 2H00-8H00;13H30-15H30               
    offpeak_hours_1: 2H00-8H00;13H30-15H30            
    offpeak_hours_2: 2H00-8H00;13H30-15H30               
    offpeak_hours_3: 2H00-8H00;13H30-15H30               
    offpeak_hours_4: 2H00-8H00;13H30-15H30              
    offpeak_hours_5: 2H00-8H00;13H30-15H30   
    offpeak_hours_6: 2H00-8H00;13H30-15H30   
    plan: HC/HP
    production: 'TRUE'
    production_detail: 'false'
    production_price: '0.10'
    refresh_addresse: 'false'
    refresh_contract: 'false'

donc…pas bon avec les indentations

non plus…soyer exacte!

Comprends pas ??? ce que vous dites

mqtt:
client_id: myelectricaldata
enable: true
hostname: X.X.X.X
password: ‹  ›
port: 1883
prefix: myelectricaldata
qos: 0
retain: true
username: ‹  ›