Wie binde ich zwei Stromzähler mittels eines ESP8266 ein

Hallo liebe Spezialisten,

als eingefleischtem HA Dummy, war ich stolz auf mich, dass es mir gelang, die Impulse eines Stromzählers auszulesen.

Nun würde ich gerne mit dem selben Bord, einen weiteren Zähler auslesen.
Bin jedoch maßlos überfordert.

Anbei mal die Yaml, welche ich momentan verwende (gnadenlos aus dem Netz kopiert, ohne zu verstehen, was ich eigentlich mache).

esphome:
  name: strom-pv-esp
  friendly_name: strom-pv-esp

esp8266:
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "H+yz9LMqs/6EKc1LHofD6SVdbuCmcjv5wSPTD0H4WC4="

ota:
  password: "6328755891573e12f4775c99bb862117"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Strom-Pv-Esp Fallback Hotspot"
    password: "7KUi5W1a34VY"

captive_portal:
globals:
  - id: total_pulses
    type: int
    restore_value: false
    initial_value: '838557*10'
binary_sensor:
  - platform: gpio
    id: internal_pulse_counter
    pin:
      number: GPIO5
      mode: INPUT_PULLUP
    name: "Strom-PV-Impuls"
    filters:
      - delayed_on: 10ms
    on_press:
      then:
        - lambda: id(total_pulses) += 1;
sensor:
  - platform: template
    name: "Stromproduktion-PV"
    device_class: energy
    unit_of_measurement: "kWh"
    state_class: "total_increasing"
    icon: "mdi:lightning-bolt"
    accuracy_decimals: 2
    lambda: |-
      return id(total_pulses) * 0.001;
      ESP_LOGD("Stromproduktion-PV TAG", "Pulse bisher: %d", id(total_pulses));

Wäre super, wenn ihr mir weiter helfen könntet.

Gruß
Christoph

Hi, eigentlich nur einen weiteren „binary_sensor“ mit anderen GPIO und „Sensor (Template)“ definieren.


binary_sensor:
  - platform: gpio
    id: internal_pulse_counter
    pin:
      number: GPIO5
      mode: INPUT_PULLUP
    name: "Strom-PV-Impuls"
    filters:
      - delayed_on: 10ms
    on_press:
      then:
        - lambda: id(total_pulses) += 1;

  - platform: gpio
    id: internal_pulse_counter
    pin:
      number: #ANDERE GPIO-NUMMER# 
      mode: INPUT_PULLUP
    name: "#NEUER STROMZÄHLER#"
    filters:
      - delayed_on: 10ms
    on_press:
      then:
        - lambda: id(total_pulses) += 1;

sensor:
  - platform: template
    name: "Stromproduktion-PV"
    device_class: energy
    unit_of_measurement: "kWh"
    state_class: "total_increasing"
    icon: "mdi:lightning-bolt"
    accuracy_decimals: 2
    lambda: |-
      return id(total_pulses) * 0.001;
      ESP_LOGD("Stromproduktion-PV TAG", "Pulse bisher: %d", id(total_pulses));

  - platform: template
    name: "#NEUER STROMZÄHLER#"
    device_class: energy
    unit_of_measurement: "kWh"
    state_class: "total_increasing"
    icon: "mdi:lightning-bolt"
    accuracy_decimals: 2
    lambda: |-
      return id(total_pulses) * 0.001;
      ESP_LOGD("Stromproduktion-PV TAG", "Pulse bisher: %d", id(total_pulses));

Hallo Linos,
vielen Dank für die schnelle Antwort.

Macht sich die Eintragung „globals“ in meinem Code dann nicht für beide Zähler bemerkbar, oder muss ich noch ein zweites „globals“ einfügen?

Gruß
Christoph

Uh da hast du recht, dass habe ich übersehen :no_mouth: .

Da kann ich dir nicht weiter helfen, wie du das für jeden Zähler separat machen kannst.

Ich persönlich würde es weg lassen. Ich war am Anfang auch darauf den absoluten Zählerstand mitzuführen. In HA ist er uninteressant für mich geworden, da HA den Verbrauch/Ertrag einfach dazu addiert.

Dann werde ich das mal so versuchen und testen, was ich mir alles zerschieße :joy:

Gruß
Christoph

Hallo zusammen,

hat vielleicht doch noch jemand eine Lösung für obiges Problem?

Gruß
Christoph

Bist du mit beiden am selben Pin 5 ?
Evtl gehts ja mit einem anderen Pin für den zweiten Zähler.

Mit was liest du eigentlich den Zähler aus?

Gruß

Hallo Eddind,

rein zum testen hatte ich das kurz gemacht, allerdings ist es nicht Zielführend, da beide Zähler unterschiedliche Anfangsstände und vor allem, unterschiedliche Impulse pro kWh haben.

Der Zweite Zähler soll auf Pin D2 also GPIO4 gelegt werden.

Gruß
Christoph

Esp8266 kosten doch fast nix, du könntest auch zwei nehmen. Was spricht dagegen?

Ist halt immer ungünstig gleich etwas komplizierteres als erstes esphome projekt zu nehmen.

Falls nicht, denke du könntest bei den globals den eintrag duplizieren, anders benennen und im zweiten code anpassen. Das könnt doch fkt?

Hallo MusicMunkee,
die Version mit den zwei ESP‘s habe ich jetzt verwendet.
Bedeutet aber, dass ich nun 14 ungenutzte Impulseingänge habe, als deren 6.
Wenn du einen funktionierenden Code-Schnipsel zur Verdopplung der Globals Befehles hättest, würde ich mich wie Hulle freuen :smiley:
Gruß
Christoph

Hallo Omega13,
leider sagt mir Tasmota im Moment noch garnichts :weary:
Gruß
Christoph

Wie gesagt, du musst dein globals Eintrag duplizieren und anpassen. Hast du noch sonst noch nie programmiert? Das ist eigenltich so eines der häufigsten Dinge was man da macht.

Tasmota ist ne feine sache, aber evtl wenn du Anfänger bist kanns bischen knifflig werden

Hier ein Vorsvchlag zum Anpassen deines Codes.

Hier verdoppeln:
grafik
und die id anpassen

d.h. im zweiten so ändern:

  - platform: template
    name: "#NEUER STROMZÄHLER#"
    device_class: energy
    unit_of_measurement: "kWh"
    state_class: "total_increasing"
    icon: "mdi:lightning-bolt"
    accuracy_decimals: 2
    lambda: |-
      return id(total_pulses_2) * 0.001;
      ESP_LOGD("Stromproduktion-PV TAG", "Pulse bisher: %d", id(total_pulses_2));	

ich hab aber keine Ahnung ob es wirklich so fkt, hab die situation ja nicht. Musst du ausprobieren.