@Pbranly, ils viennent d’arriver. Toujours intéressé ?
Oui . Conditions ?
Merci
Philippe
Hello @Sylvain_G ça m’intéresse aussi
Je dois retravailler mes infos qui arrive de linky, se sera l’occasion de revoir toute la gestion
@Comperta, tu as de la chance, il ne m’en reste plus qu’une.
Je n’ai plus de pin header de 19 pins (les grandes barrettes noires sur la photo :
Avec tout le reste ? ou juste le PCB ?
Ah bah suis preneur de tout le reste j’ai déjà une barrette donc je m’en sortirai.
Merci en tout cas @Sylvain_G
bonjour
pensez vous qu’il serais possible d’ajouter un panneau solaire et une batterie , pour que le système soit autonome .
chez moi le compteur est au fond du terrain sans prise de courant a coter .
@Florian_Martin, je ne suis pas assez caler en electronique pour répondre avec certitude mais en se basant sur ce projet d’anémomètre connecté, je pense que oui en modifiant la carte.
Je vais regardé le montage et essayé dans faire une version avec alimentation autonome.
Je n’ai jamais tenté mais je pense que c’est faisable, si ton panneau solaire est capable de fournir environ 3 ou 4 fois l’energie consommée par le module (pour tenir compte de la nuit, l’ensoleillement pas optimal, les pertes dans le chargeur de batterie, la batterie elle meme…) afin de recharger la batterie.
Sachant que la board va consommer environ 200mA (au max), une batterie de 4800mAh sous 5V devrait donc le faire fonctionner largement 24h.
Ton panneau solaire doit donc garder une batterie de ce calibre chargée.
Il y a une entrée analogique sur l’ESP32, tu pourrais t’en servir pour remonter le voltage de la batterie avec un peu d’adaptation
Bonjour à tous.
Merci pour tous vos conseils!
Jefinalise mon installation, et je suis à la recherche d’une solution afin d’avoir une comparaison de ma conso vs M-1 ou A-1.
Comment puis je faire?
Merci à vous
Hello. Avec l’intégration utility_meter
Bonjour à tous,
J’utilise la carte de @Sylvain_G et j’ai un soucis :
Pour le code de Esphome c’est celui de @Schmurtz présent sur le GitHub
Il ne voit rien provenant de mon compteur.
Une idée d’où cela peut provenir ?
edit ajout code esphome :
esphome:
name: teleinfo
platform: ESP32
board: nodemcu-32s
# déclaration du fichier source du composant custom
includes:
- teleinfo/src/my_tic_component.h
wifi:
networks:
- ssid: !secret wifi_ssid
password: !secret wifi_pass
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Teleinfo Fallback Hotspot"
password: !secret wifi_pass
domain: .local
power_save_mode: LIGHT
fast_connect: false
reboot_timeout: 15min
use_address: teleinfo.local
# Enable web server
web_server:
port: 80
captive_portal:
# Enable logging
logger:
baud_rate: 0 # disable logging via UART, help to avoid numerous crash with ESP_LOGD
level: DEBUG # INFO for less log, put DEBUG to view all the linky's "étiquettes" received in the logs
# Enable Home Assistant API
api:
reboot_timeout: 15min
port: 6053
password: ''
ota:
safe_mode: true
port: 3232
password: ''
# ajout du composant uart pour la communication série avec la sortie TIC du compteur
uart:
id: uart_bus
tx_pin: GPIO1
rx_pin: GPIO3
baud_rate: 1200
parity: EVEN
data_bits: 7
stop_bits: 1
# alias pour accéder l'instance du composant
substitutions:
name: "TIC"
init: 'MyTicComponent::instance(id(uart_bus));'
# déclaration du composant custom
custom_component:
- id: my_tic
lambda: |-
auto my_tic = ${init}
App.register_component(my_tic);
return {my_tic};
# déclaration des sensors numérique
# les sensors doivent être déclarés dans l'ordre de la fonction lambda
sensor:
- platform: wifi_signal
name: "WiFi Signal Sensor"
update_interval: 60s
unit_of_measurement: dB
accuracy_decimals: 0
force_update: false
icon: mdi:wifi
- platform: uptime
name: "Uptime Sensor"
update_interval: 60s
unit_of_measurement: s
accuracy_decimals: 0
force_update: false
icon: mdi:timer
- platform: custom
lambda: |-
auto my_tic = ${init}
return {my_tic->sensor_IINST, my_tic->sensor_ISOUSC, my_tic->sensor_PAPP, my_tic->sensor_BASE};
sensors:
- name: "Intensite"
unit_of_measurement: A
accuracy_decimals: 0
icon: mdi:power-plug
- name: "Intensite souscrite"
unit_of_measurement: A
accuracy_decimals: 0
icon: mdi:power-plug
- name: "Puissance"
unit_of_measurement: W
accuracy_decimals: 0
icon: mdi:power-plug
- name: "Index"
unit_of_measurement: kWh
accuracy_decimals: 0
icon: mdi:home-analytics
# déclaration du sensor texte, c'est juste l'identifiant du compteur
text_sensor:
- platform: custom
lambda: |-
auto my_tic = ${init}
return {my_tic->sensor_ADCO};
text_sensors:
name: "ADCO"
binary_sensor:
- platform: status
name: "NodeMCU Status"
# switch permettant de stopper les mises à jour
switch:
- platform: custom
lambda: |-
auto my_tic = ${init}
return{my_tic};
switches:
name: "Receive"
edit2 ajout des infos qui arrivent dans HA :
@Comperta, je n’ai pas encore pu tester mon PCB (il doit être dans un colis pour arriver chez moi) alors je peux juste te dire que je l’avais tester sur une breadboard avec le code suivant :
substitutions:
name: teleinfo
esphome:
name: ${name}
platform: ESP32
board: nodemcu-32s
wifi:
networks:
- ssid: !secret wifi_ssid
password: !secret wifi_pass
# Optional manual IP
manual_ip:
static_ip: !secret ip_teleinfo
gateway: !secret ip_gateway
subnet: !secret ip_subnet
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Teleinfo Fallback Hotspot"
password: !secret ap_pass
web_server:
port: 80
captive_portal:
# Enable logging
logger:
baud_rate: 0
# Enable Home Assistant API
api:
password: !secret ota_pass
ota:
password: !secret ota_pass
# ajout du composant uart pour la communication série avec la sortie TIC du compteur
# GPIO3 = Pin Rx sur ESP32-WROOM-32D
uart:
id: uart_bus
# tx_pin: GPIO1
rx_pin: GPIO3
baud_rate: 1200
parity: EVEN
data_bits: 7
stop_bits: 1
# déclaration des sensors numérique
# les sensors doivent être déclarés dans l'ordre de la fonction lambda
sensor:
- platform: wifi_signal
name: "WiFi Signal Sensor"
update_interval: 60s
unit_of_measurement: dB
accuracy_decimals: 0
force_update: false
icon: mdi:wifi
- platform: uptime
id: uptime_seconds
name: "Uptime Sensor"
update_interval: 60s
unit_of_measurement: s
accuracy_decimals: 0
force_update: false
icon: mdi:timer
- platform: teleinfo
tags:
- tag_name: "ADCO"
sensor:
name: "ADCO"
unit_of_measurement: ""
icon: mdi:eye
- tag_name: "BASE"
sensor:
name: "Index"
unit_of_measurement: "kWh"
icon: mdi:home-analytics
filters:
- multiply: 0.001
- tag_name: "BASE"
sensor:
name: "Index (Wh)"
unit_of_measurement: "Wh"
icon: mdi:home-analytics
- tag_name: "ISOUSC"
sensor:
name: "Intensité souscrite"
unit_of_measurement: "A"
icon: mdi:information
- tag_name: "IMAX"
sensor:
name: "Intensité maximale"
unit_of_measurement: "A"
icon: mdi:information
- tag_name: "IINST"
sensor:
name: "Intensité"
unit_of_measurement: "A"
icon: mdi:power-plug
- tag_name: "PAPP"
sensor:
name: "Puissance"
unit_of_measurement: "VA"
icon: mdi:flash
update_interval: 2s
historical_mode: true
binary_sensor:
- platform: status
name: "Status"
switch:
- platform: restart
name: "${name} reboot"
text_sensor:
- platform: template
name: ${name} - Uptime
update_interval: 60s
icon: mdi:clock-start
lambda: |-
int seconds = (id(uptime_seconds).state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
if ( days ) {
return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
} else if ( hours ) {
return { (String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
} else if ( minutes ) {
return { (String(minutes) +"m "+ String(seconds) +"s").c_str() };
} else {
return { (String(seconds) +"s").c_str() };
}
Essaie avec ce code, si tu ne reçois rien, c’est que ce n’est pas normal…
Tiens moi au courant surtout.
Dés que je reçois la mienne, je la testerais et t’enverrais le code exact que j’aurais mis.
Hello @Sylvain_G
Ça ne fonctionne pas , ça vient peut être de mon cablage avec linky.
Je vais tenter la modifi de @telenaze (remplacer la résistance 4,7 par une 10)
Je me demande si le soucis ne vient pas de la broche RX qui est directement reliée au +3.3v au lieu d’arriver entre Q1 et R3 :
à comparer avec le schéma de la page suivante :
ou encore celui-la :
j’ai bien envie de couper le circuit et de poser un fil pour tester
Effectivement, le RX ne doit pas être relié au 3v3 mais au niveau du transistor et R3.
il me semble que les fils 1 et 2 qui vont vers linky sont polarisés.
Essaie d’inverser le 1 et le 2
voila mon code au cas où…
esphome:
name: teleinfo_linky
platform: ESP8266
#board: esp01_1m
board: d1_mini
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: 192.168.1.101
gateway: 192.168.1.1
subnet: 255.255.255.0
time:
- platform: homeassistant
id: homeassistant_time
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 # recommanded for ESP8266 https://esphome.io/components/sensor/custom.html
# Enable Home Assistant API
api:
ota:
web_server:
port: 80
text_sensor:
- platform: version
name: Teleinfo ESPHome Version
- platform: wifi_info
ip_address:
name: Teleinfo IP
ssid:
name: Teleinfo SSID
bssid:
name: Teleinfo BSSID
- platform: template
name: Teleinfo_uptime
lambda: |-
int seconds = (id(uptime_sec).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 { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
icon: mdi:clock-start
update_interval: 113s
# ajout du composant uart pour la communication série avec la sortie TIC du compteur
# GPIO3 = Pin Rx sur Wemos D1
uart:
id: uart_bus
# tx_pin: GPIO15
rx_pin: GPIO3
baud_rate: 1200
parity: EVEN
data_bits: 7
#stop_bits: 1
# déclaration des sensors numérique
# les sensors doivent être déclarés dans l'ordre de la fonction lambda
sensor:
# Uptime sensor.
- platform: uptime
name: Teleinfo Up
id: uptime_sec
- platform: wifi_signal
name: "Teleinfo WiFi Signal"
update_interval: 60s
unit_of_measurement: dB
accuracy_decimals: 0
force_update: false
icon: mdi:wifi
- platform: teleinfo
tags:
- tag_name: "ADCO"
sensor:
name: "Adresse du compteur"
unit_of_measurement: ""
icon: mdi:eye
# - tag_name: "BASE"
# sensor:
# name: "Index option Base (Wh)"
# unit_of_measurement: "Wh"
# icon: mdi:home-analytics
# filters:
# - multiply: 0.001
- tag_name: "ISOUSC"
sensor:
name: "Intensité souscrite"
unit_of_measurement: "A"
icon: mdi:information
- tag_name: "IMAX"
sensor:
name: "Intensité maximale"
unit_of_measurement: "A"
icon: mdi:information
- tag_name: "IINST"
sensor:
name: "Intensité Instantanée"
unit_of_measurement: "A"
icon: mdi:power-plug
- tag_name: "PAPP"
sensor:
name: "Puissance apparente"
unit_of_measurement: "VA"
icon: mdi:flash
- tag_name: "HCHC"
sensor:
name: "Heures Creuses"
unit_of_measurement: "Wh"
icon: mdi:flash
id: heures_creuses
- tag_name: "HCHP"
sensor:
name: "Heures Pleines"
unit_of_measurement: "Wh"
icon: mdi:flash
id: heures_pleines
- tag_name: "HHPHC"
sensor:
name: "Horaire Heures Pleines/Heures Creuses"
unit_of_measurement: ""
icon: mdi:calendar-clock
update_interval: 2s
historical_mode: true
- platform: template
name: "heures creuses kwh"
id: heures_creuses_kwh
unit_of_measurement: "kWh"
accuracy_decimals: 2
update_interval: 2s
icon: mdi:flash
lambda: return (( (id(heures_creuses).state)/1000.0));
- platform: template
name: "heures pleines kwh"
id: heures_pleines_kwh
unit_of_measurement: "kWh"
accuracy_decimals: 2
update_interval: 2s
icon: mdi:flash
lambda: return (( (id(heures_pleines).state)/1000.0));
binary_sensor:
- platform: status
name: "Teleinfo Status"
switch:
- platform: restart
name: "Teleinfo reboot"
Quoi ??? je me serais gourré dans le schéma ? Normalement entre le RXD et le 3.3v tu as une résistance de 10K
J’ai essayé d’inverser mais rien à faire.
@Sylvain_G pour moi il y a un soucis oui rien de grave et c’est facilement rattrapable
Par contre de mon côté je ne pense pas que cela vienne du code.
Je vais tenter d’emprunter a une connaissance un module qui fonctionne pour voir