Wer kann mir sagen, wofür der 10K Widerstand benötigt wird?
Ich habe mir folgendes ESP8266 bestellt.
In meinem aktuellen Setup mit diesem Reed-Kontakt welcher einen AT Wert von 15 - 25 hat.
Hier die technischen Daten zum Reed-Kontakt
Modell: MC 38; Kontaktkapazität: 0.5A (maximaler Schaltstrom)
Spannung: 100V; Nennleistung: 10W; Betätigungsabstand: 15-25mm, Größe (ca.): 2.8 x 1.5 x 1.3 x 1.6 x 0.6 cm (L * W * H)
Farbe: Weiß; Gehäuse Material
Kunststoff; Gewicht: 8g
Ich habe den Reed-Kontakt wie im nachfolgenden Bild zu sehen ist platziert. Leider bekomme ich keinen Schaltkontakt mit. Ich habe aber auch keinen Widerstand dazwischen sondern gehe direkt mit den Kabeln auf das ESP Board.
Zu deiner Frage bezüglich des 10k Widerstands. Meiner Meinung nach benötigt man den nur, wenn man den internen Pull-Up-Widerstand des ESPs nicht aktiviert. In deiner Konfiguration sollte der jedoch über Anweisung “INPUT_PULLUP” aktiviert werden.
Bei anderen scheint die verwendete Konfiguration schon funktioniert zu haben. Insofern tippe ich eigentlich darauf, dass dein Sensor noch nicht optimal platziert ist. Teste doch mit einem Magneten, ob Du den Reed-Kontakt zum Schalten und den ESP zum Zählen bekommst.
Meine Konfiguration sieht etwas anders aus, denn ich nutze die “pulse_counter”-Platform. Anbei meine Sensor-Konfiguration für meinen Gaszähler:
# Reports the counted pulse of the reed switch for gas consumption measurement
- platform: pulse_counter
id: pulse_counter_id
pin:
number: GPIO13
inverted: true
mode:
input: true
pullup: true
count_mode:
rising_edge: DISABLE
falling_edge: INCREMENT
internal_filter: 500ms
update_interval: 5s
total:
name: "Consumption gas quantity"
icon: mdi:meter-gas
id: pulse_counter_id_total
filters:
- multiply: 0.1
unit_of_measurement: "m³"
accuracy_decimals: 1
device_class: gas
state_class: total_increasing
erstmal vielen Dank für die Erklärung mit dem Widerstand.
Grundsätzlich schaltet der Reed Kontakt wenn ich einen Magneten dran halte und in Home Assistent sehe ich das auch. Ich hab in anderen Beiträgen gelesen, dass der AT wert mit unter entscheidend ist. Mein aktueller Reed Kontakt hat einen AT von 15-25. Ich habe mir jetzt einen neuen Reed Kontakt bestellt mit einem AT wert von 10-15. der sollte heute ankommen, dann kann ich mehr sagen.
Wollte nur sichergehen das ich nicht grundsätzlich etwas falsch gemacht habe.
Dann wird das wohl an dem Reed-Kontakt liegen. Mein Reed-Kontakt hat auch ein AT von 10-15.
Ich habe bei meinen Experimenten auch etwas herumprobieren müssen, bis ich die richtige Position gefunden habe. In meinem früheren Beitrag findest Du auch eine technische Zeichnung, auf der man erkennen kann, dass der Reed-Kontakt am besten in der hinteren unteren Ecke platziert sein sollte.
Vielleicht macht es auch Sinn auszuprobieren, wo der bei dir im Gehäuse sitzt, um die beste Position zu finden.
Ich habe einen einfachen Glaskolben-Reed-Kontakt genommen und den in einen Holzklotz so eingepasst, dass der Kontakt wirklich ganz hinten in der unteren Ecke des Schachtes fixiert ist. Von außen sieht das dann so aus:
Ja, das war die Position bei mir, wo der Reed-Kontakt geschaltet hat. Wichtig zu wissen ist, dass der Magnet sich an der Rolle befindet, die eine 10er-Potenz kleiner als die angegebene Auflösung der Impulse ist.
Mein Zähler hat eine Auflösung von 0,1 m³ angegeben. D.h. der Magnet muss sich an der “0,01 m³”-Rolle befinden. Damit gibt es einen Impulse bei jeder Umdrehung dieser Rolle und damit 1 Impuls / 0,1 m³.
Bei mir scheint der Magnet nun rechts an dieser Rolle montiert zu sein. Man kann auch auf dem Bild erahnen, dass der Abstand zu der nächsten Rolle (0,001 m³) etwas größer ist, um dafür Platz zu haben.
Jetzt bin ich verwirrt, beim meinem Gaszähler ist es wie bei dir, der Impulse bei 0,1 und der Magnet ist zwischen der Zahl 6 und 7 an der letzten Stelle des zählerwerks zu sehen. Wo muss jetzt der Reed Kontakt gesetzt werden?
Ich habe gerade unsere beiden Gaszähler (in unseren geposteten Bildern) verglichen. Ich glaube, dass es sich um genau den gleichen Typ, nämlich “G4 RF1”, nur mit jeweils einem anderen Label versehen, handelt. Insofern sollte bei Dir der Magnet an der gleichen Stelle zu finden sein.
Hier noch wie gewünscht meine komplette Konfiguration. Ich musste sie jedoch noch etwas kürzen, da bei mir am gleichen ESP auch noch ein Sensor für den Stromzähler hängt.
esphome:
name: consumption
comment: "Consumption ESP8266 controller"
esp8266:
board: d1_mini
# Enable logging
logger:
baud_rate: 0
# Home Assistant API
api:
# Set encryption key
encryption:
key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# Set pulse counter total from home assistant using this service call:
services:
- service: set_pulse_total
variables:
new_pulse_total: int
then:
- pulse_counter.set_total_pulses:
id: pulse_counter_id
value: !lambda 'return new_pulse_total;'
# OTA (Over The Air) updates
ota:
password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# WiFi settings and manual IP adress
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: xxx.xxx.x.xxx
gateway: xxx.xxx.x.x
subnet: 255.255.255.0
dns1: xxx.xxx.x.x
power_save_mode: none
reboot_timeout: 5min
# Only use fast connect, if only one repeater is reachable (like in the basement)
fast_connect: false
# Status LED configuration
light:
- platform: status_led
name: "Switch state"
pin:
number: GPIO2
inverted: True
# Sensor definitions for this device
# Please prefix the signal names by the component e.g. "Consumption" to get unique sensor names
sensor:
# Reports the WiFi signal strength/RSSI in dBm
- platform: wifi_signal
name: "Consumption WiFi signal strength"
icon: "mdi:wifi"
id: consumption_wifi_signal_db
update_interval: 5s
unit_of_measurement: "dBm"
device_class: "signal_strength"
entity_category: "diagnostic"
# Reports the WiFi signal strength in %
- platform: copy
name: "Consumption WiFi signal quality"
icon: "mdi:wifi"
source_id: consumption_wifi_signal_db
filters:
- lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
unit_of_measurement: "%"
device_class: ""
entity_category: "diagnostic"
# Reports the counted pulse of the reed switch for gas consumption measurement
- platform: pulse_counter
id: pulse_counter_id
pin:
number: GPIO13
inverted: true
mode:
input: true
pullup: true
count_mode:
rising_edge: DISABLE
falling_edge: INCREMENT
internal_filter: 500ms
update_interval: 5s
total:
name: "Consumption gas quantity"
icon: mdi:meter-gas
id: pulse_counter_id_total
filters:
- multiply: 0.1
unit_of_measurement: "m³"
accuracy_decimals: 1
device_class: gas
state_class: total_increasing
Also, ich gebe es auf mein einem “Günstigen” Reed Kontakt. Egal wie ich den positioniere, bekomme ich einfach keinen Impuls mit. Ich habe mir jetzt für knack 50€ den originalen Implusegeber bestellt, mal schauen ob ich den zum laufen bekomme.
Ich hätte trotzdem vorweg mal eine Frage. In meiner Konfiguration gebe ich ja einen Initialen Werte mit, da ich nicht nur sehen will wieviele Gas ich am Tag verbraucht habe, sondern auch den Zählerstand via HA im Blick habe möchte. Leider komme ich mit der Angabe und der Anzahl der Zahlen im “initial_value” noch nicht klar bzw. ich habe das Prinzip noch nicht verstanden. Mein aktueller Werte ist wie folgt (laut Zähler): 04313,966. Die führende “0” kann ich so in der Konfiguration aber nicht anwenden, da ich beim Installieren eine Fehlermeldung (#1) bekomme. Wenn ich die “0” weglasse und stattdessen den Werte wie in #2 angebe, dann ist das Komma an der falschen Stelle und der Wert stimmt nicht (# 3).
Wie schon weiter oben erwähnt bekommst Du von Deinem Gaszähler pro 0,1 m³ einen Impuls. D.h. 10 Impulse entsprechen 1 m³. Da der ESP die Impulse zählt, wird über die Lambda-Formel
lambda: |-
return id(total_pulses) * 0.1;
Die Anzahl der Impulse durch 10 geteilt.
Damit HA dir nun 4313,9 m³ anzeigt, muss der Zähler im ESP auf 43139 initialisiert werden.
Vielen Dank, jetzt funktioniert alles. Hab den originalen Impulsezähler jetzt installiert und er misst zuverlässig die Impluse. Hatte eine Denkfehler, dachte das alle drei Nachkomma stellen angezeigt werden müssen. Es wir aber nur die erste Nachkommastelle korrekt angezeigt. Nicht wundern im nachfolgenden Beispiel ist es aktuell …,000 im laufe es Tages wir sich der Wert änder …,100 …,200 usw.
In dem Zusammenhang würde ich gerne die Einheit vom m3 auf kWh ändern damit ich auch meine Kosten hinterlegen kann. Wer kann mir sagen ob das im Energy Dashboard überhaupt geht und wie ich das in HA ändere bzw. wie ich einen weiteren Sensor habe der mir den Wert in kWh anzeigt. Ich habe auf meiner Abrechung gesehen das die Formel wie folgt lautet:
Verbrauch in m3 x Z-Zahl (0,9674) x Brennwert (11,554) = Verbrauch in kWh
Moin,
das kannst du jetzt für das Energie Dashboard nicht mehr anpassen.
Einen neuen Sensor kannst du dir natürlich mit deiner Formel bauen und ihn dir auf deinem Dashboard ausgeben.
VG
Ich habe das genau andersherum gelöst und mir den Preis/m³ berechnet und entsprechend im Energiedashboard eingetragen. Folgende Formel habe ich genutzt:
Das mit der Umrechnung des Preises funktioniert jetzt @Stardust Danke.
Jetzt beobachte ich noch ein anderes Problem, bei dem ich nicht weiter komme. Wenn ich die die Firmware des ESP aus ESPHome heraus Update, bekomme ich anschließend eine meiner Meinung nach zuverlässigen negativen Wert. Das hat zur Folge das der Zählerstand anschließend nicht mehr passt. Kennt jemand das Problem und wie habt Ihr das gelöst?
Natürlich wird mein Zähler bei einem Neustart des ESP immer wieder auf 0 gesetzt, aber das ist für das Energie-Dashboard irrelevant, da nur der momentane Verbrauch (also die Änderung des Gaszählers) berechnet und verwendet wird. Wichtig ist jedoch, dass die “state_class” des Sensors auf “total_increasing” steht. Damit werden negative Änderungen (wenn der Sensor wie in diesem Fall auf 0 gesetzt wird) ignoriert.
Wie sieht denn deine aktuell verwendete ESPHome-Konfiguration aus?
Das ist das Problem mit dem Update, das ich auch habe.
Die Lösung: Keine Updates.
Der Startwert im Programm wird jedes mal nach einem Update wieder als Startwert genutzt.
Vielleicht gibt es einen Weg, nur den Impuls an Home Assistant zu melden und HA selbst inkrementiert den Wert um +1 und zeigt ihn an.
Aber das geht über meine Fähigkeiten hinaus.
Hallo, danke für deine Erklärung. Ich bin komplett neu in der ESP Welt und bekomme leider immer folgende Fehlermeldung bei Installieren des veränderten Codes.
INFO Successfully compiled program.
INFO Resolving IP address of esphome-web-cc6a84.local
ERROR Error resolving IP address of esphome-web-cc6a84.local. Is it connected to WiFi?
ERROR (If this error persists, please set a static IP address: WiFi Component — ESPHome)
ERROR Error resolving IP address: Error resolving address with mDNS: Did not respond. Maybe the device is offline., [Errno -5] No address associated with hostname
Hallo erst mal, ich bin hier das erste mal im Forum. Sehr interessante Beiträge zum Thema Gaszähler. Ich habe folgendes Problem: Der Reedkontakt erkennt den Impuls aber der Verbrauch erhöht sich erst nach ca 40 Sekunden. Woran kann das liegen, hat jemand eine Idee?
PitHBS