Gaszähler Script in Yaml liefert keine Ergebnisse

Moin Moin

ich sehe den Wald vor lauter Bäumen nicht mehr. Ich habe meinen Gaszähler mit einem Sensor von Smartnetz ausgestattet. Dieser sendet die Daten per MQTT. Über den MQTT Explorer sehe ich die Daten. Im HA ist der Zähler unter Geräte → Tasmota Gas zu sehen. In Mqtt wird das Gerät aber nicht angezeigt. Im MQTT Log sehe ich aber, dass der Gaszähler sich meldet und auch eine Verbindung aufbaut.

Das habe ich in der Configuration.yaml eingetragen. Es kommen keine Fehler. Die Sensoren werden auch nach mehrmaligem Neustart nicht angezeigt.

Kann mir jemand sagen, wo hier der Fehler liegt? Ich sehe es nicht…

LG

Smartnetz gibt nocht ein Script an:

mqtt:
  sensor:
    - name: "Zählerstand"
      unique_id: sensor.gaszaehler_zaehlerstand
      state_topic: "tele/Gaszaehler/json"
      value_template: '{{ value_json.gastotal }}'
      unit_of_measurement: 'm³'
      payload_available: "Online"
      payload_not_available: "Offline"
      device_class: gas
      state_class: "total_increasing"
    - name: "Zählung seit Nullung"
      unique_id: sensor.gaszaehler_zaehlung_seit_nullung 
      state_topic: "tele/Gaszaehler/json"
      value_template: '{{ value_json.value }}'
      unit_of_measurement: 'm³'
      payload_available: "Online"
      payload_not_available: "Offline"
      device_class: gas
      state_class: "total_increasing"
    - name: "Verbrauch Volumen heute"
      unique_id: sensor.gaszaehler_verbrauch_volumen_heute
      state_topic: "tele/Gaszaehler/json"
      value_template: '{{ value_json.today_m3 }}'
      unit_of_measurement: 'm³'
      payload_available: "Online"
      payload_not_available: "Offline"
      device_class: gas
      state_class: "total_increasing"
    - name: "Verbrauch Energie heute"
      unique_id: sensor.gaszaehler_verbrauch_energie_heute
      state_topic: "tele/Gaszaehler/json"
      value_template: '{{ value_json.today_kwh }}'
      unit_of_measurement: 'kWh'
      payload_available: "Online"
      payload_not_available: "Offline"
      device_class: energy
      state_class: "total_increasing"
    - name: "Verbrauch Volumen gestern"
      unique_id: sensor.gaszaehler_verbrauch_volumen_gestern
      state_topic: "tele/Gaszaehler/json"
      value_template: '{{ value_json.yesterday_m3 }}'
      unit_of_measurement: 'm³'
      payload_available: "Online"
      payload_not_available: "Offline"
      device_class: gas
      state_class: "total_increasing"
    - name: "Verbrauch Energie gestern"
      unique_id: sensor.gaszaehler_verbrauch_energie_gestern
      state_topic: "tele/Gaszaehler/json"
      value_template: '{{ value_json.yesterday_kwh }}'
      unit_of_measurement: 'kWh'
      payload_available: "Online"
      payload_not_available: "Offline"
      device_class: energy
      state_class: "total_increasing"
    - name: "Verbrauch Volumen vorgestern"
      unique_id: sensor.gaszaehler_verbrauch_volumen_vorgestern
      state_topic: "tele/Gaszaehler/json"
      value_template: '{{ value_json.db_yesterday_m3 }}'
      unit_of_measurement: 'm³'
      payload_available: "Online"
      payload_not_available: "Offline"
      device_class: gas
      state_class: "total_increasing"
    - name: "Verbrauch Energie vorgestern"
      unique_id: sensor.gaszaehler_verbrauch_energie_vorgestern
      state_topic: "tele/Gaszaehler/json"
      value_template: '{{ value_json.db_yesterday_kwh }}'
      unit_of_measurement: 'kWh'
      payload_available: "Online"
      payload_not_available: "Offline"
      device_class: energy
      state_class: "total_increasing"```

Wo ist denn jetzt genau dein Problem? Siehst du die Sensoren nicht in der Tasmota Integration?

Ja genau. Ich sehen die Sensoren die mit der Yaml erstellt werden sollen nicht.
In der Tasmota integration sehe ich den gaszähler allerding nur mit mit seinem Counter. Ich möchte ja den Zahlerstand und kwh Verbrauch usw haben.

LG

Ah, ok
Das steht unten als Text in dem Code Abschnitt (habe ich überlesen)

Meine Leseköpfe (mit Tasmota und MQTT Anbindung) stellen die Sensoren in der Tasmota Integration bereit :sunglasses:

Ich kann dir also nicht weiter helfen

Ich hänge mich Mal mit dran. Ich habe das selbe Problem.

Eigentlich sieht der MQTT Teil in deinem Code für mich ok aus. Hier mal zum Vergleich mein MQTT vom Growatt-Solar. Um den Aufbau zu vergleichen sicherlich nicht verkehrt.

mqtt:
  sensor:
    - state_topic: "energy/solar"
      unique_id: "growatt_wr_total_production"
      name: "Growatt.TotalGenerateEnergy"
      unit_of_measurement: "kWh"
      value_template: "{{ float(value_json.TotalGenerateEnergy) | round(1) }}"
      device_class: energy
      state_class: total_increasing
      json_attributes_topic: "energy/solar"
      payload_available: "1"
      availability_mode: latest
      availability_topic: "energy/solar"
      availability_template: "{{ value_json.InverterStatus }}"

Ich habe bei mir einen einfachen Fensterkontakt im Einsatz und der zählt die Umdrehungen. Am Zähler steht der Umrechnungsfaktor und damit kann man dann über eine Formel die tatsächlichen Kubikmeter ausrechnen. Sieht bei mir so aus:

- sensor:
  - unique_id: gaszaehler_m3_gesamt
    name: Gaszähler m³ Gesamt
    state: "{{ states('counter.gaszaehler_counter') | float(0) * 0.01 }}"
    unit_of_measurement: "m³"
    icon: mdi:meter-gas
    device_class: gas
    state_class: total_increasing

Vielleicht hilft euch das weiter.

Hallo,

bin auch frisch in HA und stand wie du vor dem gleichen Problem.
die 2 Payload zeilen habe ich gelöscht nach stundenlangen suchen im Netz.
Und zu jedem Senor noch die Zeile.
device:
identifiers: [„gaszaehler“]
Das gruppiert für die Entitäten.

Hoffe es hilft.

  sensor:
    - name: "Zählerstand"
      unique_id: sensor.gaszaehler_zaehlerstand
      state_topic: "tele/Gaszaehler/json"
      value_template: '{{ value_json.gastotal }}'
      unit_of_measurement: 'm³'
      device_class: gas
      state_class: total_increasing
      device:
        identifiers: ["gaszaehler"]

Ich bekomme das einrücken wie in der yaml hier nicht hin, denk dran.
Es gibt auch eine yamltestseite https://yamlchecker.com

EDIT by Jay: Willkommen, Code bitte immer über die Codefunktion „</>“ im Editor hinzufügen.

1 „Gefällt mir“

Das Problem hatte ich auch und irgendwann keine Lust mehr mich mich Tasmota und der Configuration.yaml rumzuärgern…

In dem Smartnetz.at Gaszähler ist ein ESP32 drin, daher habe ich den nun über ESPHome angebunden :wink:

> esphome:
>
>   name: gaszahler
>
>   friendly_name: Gaszähler
>
>   platformio_options:
>
>     board_build.flash_mode: dio
>
> esp32:
>
>   board: esp32-c3-devkitm-1
>
>   variant: ESP32C3
>
>   framework:
>
>     type: esp-idf
>
> #Config for status_led (on GPIO8):
>
> #light:
>
> \#  - platform: status_led
>
> \#    name: "Status LED"
>
> \#    id: esp_status_led
>
> \#    icon: "mdi:alarm-light"
>
> \#    pin:
>
> \#      number: GPIO8
>
> \#      inverted: true
>
> \#    restore_mode: ALWAYS_OFF  
>
> 
>
> #esp32:
>
> \#  board: esp32-c3-devkitm-1
>
> \#  framework:
>
> \#    type: esp-idf
>
> 
>
> \# Enable logging
>
> logger:
>
> web_server:
>
>   port: 80
>
>   local: true
>
> 
>
> \# Enable Home Assistant API
>
> api:
>
>   encryption:
>
>     key: "XXX"
>
> ota:
>
>   - platform: esphome
>
>     password: "XXX"
>
> wifi:
>
>   ssid: !secret wifi_ssid
>
>   password: !secret wifi_password
>
> \# Enable fallback hotspot (captive portal) in case wifi connection fails
>
>   ap:
>
>     ssid: "Gaszahler Fallback Hotspot"
>
>     password: "XXX"
>
> captive_portal:
>
> globals:
>
>   - id: total_pulses
>
>     type: int
>
>     restore_value: false
>
>     initial_value: '12278260'  # mit diesem Wert startet der Gaszählerstand
>
> binary_sensor:
>
>   - platform: gpio
>
>     id: internal_pulse_counter
>
>     pin:
>
>       number: GPIO3
>
>       mode: INPUT_PULLUP
>
>     name: "Live-Impuls"
>
>     filters:
>
>       - delayed_on: 10ms
>
>     on_press:
>
>       then:
>
>         - lambda: id(total_pulses) += 1;
>
>         - output.turn_off: led  # für die LED, zur Anzeige des Schaltvorgangs
>
>     on_release:
>
>       then:
>
>         - output.turn_on: led  # für die LED, zur Anzeige des Schaltvorgangs
>
> sensor: 
>
>   - platform: template
>
>     name: "Gasverbrauch"
>
>     device_class: gas
>
>     unit_of_measurement: "m³"
>
>     state_class: "total_increasing"
>
>     icon: "mdi:meter-gas-outline"
>
>     accuracy_decimals: 3
>
>     lambda: |-
>
>       return id(total_pulses) \* 0.01;
>
> \# Diese LED blinkt, wenn ein Signal vom Reedkontakt erkannt wird
>
> output:
>
>   - platform: gpio # Die interne LED auf dem Board
>
>     pin: GPIO8
>
>     id: 'led'
>
>     inverted: true
>
> esp32_ble_tracker:
>
>   scan_parameters:
>     active: true
>
> bluetooth_proxy:
>   active: true

Und nebenbei im Keller nun auch einen BT Proxy :wink:

Auch ich habe das Problem. Ich habe auch Smartnetz.at kontaktiert. Leider aber keine Antwort bisher erhalten.
@0x5352 Kannst du etwas mehr erläutern, wie man das in ESP32 einbindet? Ich habe bisher nicht mit ESP32 gearbeitet.

Vielen Dank @SpiritZone! Nun klappt es endlich auch bei mir! Ich musste zusätzlich noch bei der Zeile: state_topic: „tele/X/json“ von X=Gaszaehler in X=Smartnetz_GASREADER ändern, dann lief es. Das es bei mir Smartnetz_GASREADER heißt, habe ich über den MQTT-Explorer herausgefunden. Einfach ist anders.

Schön das es nun auch bei dir klappt :wink:

Moin
bei mir muss der Zähler einen Schaden gehabt haben. Teilweise hat er gar nicht mehr gezählt machnmal dann wieder doch. Hatte die Software von Smartnetz neu geflasht aber auch das brachte keine Besserung. Jetzt habe ich von denen den 5.0 Gaszähler bekommen und alles lief auf Anhieb problemlos. Auch die Daten kommen per MQTT rein :slight_smile:

LG