hallard / everblu-meters-esp32

Fetch water usage data from Cyble meters for esp8266
8 stars 2 forks source link

HA MQTT no discovery #2

Closed rommess closed 10 months ago

rommess commented 10 months ago

HEllo @hallard ,

Beau travail sur la réalisation de ce code. J'aurais cependant une question. Je récupère bien les data en heures ouvrés

15:14:13.020 > 15:14:13.021 > Synced in 0s 15:14:13.021 > Setting to 433.820007.4fMHz 15:14:13.025 > Reading data from meter 15:14:16.087 > frame received (689) 15:14:16.089 > Consumption : 135 Liters 15:14:16.093 > Battery left : 175 Months 15:14:16.094 > Read counter : 19 times 15:14:16.097 > Working hours : from 06H to 18 15:14:16.100 > Local Time : Thu Oct 26 15:14:18 2023 15:14:16.103 > RSSI / LQI : -67dBm / -128 15:14:19.645 > Going to deep sleep mode for 85545 seconds

Mon ESP se connecte bien à "Mosquitto broker"

2023-10-28 01:08:55: New client connected from 192.168.1.16:49211 as cyble-23-0303414-esp517c (p2, c1, k15, u'homeassistant').

J'arrive bien à ecouter un sujet via MQTT image

Mais aucune entrée ne se créé dans MQTT ( à l'inverse du code de psykokwak-com) J'ai beau retourner/tester dans tous les sens, rien n'apparait. Aurais tu une idée ? Merci

hallard commented 10 months ago

Hello,

tu as les résultats du scan, on dirait qu'il fait ça à chaque fois normalement il scanne la 1ere fois puis sauve et c'est terminé.

C'est curieux, il faudrait la sortie complète de la console de l'ESP avec ton fichier platformio.ini sans ça compliqué de trouver.

rommess commented 10 months ago

effectivement, j'ai peut être oublié de préciser que j'ai décommenté le force_scan dans la dernière capture, histoire d'essayer de créer l'appareil everblu dans mqtt et d'avoir plusieurs messages à remonter dans Home Assistant. Voici mon platformio.ini ainsi que la sortie serie. serial.txt platformio.ini.txt

rommess commented 10 months ago

je crois avoir compris. il n'y a pas de lignes de concernant le discovery mqtt dans le code https://www.home-assistant.io/integrations/mqtt/#mqtt-discovery

versus celui de psykokwak Serial.println("> Send MQTT config for HA."); // Auto discovery delay(50); // Do not remove mqtt.publish("homeassistant/sensor/water_meter_value/config", jsonDiscoveryDevice1, true); delay(50); // Do not remove mqtt.publish("homeassistant/sensor/water_meter_battery/config", jsonDiscoveryDevice2, true); delay(50); // Do not remove mqtt.publish("homeassistant/sensor/water_meter_counter/config", jsonDiscoveryDevice3, true); delay(50); // Do not remove mqtt.publish("homeassistant/sensor/water_meter_timestamp/config", jsonDiscoveryDevice4, true); delay(50); // Do not remove

faut que je trouve comment implémenter ca :(

rommess commented 10 months ago

après avoir vu le repo de https://github.com/plapointe6/HAMqttDevice , je n'ai pas pu l'intégrer au code actuel, mes bases étant trop faibles.

finalement la solution quick and dirty fut d'intégrer les capteurs directement dans le configuration.yaml de HA

mqtt
  sensor
   - object_id: water_liters
    name: "water liters"
    state_topic: "everblu/cyble-23-0303414-esp517c/json"
    unique_id: "water_liters"
    icon: "mdi:water"
    #device_class: date
    value_template: "{{ value_json.liters }}"
    device:
        identifiers: ["ESP_everblu"]
        name: "Compteur eau"

A répéter autant de fois que vous voulez d'informations image

morcus commented 1 month ago

Thank you for the directions,

For information, here is what I used on home assistant for all the sensors to appears:

mqtt:
  sensor:
  ## Compteur eau ESP32
    # - object_id: water_meter_value
      # name: "Compteur Eau Index"
      # state_topic: "everblu/cyble-07-0405053-espcd14/json"
      # unique_id: "water_meter_value"
      # icon: "mdi:water"
      # unit_of_measurement: "L"
      # device_class: "water"
      # state_class: "total_increasing"
      # value_template: "{{ value_json.liters }}"
      # device:
        # identifiers: ["ESP_everblu"]
        # name: "Compteur eau"
        # model: "Everblu Cyble ESP8266/ESP32"
        # manufacturer: "Psykokwak"
    - object_id: water_meter_battery
      name: "Compteur Eau Batterie"
      state_topic: "everblu/cyble-07-0405053-espcd14/json"
      unique_id: "water_meter_battery"
      icon: "mdi:battery"
      unit_of_measurement: "m"
      device_class: "battery"
      value_template: "{{ value_json.battery }}"
      device:
        identifiers: ["ESP_everblu"]
        name: "Compteur eau"
        model: "Everblu Cyble ESP8266/ESP32"
        manufacturer: "Psykokwak"
    - object_id: water_meter_counter
      name: "Compteur Eau Compteur"
      state_topic: "everblu/cyble-07-0405053-espcd14/json"
      unique_id: "water_meter_counter"
      icon: "mdi:counter"
      value_template: "{{ value_json.read }}"
      device:
        identifiers: ["ESP_everblu"]
        name: "Compteur eau"
        model: "Everblu Cyble ESP8266/ESP32"
        manufacturer: "Psykokwak"
    - object_id: water_meter_volume
      name: "Compteur Eau Volume"
      state_topic: "everblu/cyble-07-0405053-espcd14/json"
      unique_id: "water_meter_volume"
      icon: "mdi:water-plus"
      unit_of_measurement: "m³"
      device_class: "water"
      state_class: "total_increasing"
      value_template: "{{ value_json.liters / 1000 }}"
      device:
        identifiers: ["ESP_everblu"]
        name: "Compteur eau"
        model: "Everblu Cyble ESP8266/ESP32"
        manufacturer: "Psykokwak"
    - object_id: water_meter_hours
      name: "Compteur Eau Hours"
      state_topic: "everblu/cyble-07-0405053-espcd14/json"
      unique_id: "water_meter_hours"
      icon: "mdi:timelapse"
      value_template: "{{ value_json.hours }}"
      entity_category: "diagnostic"
      device:
        identifiers: ["ESP_everblu"]
        name: "Compteur eau"
        model: "Everblu Cyble ESP8266/ESP32"
        manufacturer: "Psykokwak"
    - object_id: water_meter_update
      name: "Compteur Eau Update"
      state_topic: "everblu/cyble-07-0405053-espcd14/json"
      unique_id: "water_meter_update"
      icon: "mdi:update"
      value_template: "{{ value_json.date }}"
      entity_category: "diagnostic"
      device:
        identifiers: ["ESP_everblu"]
        name: "Compteur eau"
        model: "Everblu Cyble ESP8266/ESP32"
        manufacturer: "Psykokwak"
    - object_id: water_meter_wake
      name: "Compteur Eau Wake"
      state_topic: "everblu/cyble-07-0405053-espcd14/sleep_until"
      unique_id: "water_meter_wake"
      icon: "mdi:sleep"
      value_template: "{{ value_json.date }}"
      entity_category: "diagnostic"
      device:
        identifiers: ["ESP_everblu"]
        name: "Compteur eau"
        model: "Everblu Cyble ESP8266/ESP32"
        manufacturer: "Psykokwak"
    - object_id: water_meter_lqi
      name: "Compteur Eau lqi"
      state_topic: "everblu/cyble-07-0405053-espcd14/json"
      state_class: "measurement"
      unit_of_measurement: "lqi"
      entity_category: "diagnostic"
      enabled_by_default: false
      unique_id: "water_meter_lqi"
      icon: "mdi:signal"
      value_template: "{{ value_json.lqi }}"
      device:
        identifiers: ["ESP_everblu"]
        name: "Compteur eau"
        model: "Everblu Cyble ESP8266/ESP32"
        manufacturer: "Psykokwak"
    - object_id: water_meter_rssi
      name: "Compteur Eau rssi"
      state_topic: "everblu/cyble-07-0405053-espcd14/json"
      state_class: "measurement"
      unit_of_measurement: "rssi"
      entity_category: "diagnostic"
      enabled_by_default: false
      unique_id: "water_meter_rssi"
      icon: "mdi:signal"
      value_template: "{{ value_json.rssi }}"
      device:
        identifiers: ["ESP_everblu"]
        name: "Compteur eau"
        model: "Everblu Cyble ESP8266/ESP32"
        manufacturer: "Psykokwak"