Skip to content
  • Blog
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Community Forum

R

radius7

@radius7
About
Posts
2
Topics
0
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent

  • Câblage Denky-D4
    R radius7

    Merci @Charles pour les information sur le Deepsleep sur Tasmota.

    Il est indéniable que le fait que Tasmota sache passer en deepsleep automatiquement après l'envoie des données est un avantage.
    Il est probable qu'il soit possible de faire de même avec ESPHome avec le trigger on_value sur les sensors (https://esphome.io/components/sensor/#sensor-on-value) mais je n'ai pas testé.

    J'ai profité du WE pour tester le deepsleep sur Tasmota qui offre un gros avantage pour un fonctionnement sur batterie, là ou ESPHome met 35s pour démarrer et se connecter au Wifi (surement améliorable cela dit), Tasmota met ~7s (si le wifi capte bien)
    Avec 7s de run pour 293s de deepsleep et une batterie de 4000mAh on tombe a plus d'un mois d'autonomie

    Si votre Wifi capte mal et que vous préférez le laisser un peu tourner pour avoir une chance d'accrocher le wifi avant de retomber en deepsleep il faut lire https://tasmota.github.io/docs/DeepSleep/#overcome-network-issues

    A noter que dans mon cas ou le Wifi capte mal, avec Tasmota je n'avais quasi jamais le wifi qui fonctionnait alors qu'avec ESPHome ca fonctionnait 90% du temps.
    La documentation ici: https://tasmota.github.io/docs/Commands/#wi-fi indique que par défaut WifiPower est à 17 et la documentation ici https://tasmota.github.io/docs/WifiPower/ indique de ne pas dépasser 17.
    Croyant la doc à la ligne j'ai mis un peu de temps à comprendre mais finalement en envoyant la commande WifiPower, j'ai eu 16 comme retour et non 17 ! Depuis que j'ai envoyé la commande WifiPower 17 j'ai le même comportement wifi qu'avec ESPHome.

    Denky D4

  • Câblage Denky-D4
    R radius7

    Bonjour,

    Pour ceux qui voudrais alimenter leur Denky sur batterie et qui tomberait sur ces échanges, je vous propose ci dessous une config ESPHome qui permet de faire fonctionner le Denky avec HomeAssistant et qui fait des cycles 1 minute en activité / 4 minutes en veille/deepsleep.

    Il est certainement possible de faire pareil avec le firmware tasmota qui vient avec le Denky mais si j'ai bien trouvé comment configurer le temps ou il reste en deepsleep (commande DeepSleepTime) je n'ai pas compris par quelle mécanique l'esp décide de passer en deepsleep (ne voulant pas utiliser MQTT, donc tasmota, je n'ai surtout ni cherché ni testé)

    Quelques information avant de passer à la configuration.
    En fonctionnement j'ai mesuré une consommation de 0.14 à 0.16Ah (140 à 160mAh). En deepsleep 0.00Ah, la valeur réel n'est forcement pas 0 mais mon appareil de mesure n'est pas assez précis pour mesurer le faible courant en deepsleep.

    Avec une batterie externe de 4000mAh, sans deepsleep l'esp va donc tenir ~ 4000 / 150 = 26h
    J'ai pu vérifié en pratique ce calcul théorique.
    En extrapolant, avec une batterie de 20'000 mAh (courant de nos jours) on monte a 5 jours et demi. Si vous etes en deepsleep 4/5 du temps, ca donne 27 jours. A vous d'ajuster le curseur entre fréquence d'actualisation des données et fréquence de recharge de la batterie..
    Attention tout de même entre la théorie et la pratique :

    • La consommation en deepsleep n'est pas nul ce qui va rogner à la marge la durée de vie de la batterie.
    • Dans la configuration ci dessous, le mode deep sleep ne s'active pas tant que l'ESP n'est pas connecté au Wifi. Si comme chez moi votre wifi capte mal, au lieu de rester actif 60s toutes les 4m, il va rester plus longtemps ce qui va diminuer la durée de vie pratique de la batterie. Si votre priorité est la durée de la batterie quitte à rater des mesure, il est possible d'enclencher le deepsleep même si le wifi n'as pas connecté. Pour cela reitrer priority: 250 dans on_boot: , voir https://esphome.io/components/esphome.html#on-boot

    La configuration ESPHome ci dessous permet de désactiver le deepsleep depuis un "toogle" HomeAssistant.
    Il y a plusieurs intérêts à pouvoir faire ca:

    • Couper le deepleep pour avoir assez de temps pour faire une mise à jour OTA.
    • Avoir temporairement une actualisation plus rapide des données

    Il faut donc commencer par créer le toogle pour cela sur HomeAssistant allez dans Settings -> Devices & Services -> Helpers (en haut) -> Create Helper (en bas). Choisissez Toogle en bas de la liste, donner lui comme nom disable_sleep_on_teleinfo. Par défaut il sera sur off (donc deepsleep actif), si vous le passez à on le deepsleep se desactivera tant qu'il ne repasse pas a Off

    Pourquoi un choix de run_duration a 1 minutes ? C'est assez conservateur, l'ESP met au moins 35s a se connecter au Wifi et avec la configuration ci dessous il ne passera de toute facon pas en deepsleep avant d'être connecté. Vous pouvez probablement baisser a 45s, il faudra pas contre changer update_interval: 20s par une frequence plus rapide, probablement 5s à 10s.

    La configuration est adapté à un compteur en tarif BASE et en mode Historique.
    Si vous etes en mode Standard il faut passer baud_rate: 1200 à 9600 et historical_mode: true a false.d
    Si vous etes en HP/HC il faudra ajouter des sensors pour récupérer HCHC et HCHP.
    Il y a deux sensors pour PAPP pour renvoyer la valeur en VA et en W. J'ai lu HomeAssistant ne traite pas pareil l'historisation des valeurs en VA et W.

    La configuration permet une integration direct dans le dashboard Energy de HomeAssistant

    Voici donc une configuration ESPHome

    esphome:
      name: teleinfo
      friendly_name: Teleinfo
      project:
        name: my.teleinfo
        version: "1.0"
      on_boot:
        priority: 250  # Do not enter deep sleep before Wifi is on | https://esphome.io/components/esphome.html#on-boot
        then:
          - script.execute: should_deep_sleep
    
    wifi:
      ssid: !secret wifi_ssid
      password: !secret wifi_password
    
    deep_sleep:
      run_duration: 1min
      sleep_duration: 4min
      id: deep_sleep_control
    
    script:
      - id: should_deep_sleep
        mode: queued
        then:
          - delay: 10s # Safe guard
          - if:
              condition:
                binary_sensor.is_on: disable_deep_sleep
              then:
                - logger.log: 'Prevent deep_sleep'
                - deep_sleep.prevent: deep_sleep_control
              else:
                - logger.log: 'Deep_sleep enabled'
                - deep_sleep.enter: deep_sleep_control
    
    binary_sensor:
      platform: homeassistant
      id: disable_deep_sleep
      entity_id: input_boolean.disable_sleep_on_teleinfo
      on_press:
        then:
         - logger.log: "Prevent deep sleep ON"
         - deep_sleep.prevent: deep_sleep_control
      on_release:
        then:
         - logger.log: "Prevent deep sleep OFF"
         - deep_sleep.enter: deep_sleep_control
     
    web_server:
      port: 80
      include_internal: true
    
    esp32:
      board: denky_d4
    
    uart:
      rx_pin: GPIO8
      baud_rate: 1200 # 1200 for Historical Mode, 9600 for Standard Mode
      parity: EVEN
      data_bits: 7
      stop_bits: 1
    
    teleinfo:
      update_interval: 20s
      historical_mode: true
    
    sensor:
      - platform: teleinfo
        tag_name: "BASE"
        name: "BASE"
        unit_of_measurement: "Wh"
        icon: mdi:flash
        device_class: "energy"
        state_class: "total"
      - platform: teleinfo
        tag_name: "PAPP"
        name: "PAPP"
        unit_of_measurement: "VA"
        state_class: "measurement"
        device_class: "apparent_power"
        icon: mdi:flash
      - platform: teleinfo
        tag_name: "PAPP"
        name: "POWER"
        state_class: measurement
        unit_of_measurement: W
        device_class: power
        icon: mdi:flash
      - platform: teleinfo
        tag_name: "IINST"
        name: "IINST"
        unit_of_measurement: "A"
        icon: mdi:flash
        state_class: "measurement"
        device_class: "current"
    
    text_sensor:
      - platform: teleinfo
        tag_name: "OPTARIF"
        name: "OPTARIF"
    
    
    # Enable logging
    logger:
    
    # Enable Home Assistant API
    api:
      encryption:
        key: !secret api_password
    
    ota:
      password: !secret ota_password
    
    
    Denky D4
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • Blog
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups