Oui voir post 219 de jpsy.
Effectivement je ne sais pas si ce pr est passé
https://forum.hacf.fr/t/teleinfo-via-wifi/1077/224
Le CR a été transféré dans
J’ignore ou il en est
Phil
Oui voir post 219 de jpsy.
Effectivement je ne sais pas si ce pr est passé
https://forum.hacf.fr/t/teleinfo-via-wifi/1077/224
Le CR a été transféré dans
J’ignore ou il en est
Phil
J’avais testé la branche dev aussi, ce n’était pas mieux, du coup, je vais tenter ce soir un custom_components avec le code du github de @Jpsy.
Merci pour l’aide je vous tiens au courant !
On parle bien de la même chose selon les notes de versions ça n’a pas encore été intégré en stable et après vérification, la branche « release » n’a pas les changements, dernier changement sur teleinfo le premier août.
J’avance la 2021.10 mais apparemment une 2021.9.4 est prévue…
Bonjour à tous
Bon j’ai pris mon courage à deux mains et je me suis lancé dans l’aventure ESPHOME !
Après moult découverte et autres divers achats (Le module pour flasher), j’ai réussi à flasher mon module avec ESPHOME comme un grand et tout fonctionne parfaitement.
J’ai même ajouté l’info HP/HC me permettant de lancer des automatisations sous HA si d’autres sont intéressé
text_sensor:
- platform: teleinfo
tag_name: "PTEC"
id: ptec
name: "Grid tariff"
icon: mdi:information
teleinfo_id: myteleinfo
# - platform: teleinfo
# tag_name: "ADCO"
# name: "Grid Linky Address"
# teleinfo_id: myteleinfo
# - platform: teleinfo
# tag_name: "ISOUSC"
# name: "Grid subscribed current"
# teleinfo_id: myteleinfo
# - platform: teleinfo
# tag_name: "IMAX"
# name: "Grid max current"
# teleinfo_id: myteleinfo
Par contre, vu mon niveau pour le moment… Il y a bien une chose que j’aimerai faire mais j’aurai besoin d’aide des plus expérimentés d’entre-vous !
J’aimerai que l’écran Oled soit éteint/off par défaut lors du reboot.
J’ai bien essayé de créer mon propre switch mais il me manque surement une « logique » car je n’arrive pas à le lier à l’id oled… Bref je n’y arrive pas.
Help…
C’était plus facile que je ne le pensais… Il existe une fonction « on_boot »
Pour les curieux, voici mon ficher de configuration :
# ESPHome configuration file for teleinfokit module https://342apps.net/module-teleinfokit/
substitutions:
# customize name here
device_name: teleinfokit
upper_devicename: Teleinfokit
sensor_name: Grid
esphome:
name: $device_name
platform: ESP8266
board: esp01_1m
# Turn off oled on boot
on_boot:
priority: 250
then:
- lambda: id(oled).turn_off();
# Enable logging
logger:
baud_rate: 0 # disable logging via UART, help to avoid numerous crash with ESP_LOGD
level: INFO # INFO for less log, put DEBUG to view all the linky's "étiquettes" received in the logs
esp8266_store_log_strings_in_flash: False # :doc:`recommanded for ESP8266 </components/sensor/custom>`
# Enable Home Assistant API
api:
password: !secret api_pass
ota:
password: !secret ota_pass
id: my_ota
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_key
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: $upper_devicename Fallback Hotspot
password: !secret ap_key
captive_portal:
web_server:
port: 80
auth:
username: admin
password: !secret ap_key
uart:
id: uart_bus
rx_pin: GPIO3
baud_rate: 1200
parity: EVEN
data_bits: 7
teleinfo:
id: myteleinfo
update_interval: 30s
historical_mode: true
sensor:
# Teleinfo sensors
- platform: teleinfo
tag_name: "HCHC"
id: hchc
name: $sensor_name energy offpeak
unit_of_measurement: "kWh"
accuracy_decimals: 3
icon: mdi:transmission-tower
device_class: energy
state_class: total_increasing
teleinfo_id: myteleinfo
filters:
- multiply: 0.001
- platform: teleinfo
tag_name: "HCHP"
id: hchp
name: $sensor_name energy peak
unit_of_measurement: "kWh"
accuracy_decimals: 3
icon: mdi:transmission-tower
device_class: energy
state_class: total_increasing
teleinfo_id: myteleinfo
filters:
- multiply: 0.001
- platform: teleinfo
tag_name: "PAPP"
id: papp
name: $sensor_name power
unit_of_measurement: "VA"
state_class: "measurement"
icon: mdi:flash
teleinfo_id: myteleinfo
- platform: teleinfo
tag_name: "IINST"
id: iinst
name: $sensor_name current
unit_of_measurement: "A"
device_class: current
state_class: "measurement"
icon: mdi:flash
teleinfo_id: myteleinfo
# Additional sensors
- platform: wifi_signal
name: $upper_devicename wifi signal
update_interval: 60s
disabled_by_default: true
- platform: uptime
name: $upper_devicename uptime
id: uptime_sensor
update_interval: 60s
disabled_by_default: true
on_raw_value:
then:
- text_sensor.template.publish:
id: uptime_human
state: !lambda |-
int seconds = round(id(uptime_sensor).raw_state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
return (
(days ? String(days) + "d " : "") +
(hours ? String(hours) + "h " : "") +
(minutes ? String(minutes) + "m " : "") +
(String(seconds) + "s")
).c_str();
text_sensor:
# Teleinfo sensors
- platform: teleinfo
tag_name: "PTEC"
id: ptec
name: $sensor_name tariff
icon: mdi:information
teleinfo_id: myteleinfo
- platform: teleinfo
tag_name: "ADCO"
name: $sensor_name linky address
disabled_by_default: true
teleinfo_id: myteleinfo
- platform: teleinfo
tag_name: "ISOUSC"
name: $sensor_name subscribed current
disabled_by_default: true
teleinfo_id: myteleinfo
- platform: teleinfo
tag_name: "IMAX"
name: $sensor_name max current
disabled_by_default: true
teleinfo_id: myteleinfo
# Additional sensors
- platform: template
name: $upper_devicename uptime human readable
disabled_by_default: true
id: uptime_human
icon: mdi:clock-start
- platform: wifi_info
ip_address:
name: $upper_devicename IP address
disabled_by_default: true
ssid:
name: $upper_devicename connected SSID
disabled_by_default: true
bssid:
name: $upper_devicename connected BSSID
disabled_by_default: true
mac_address:
name: $upper_devicename mac wifi address
disabled_by_default: true
switch:
# Restart button
- platform: restart
name: $upper_devicename Reboot
disabled_by_default: true
i2c:
sda: GPIO0
scl: GPIO2
font:
- file: "arial.ttf"
id: arial_font
size: 16
display:
- platform: ssd1306_i2c
model: "SSD1306 128x32"
id: oled
rotation: 180°
address: 0x3C
pages:
- id: page1
lambda: |-
it.printf(0, 0, id(arial_font), "Power: %.0f VA", id(papp).state);
- id: page2
lambda: |-
it.printf(0, 0, id(arial_font), "Current: %.0f A", id(iinst).state);
- id: page3
lambda: |-
it.printf(0, 0, id(arial_font), "HP: %.0f", id(hchp).raw_state);
- id: page4
lambda: |-
it.printf(0, 0, id(arial_font), "HC: %.0f", id(hchc).raw_state);
- id: page5
lambda: |-
it.printf(0, 0, id(arial_font), "Tariff: %s", id(ptec).state.c_str());
interval:
- interval: 5s
then:
- display.page.show_next: oled
- component.update: oled
binary_sensor:
- platform: gpio
pin:
number: GPIO1
mode: INPUT_PULLUP
inverted: true
name: teleinfokit_switch
internal: true
on_click:
min_length: 50ms
max_length: 350ms
then:
- lambda: if (id(oled).is_on()) id(oled).turn_off(); else id(oled).turn_on();
Mes ajouts par rapport à la version de @NicoP4 :
bonjour
je suis en esp home avec ce merveilleux module
j’avais un souci avec les graphiques.
juste sur le site @NicoP4 utilise sensor.puissance_consommee
alors que sur le flash d’esphome c’est sensor.puissance_actuelle
puis
sensor.index_heure_pleine
devient sensor.index_heures_pleines
avec des 's'
voila une fois tout cela remplacés c’est nickel
stephane
C’est confirmé, le correctif pour les timestamp sera bien pour la version 2021.10 qui est en ce moment en beta.
Hello je suis revenu en mode historique et le module remarche très bien, je pense que c’est un problème hardware car j’ai testé toute les branches et le custom_components mais je n’avais que des données partielles et pas logiques. Pour mon usage l’historique me suffira de toute manière
Intéressant tout ça !
Pour l’écran je procrastinais ça depuis un moment, merci
ça pourrait être intéressant de le rendre configurable (avec une variable de substitution par exemple) comme ça on choisirait si on veut ou non ce comportement au moment de compiler le firmware.
Et le proposer par une pul request histoire que tout le monde en profite
Pour le serveur web par contre il faut savoir que ça consomme pas mal de ressources de l’ESP donc à mon avis il est à utiliser s’il y en a vraiment besoin.
EDIT : pour le sensor platform: uptime
si tu ne souhaites pas l’afficher tu peux même le mettre en internal
, comme ça l’uptime ne sera affiché que pour ton text sensor et le sensor de base ne servira que pour changer la valeur du text sensor.
tout ceci m’intéresse fortement (suivre ma conso en temps reel) mais cette solution n’est malheureusement pas faite pour moi, mon compteur linky est dans ma rue avec aucun moyen de tirer l’elec.
Connaissez vous un module qui se brancherait au linky pour remonter les info sur HA, du meme style que la clé de total Energy?
Bonjour à tous !
@KKox je suis curieux tu as demandé à changer le mode de téléinfo standard/historique à ton fournisseur ? Une simple demande leur suffit ? J’ai du mode historique chez moi et j’aurais bien voulu tester le mode standard pour le firmware (après je peux aussi leur demander ^^')
Vous vous êtes bien appropriés le firmware ESPHome c’est cool y’a de belles évolutions proposées dans tout ça
De mon coté j’essaie de trouver le temps de faire des évols sur mon firmware pour le rendre beaucoup plus générique aux modes historique, standard, triphasé, etc. un peu comme ESPHome, ça sera bien plus pratique.
J’avance doucement mais j’avance
@McFly a posté au sujet d’un projet qui te conviendrait mais je ne retrouve plus le post (après une recherche très sommaire) donc je t’invite à tenter un peu plus que moi
Voilà une façon (un peu tordue) de rendre l’écran éteint au démarrage configurable avec une variable de substitution
# ESPHome configuration file for teleinfokit module https://342apps.net/module-teleinfokit/
substitutions:
off_on_boot: 'false'
globals:
- id: oled_on_boot
type: bool
initial_value: ${off_on_boot}
esphome:
name: teleinfokit
platform: ESP8266
board: esp01_1m
# oled state on boot
on_boot:
priority: -100
then:
- if:
condition:
- lambda: return (id(oled_on_boot));
then:
- lambda: id(oled).turn_off();
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_key
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "TeleInfoKit"
password: !secret ap_key
captive_portal:
# Enable logging
logger:
baud_rate: 0 # disable logging via UART, help to avoid numerous crash with ESP_LOGD
level: NONE # INFO for less log, put DEBUG to view all the linky's "étiquettes" received in the logs
esp8266_store_log_strings_in_flash: False # :doc:`recommanded for ESP8266 </components/sensor/custom>`
# Enable Home Assistant API
api:
password: !secret api_pass
encryption:
key: !secret encryption_key
ota:
password: !secret ota_pass
id: my_ota
uart:
id: uart_bus
rx_pin: GPIO3
baud_rate: 1200
parity: EVEN
data_bits: 7
teleinfo:
id: myteleinfo
update_interval: 30s
historical_mode: true
sensor:
- platform: teleinfo
tag_name: "HCHC"
id: hchc
name: "Index Heures Creuses"
unit_of_measurement: "kWh"
accuracy_decimals: 3
icon: mdi:flash
device_class: energy
state_class: total_increasing
teleinfo_id: myteleinfo
filters:
- multiply: 0.001
- platform: teleinfo
tag_name: "HCHP"
id: hchp
name: "Index Heures Pleines"
unit_of_measurement: "kWh"
accuracy_decimals: 3
icon: mdi:flash
device_class: energy
state_class: total_increasing
teleinfo_id: myteleinfo
filters:
- multiply: 0.001
- platform: teleinfo
tag_name: "PAPP"
id: papp
name: "Puissance Actuelle"
unit_of_measurement: "VA"
state_class: "measurement"
icon: mdi:flash
teleinfo_id: myteleinfo
- platform: teleinfo
tag_name: "IINST"
id: iinst
name: "Intensité Actuelle"
unit_of_measurement: "A"
device_class: current
state_class: "measurement"
icon: mdi:flash
teleinfo_id: myteleinfo
i2c:
sda: GPIO0
scl: GPIO2
font:
- file: "arial.ttf"
id: arial_font
size: 16
display:
- platform: ssd1306_i2c
model: "SSD1306 128x32"
id: oled
rotation: 180°
address: 0x3C
pages:
- id: page1
lambda: |-
it.printf(0, 0, id(arial_font), "Conso: %.0f VA", id(papp).state);
- id: page2
lambda: |-
it.printf(0, 0, id(arial_font), "Intensite: %.0f A", id(iinst).state);
- id: page3
lambda: |-
it.printf(0, 0, id(arial_font), "HP: %.0f", id(hchp).raw_state);
- id: page4
lambda: |-
it.printf(0, 0, id(arial_font), "HC: %.0f", id(hchc).raw_state);
interval:
- interval: 5s
then:
- display.page.show_next: oled
- component.update: oled
binary_sensor:
- platform: gpio
pin:
number: GPIO1
mode: INPUT_PULLUP
inverted: True
name: teleinfokit_switch
internal: true
on_click:
min_length: 50ms
max_length: 350ms
then:
- lambda: if (id(oled).is_on()) id(oled).turn_off(); else id(oled).turn_on();
En suite, pour que l’écran soit off par défaut, pour compiler il faut faire esphome -s off_on_boot true compile teleinfokit.yml
Il y a sûrement plus propre mais de cette façon, si c’était intégré au firmware sur Github il n’y aurait pas à modifier le code, j’aime avoir le code exact du dépôt pour ne pas avoir à faire autre chose que git pull
en cas de mise à jour
Je suis chez Total un simple appel et il te change le mode , c’est gratuit. Après la première personne comprend pas il faut avoir le service technique !
Hello,
Je déconseille fortement la version 2021.10.0 en mode historique : on perd le PAPP.
Il semble qu’une valeur invalide soit récupérée et côté HA l’entité est toujours à « unknown ».
J’ai ouvert une issue : Teleinfo: PAPP get unknown value since 2021.10 · Issue #2585 · esphome/issues · GitHub
ICI peut-être?
Moi qui voulait que @Plouf34 exploite la recherche mais oui c’est bien ce à quoi je faisais référence.
Salut,
Je confirme, j’ai du downgrade en 2021.9.3
Bonjour,
je suis très intéressé par ce module. Nicolas semble faire un très bon travail ! On vient de remplacer mon compteur par un linky en mode standard pour la production photovoltaïque en revente totale, et mon ancien système ne fonctionne plus. Le but est de récupérer les informations TIC dans mon jeedom par MQTT.
@NicoP4 : comment puis-je te commander un module ? est-ce qu’il fonctionnera bien dans mon contexte ?
Nicolas confirmera mais dans le mode natif, il ne supporte pas le mode standard. Il faudra le passer en mode ESPHOME pour cela
Phil