Gaszähler mit Reedkontakt Problem

Zoiao

Member
Hallo,

1. ich habe mal eine Frage, ob mir hier einer Helfen kann was ich falsch mache.
Ich habe im Netz eine Anleitung gefunden und erfolgreich ein Esp d1 mini pro angelegt und die folgende Yaml drauf:
YAML:
esphome:
  name: gaszaehler

esp8266:
  board: d1_mini_pro

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "xxx"

ota:
  password: "xxx"

wifi:
  networks:
    - ssid: "xxx"
      password: "xxx"


  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Gaszaehler Fallback Hotspot"
    password: "xxxx"

captive_portal:

globals:
  - id: total_pulses
    type: int
    restore_value: false
    initial_value: '1986055'  # hier kann der Gaszählerstand initialisiert werden - letze Stelle weglassen
binary_sensor:
  - platform: gpio
    id: internal_pulse_counter
    pin:
      number: GPIO5
      mode: INPUT_PULLUP
    name: "Live-Impuls"
    filters:
      - delayed_on: 10ms
    on_press:
      then:
        - lambda: id(total_pulses) += 1;
    on_release:
      then:
sensor:
  - platform: template
    name: "Gasverbrauch_ESP"
    device_class: gas
    unit_of_measurement: "m³"
    state_class: "total_increasing"
    icon: "mdi:fire"
    accuracy_decimals: 2
    lambda: |-
      return id(total_pulses) * 0.01;

2. Jetzt habe ich drei Entitäten
- sensor.gasverbrauch_esp
- update.gaszaehler_firmware
- binary_sensor.live_impuls

!!!!!!3. Im nächsten Schritt habe ich das Problem, jetzt soll ich folgenden Code in die Sensor.yaml einfügen, aber bei mir kommen nur Fehlermeldungen?
YAML:
# Gaszähler, kommend von ESPHome, aufbereiten für Energy
- platform: template
  sensors:
    gasverbrauch:
      value_template:  >
          {% if states('sensor.gasverbrauch_esp') | float == 0 %}
            {{ states('sensor.gasverbrauch') }}
          {% else %}
            {{ states('sensor.gasverbrauch_esp') | float }}
          {% endif %}
      unit_of_measurement: m³
      device_class: gas
      attribute_templates:
        state_class: total_increasing

3. muss ich dass vielleicht in die Template.yaml oder so kopieren...bis her alles erfolglos, oder gibts Probleme, weil ich in der
config.yaml folgendes ausgelagert habe:

automation: !include automations.yaml
script: !include scripts.yaml
sensor: !include sensors.yaml
template: !include template.yaml


4. die Fehlermeldung bei der Senesor Yaml siehe Foto, irgendwas falsch eingerückt?`aber habe schon einiges erfolglos versucht.


danke für eure Hilfe
 

Anhänge

  • WhatsApp Bild 2023-02-02 um 23.52.20.jpg
    WhatsApp Bild 2023-02-02 um 23.52.20.jpg
    321,3 KB · Aufrufe: 6
sensor: !include sensors.yaml
Korrekt wäre hier, die Datei sensor.yaml zu nennen und sie auch entsprechend mittels sensor: !include sensor.yaml einzubinden :)

Du scheinst aber noch weiteres innerhalb dieser Datei stehen zu haben, ich würde annehmen, dass das zu dem Fehler führt. Am besten einmal den kompletten Inhalt (als Code formatiert) hier reinkopieren, dann kann man mehr dazu sagen.

Der Code ansich sieht soweit richtig aus, bis auf dass value_template: > eigentlich value_template: >- sein sollte wegen der mehrzeiligen Anweisung darunter.
 
Auf einem vor nen paar Tagen erst aufgesetzten Testsystem läuft
YAML:
- platform: template
  sensors:
problemlos in der sensor.yaml, grade extra nochmal getestet.
 
Ob jetzt sensor oder template yaml spielt hier keine Rolle, dient nur der Übersicht halber...

Das Problem ist das dein Code aus einem Textfelder kopiert wurde, dies hat zur Folge das nicht alle Zeichen korrekt übernommen werden, du siehst in deinem Editor an einigen Zeilen am Anfang diese Bräunlich Kästen diese sind fehlerhafte Zeichen [] diese müssen in der Ansicht als . Dargestellt sein,

Das bemängel ich auch schon seit längerem hier im forum das man Codes nicht als raw Kopiern kann, entferne die vorderen Zeichen achte danach auf korrektes einrücken dann sollten die Fehler weg sein
 
Das kann in diesem Fall nicht hinkommen, da schon in Zeile 53 ein Fehler auftritt und auch die Meldung nicht dazu passt.
Also wenn ich in meinem Code an der falschen Position mit zwei einrücker - platfom: template anfangen bekomme ich auch Fehler
man kann nicht mit - definieren, ich kenne den restlichen Code nicht evtl: genügt es mit
platform: template
Anstelle von
- platform: template
Zu beginnen

Screenshot_20230203_071536_Home Assistant.jpg
Was genau meinst Du damit?
Mir fehlt wie es in vielen anderen Foren gibt oben rechts am Code das copy/raw-copy am PC/Laptop funktioniert das ohne noch ganz gut vom Handy aus ein grauen.
 
Zuletzt bearbeitet:
Moin,

danke für die schnelle Hilfe! Aber komme nicht ganz mit;).
Wenn ich das ändere: "Korrekt wäre hier, die Datei sensor.yaml zu nennen und sie auch entsprechend mittels sensor: !include sensor.yaml einzubinden :)" Habe ich vielleicht mit den alten Probleme?

Ich habe die Codes mit einer Kopie Taste rein kopiert und im Video funktioniert es auch.
Ich habe es von dieser Seite: https://book.cryd.de/books/projekte/page/gas-sensor

das versuche ich mal wenn ich zu hause bin "
platform: template
Anstelle von
- platform: template
Zu beginnen
"

gruss tobias
 
Habe ich vielleicht mit den alten Probleme?
Wenns so (mit den anderen) läuft wirds schon passen, entspricht nur nicht den Vorgaben von HA :)

Den einleitenden Bindestrich wegzunehmen kannst Du natürlich versuchen, aber ich wette auf nen "bad indentation of a mapping entry" als Antwort :D nein, ich denke eher das liegt an falscher Position in der Datei / etwas davor. Wie gesagt, einmal den Inhalt der Datei hier als Code einfügen, dann sollte sich das schon regeln lassen.
 
Ok vielen dank. Muss nur nochmal nachfragen welche datei genau?
Die sensor.yaml komplett mit den alten und das neue was nicht geht? Dann mache ich das später wenn ich zh bin?
 
bitte die sensor.yaml und configuration.yaml
bitte beachte falls Passwörter sichtbar sind und nicht in der secret.yaml sein sollten, diese zu xxx ändern
 
ok danke, anbei die config.yaml und sensor.yaml
YAML:
# Loads default set of integrations. Do not remove.
default_config:

# Text to speech
tts:
  - platform: google_translate

automation: !include automations.yaml
script: !include scripts.yaml
sensor: !include sensors.yaml
template: !include template.yaml

frontend:
  themes: !include_dir_merge_named themes


camera:
  - platform: xiaomi_cloud_map_extractor
    host: !secret host_camera
    token: !secret token_camera
    username: !secret username_camera
    password: !secret password_camera
    draw: ['all']
    attributes:
      - calibration_points
      
waste_collection_schedule:
  sources:
    - name: ics
      args:
        file: "www/Abfallkalender.ics"
      customize:
        - type: Restabfall Graue Tonne
          alias: rest
          ## icon: mdi:trash-can
          picture: https://kt-montage.com/files/smarthomeyourself/img/rest2.png
        - type: Verpackung Gelbe Tonne
          alias: gelbersack
          ## icon: mdi:recycle
          picture: https://kt-montage.com/files/smarthomeyourself/img/plastik2.png
        - type: Altpapier Gruene Tonne
          alias: papier
          ## icon: mdi:trash-can
          picture: https://kt-montage.com/files/smarthomeyourself/img//papier2.png
        - type: Bioabfall Braune Tonne
          alias: bio
          ## icon: mdi:trash-can
          picture: https://kt-montage.com/files/smarthomeyourself/img/bio2.png
  fetch_time: "04:00"
  day_switch_time: "10:00"
 
 
 
panel_iframe:
  mdiindex:
    title: MDI Icon Index
    icon: mdi:vector-square
    url: https://raw.githack.com/james-fry/home-assistant-mdi/master/home-assistant-mdi.html
    
    
    
group:
  personen_gruppe:
    name: "Sutobe"
    entities:
      - device_tracker.mi_9
      - device_tracker.android_2
 
und noch die Sensor.yaml
YAML:
# Abfall
  - platform: waste_collection_schedule
    name: AbfallRestmuell
    details_format: "upcoming"
    value_template: '{{ value.daysTo }}'
    types:
      - rest

  - platform: waste_collection_schedule
    name: AbfallGelberSack
    details_format: "upcoming"
    value_template: '{{ value.daysTo }}'
    types:
      - gelbersack

  - platform: waste_collection_schedule
    name: AbfallPapier
    details_format: "upcoming"
    value_template: '{{ value.daysTo }}'
    types:
      - papier
  - platform: waste_collection_schedule
    name: AbfallBio
    details_format: "upcoming"
    value_template: '{{ value.daysTo }}'
    types:
      - bio

  - platform: waste_collection_schedule
    name: AbfallNaechster
    details_format: "upcoming"
    value_template: '{{ value.daysTo }}'
    
    
# Strom ROI Balkon
    
  - platform: integration
    source: sensor.eigenverbrauch
    name: Eigenverbrauch_kwh
    unit_prefix: k
    round: 2
    
    
# Strom ROI Insel

  - platform: integration
    source: sensor.inselsolar_shelly_power
    name: Inselanlage_Gesamt_kWh
    unit_prefix: k
    round: 2
    
# Gaszähler, kommend von ESPHome, aufbereiten für Energy
- platform: template
  sensors:
    gasverbrauch:
      value_template:  >
          {% if states('sensor.gasverbrauch_esp') | float == 0 %}
            {{ states('sensor.gasverbrauch') }}
          {% else %}
            {{ states('sensor.gasverbrauch_esp') | float }}
          {% endif %}
      unit_of_measurement: m³
      device_class: gas
      attribute_templates:
        state_class: total_increasing
 
hier noch der Gaszähler von esphome
YAML:
esphome:
  name: gaszaehler

esp8266:
  board: d1_mini_pro

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: !secret gas_key

ota:
  password: !secret gas_ota

wifi:
  networks:
    - ssid: !secret ssid
      password: !secret wlan_password


  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Gaszaehler Fallback Hotspot"
    password: !secret gas_ap

captive_portal:

globals:
  - id: total_pulses
    type: int
    restore_value: false
    initial_value: '1986055'  # hier kann der Gaszählerstand initialisiert werden - letze Stelle weglassen
binary_sensor:
  - platform: gpio
    id: internal_pulse_counter
    pin:
      number: GPIO5
      mode: INPUT_PULLUP
    name: "Live-Impuls"
    filters:
      - delayed_on: 10ms
    on_press:
      then:
        - lambda: id(total_pulses) += 1;
    on_release:
      then:
sensor:
  - platform: template
    name: "Gasverbrauch_ESP"
    device_class: gas
    unit_of_measurement: "m³"
    state_class: "total_increasing"
    icon: "mdi:fire"
    accuracy_decimals: 2
    lambda: |-
      return id(total_pulses) * 0.01;
 
folgender Fehlercode steht in der sensor.yaml wenn ich oben das ! drücke:
end of the stream or a document separator is expected (53:1)

50 | round: 2
51 |
52 | # Gaszähler, kommend von ESPHom ...
53 | - platform: template
------^
54 | sensors:
55 | gasverbrauch:


DANKE
 
Okay, in dem Fall sehr einfach - in der sensor.yaml entweder den unteren Part um zwei Leerzeichen weiter einrücken oder alles dadrüber um zwei Leerzeichen weniger einrücken (letzteres wäre eigentlich richtiger) - hier, mach einfach copy & paste:
YAML:
# Abfall
- platform: waste_collection_schedule
  name: AbfallRestmuell
  details_format: "upcoming"
  value_template: '{{ value.daysTo }}'
  types:
    - rest

- platform: waste_collection_schedule
  name: AbfallGelberSack
  details_format: "upcoming"
  value_template: '{{ value.daysTo }}'
  types:
    - gelbersack

- platform: waste_collection_schedule
  name: AbfallPapier
  details_format: "upcoming"
  value_template: '{{ value.daysTo }}'
  types:
    - papier
- platform: waste_collection_schedule
  name: AbfallBio
  details_format: "upcoming"
  value_template: '{{ value.daysTo }}'
  types:
    - bio

- platform: waste_collection_schedule
  name: AbfallNaechster
  details_format: "upcoming"
  value_template: '{{ value.daysTo }}'
 
 
# Strom ROI Balkon
 
- platform: integration
  source: sensor.eigenverbrauch
  name: Eigenverbrauch_kwh
  unit_prefix: k
  round: 2
 
 
# Strom ROI Insel

- platform: integration
  source: sensor.inselsolar_shelly_power
  name: Inselanlage_Gesamt_kWh
  unit_prefix: k
  round: 2
 
# Gaszähler, kommend von ESPHome, aufbereiten für Energy
- platform: template
  sensors:
    gasverbrauch:
      value_template:  >
          {% if states('sensor.gasverbrauch_esp') | float == 0 %}
            {{ states('sensor.gasverbrauch') }}
          {% else %}
            {{ states('sensor.gasverbrauch_esp') | float }}
          {% endif %}
      unit_of_measurement: m³
      device_class: gas
      attribute_templates:
        state_class: total_increasing
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.383
Beiträge
45.250
Mitglieder
3.984
Neuestes Mitglied
Blitzkriegbob90
Zurück
Oben