Gaser: Unterschied zwischen den Versionen

 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
{{Infobox Projekt
 
{{Infobox Projekt
 
|name            = gaser
 
|name            = gaser
|status          = poc
+
|status          = stable
 
|autor          = [[Benutzer:raphii|raphii wu|wu]]
 
|autor          = [[Benutzer:raphii|raphii wu|wu]]
 
|beschreibung    = Gaszähler Impulse auslesen
 
|beschreibung    = Gaszähler Impulse auslesen
Zeile 10: Zeile 10:
 
[[Category:Software]]
 
[[Category:Software]]
 
[[Category:Hardware]]
 
[[Category:Hardware]]
 +
[[Category:Infrastruktur]]
 +
[[Category:Homeassistant]]
  
 
== Description ==
 
== Description ==
  
[[Datei:gaser_pipicow.jpg]]
+
Der 'Gaser' ist ein kompaktes Gerät, das an Gaszählern befestigt wird, um Verbrauchsimpulse zu erfassen und den Gasverbrauch digital zu schätzen. Der Raspberry Pi Pico W ist mit ESPhome geflasht und im Home Assistant eingebunden. Unser Gaszähler hat einen Magnet an der ersten Dezimalstelle sitzen, der den Reed-Sensor beim Umschlagen auslöst.
[[Datei:gaser_pipicow_top.jpg]]
 
  
== Hardware ==
 
  
ReedSensor
 
Raspipico
 
  
 +
==Hardware==
  
== Software ==
+
*Reed-Sensor
 +
*Raspberry Pi Pico W
 +
*Jumperwire
 +
*Heißkleber
  
esphome
 
  
<nowiki>
+
<gallery>
esphome:
+
Datei:gaser_pipicow.jpg
  name: gaser
+
Datei:gaser_pipicow_top.jpg
 +
</gallery>
  
rp2040:
+
==Software==
  board: rpipicow
 
  framework:
 
    # Required until https://github.com/platformio/platform-raspberrypi/pull/36 is merged
 
    platform_version: https://github.com/maxgerhardt/platform-raspberrypi.git
 
  
# Enable logging
+
esphome
logger:
 
  
# Enable Home Assistant API
+
<nowiki>
api:
+
  esphome:
  encryption:
+
    name: gaser
    key: "changeme"
+
 
 
+
  rp2040:
ota:
+
    board: rpipicow
  password: "ch"
+
    framework:
 
+
      # Required until https://github.com/platformio/platform-raspberrypi/pull/36 is merged
wifi:
+
      platform_version: https://github.com/maxgerhardt/platform-raspberrypi.git
  ssid: !secret wifi_ssid
+
 
  password: !secret wifi_password
+
  # Enable logging
  use_address: 10.1.42.247
+
  logger:
  # Enable fallback hotspot in case wifi connection fails
+
 
  ap:
+
  # Enable Home Assistant API
    ssid: "Gaser Fallback Hotspot"
+
  api:
    password: "changeme"
+
    encryption:
 
+
      key: "changeme"
globals:
+
 
  - id: total_pulses
+
  ota:
    type: int
+
    password: "ch"
    restore_value: True
+
 
    initial_value: '0'  # hier kann der Gaszählerstand in Pulsen initialisiert werden. Also Zählerstand 1234,56 m3 zu 12345 bei einem G4 mit Puls 0.1
+
  wifi:
binary_sensor:
+
    ssid: !secret wifi_ssid
  - platform: gpio
+
    password: !secret wifi_password
    id: internal_pulse_counter
+
    use_address: 10.1.42.247
    pin:
+
    # Enable fallback hotspot in case wifi connection fails
      number: GPIO28
+
    ap:
      mode: INPUT_PULLUP
+
      ssid: "Gaser Fallback Hotspot"
    name: "Live-Impuls"
+
      password: "changeme"
    filters:
+
 
      - delayed_on: 10ms
+
  globals:
    on_press:
+
    - id: total_pulses
      then:
+
      type: int
        - lambda: id(total_pulses) += 1;
+
      restore_value: True
        - output.turn_off: led  # optional: für eine LED, die den Gaszählerpuls visualisiert
+
      initial_value: '0'  # hier kann der Gaszählerstand in Pulsen initialisiert werden. Also Zählerstand 1234,56 m3 zu 12345 bei einem G4 mit Puls 0.1
    on_release:
+
  binary_sensor:
      then:
+
    - platform: gpio
        - output.turn_on: led  # optional: für eine LED, die den Gaszählerpuls visualisiert
+
      id: internal_pulse_counter
sensor:
+
      pin:
  - platform: template
+
        number: GPIO28
    name: "Gasverbrauch"
+
        mode: INPUT_PULLUP
    device_class: gas
+
      name: "Live-Impuls"
    unit_of_measurement: "m³"
+
      filters:
    state_class: "total_increasing"
+
        - delayed_on: 10ms
    icon: "mdi:fire"
+
      on_press:
    accuracy_decimals: 2
+
        then:
    lambda: |-
+
          - lambda: id(total_pulses) += 1;
      return id(total_pulses) * 0.1;
+
          - output.turn_off: led  # optional: für eine LED, die den Gaszählerpuls visualisiert
# Optional: Diese LED soll blinken, sobald ein Signal vom Gaszähler erkannt wird
+
      on_release:
output:
+
        then:
  - platform: gpio
+
          - output.turn_on: led  # optional: für eine LED, die den Gaszählerpuls visualisiert
    pin: LED
+
  sensor:
    id: 'led'
+
    - platform: template
 
+
      name: "Gasverbrauch"
</nowiki>
+
      device_class: gas
 +
      unit_of_measurement: "m³"
 +
      state_class: "total_increasing"
 +
      icon: "mdi:fire"
 +
      accuracy_decimals: 2
 +
      lambda: |-
 +
        return id(total_pulses) * 0.1;
 +
  # Optional: Diese LED soll blinken, sobald ein Signal vom Gaszähler erkannt wird
 +
  output:
 +
    - platform: gpio
 +
      pin: LED
 +
      id: 'led'
 +
 
 +
  </nowiki>

Aktuelle Version vom 2. März 2024, 21:16 Uhr

Crystal Clear action run.png
gaser

Status: stable

Gaser counter.png
Beschreibung Gaszähler Impulse auslesen
Autor: raphii wu|wu
PayPal Spenden für Gaser

Description

Der 'Gaser' ist ein kompaktes Gerät, das an Gaszählern befestigt wird, um Verbrauchsimpulse zu erfassen und den Gasverbrauch digital zu schätzen. Der Raspberry Pi Pico W ist mit ESPhome geflasht und im Home Assistant eingebunden. Unser Gaszähler hat einen Magnet an der ersten Dezimalstelle sitzen, der den Reed-Sensor beim Umschlagen auslöst.


Hardware

  • Reed-Sensor
  • Raspberry Pi Pico W
  • Jumperwire
  • Heißkleber


Software

esphome

  esphome:
    name: gaser
  
  rp2040:
    board: rpipicow
    framework:
      # Required until https://github.com/platformio/platform-raspberrypi/pull/36 is merged
      platform_version: https://github.com/maxgerhardt/platform-raspberrypi.git
  
  # Enable logging
  logger:
  
  # Enable Home Assistant API
  api:
    encryption:
      key: "changeme"
  
  ota:
    password: "ch"
  
  wifi:
    ssid: !secret wifi_ssid
    password: !secret wifi_password
    use_address: 10.1.42.247
    # Enable fallback hotspot in case wifi connection fails
    ap:
      ssid: "Gaser Fallback Hotspot"
      password: "changeme"
  
  globals:
    - id: total_pulses
      type: int
      restore_value: True
      initial_value: '0'  # hier kann der Gaszählerstand in Pulsen initialisiert werden. Also Zählerstand 1234,56 m3 zu 12345 bei einem G4 mit Puls 0.1
  binary_sensor:
    - platform: gpio
      id: internal_pulse_counter
      pin:
        number: GPIO28
        mode: INPUT_PULLUP
      name: "Live-Impuls"
      filters:
        - delayed_on: 10ms
      on_press:
        then:
          - lambda: id(total_pulses) += 1;
          - output.turn_off: led  # optional: für eine LED, die den Gaszählerpuls visualisiert
      on_release:
        then:
          - output.turn_on: led  # optional: für eine LED, die den Gaszählerpuls visualisiert
  sensor:
    - platform: template
      name: "Gasverbrauch"
      device_class: gas
      unit_of_measurement: "m³"
      state_class: "total_increasing"
      icon: "mdi:fire"
      accuracy_decimals: 2
      lambda: |-
        return id(total_pulses) * 0.1;
  # Optional: Diese LED soll blinken, sobald ein Signal vom Gaszähler erkannt wird
  output:
    - platform: gpio
      pin: LED
      id: 'led'