jplitza / esphome_components

Custom-made components that I use for ESPHome.
GNU General Public License v3.0
11 stars 12 forks source link

Funktion für Sendediode #1

Closed fitim7 closed 2 years ago

fitim7 commented 4 years ago

Hi! Ich danke dir erstmal für deine Arbeit hier.

Ich versuche aktuell auch meinen Zähler via ESPHome auszulesen. Dein custom_component ist das Einzige, was ich in Verbindung mit OBIS finde. Ist es möglich dein Component auch mit Stromzählern zu nutzen, die Ihre Daten nur ausgeben, wenn vorher eine Anfrage gesendet wird? Für meinen Stromzähler (Pafal 20ec3gr) ist das über den Volkszähler so möglich: https://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/pafal-20ec3gr Mit Tasmota ist das ganze hier erläutert: https://docs.google.com/document/d/1olSGZcaE_vkdNXzN_p0zGee61xKCcK3HJe3Al00xj2g/edit

Im Prinzip muss nur eine Sendemitteilung abgeschickt werden über TX, bevor RX dann die empfangenen Daten verarbeiten kann. Ich habe leider keine Ahnung vom Coden in diesem Bereich, und hoffe dass du dies irgendwie ohne großen Aufwand umsetzen könntest!

Liebe Grüße nach Bremen

jplitza commented 3 years ago

Sorry dass ich das Issue über ein Jahr nicht gesehen habe :see_no_evil: Das wäre möglich, aber nur mit Veränderungen am Code: Bisher wird nur passiv darauf gewartet, dass der Zähler etwas schickt. Stattdessen müsste aktiv ein Timer gestellt und nachgefragt werden. Das Parsen der Antwort wäre wohl identisch.

JoeyL-pf commented 2 years ago

Hi, ich bin auch gerade auf das Thema gestoßen. Habe einen Stromzähler ACE3000, der immer eine Initialisierungssequenz "2F3F210D0A" mit 300bd braucht, um die Daten auszugeben. Gibt es hierzu schon Neuigkeiten? VG

jplitza commented 2 years ago

Ich habe jetzt mal versucht, das zu implementieren. In der neuen Beispiel-Config gibt es den Block force_update, mit dem man Intervall und Payload, die gesendet wird, festlegen kann.

@fitim7 Beim Volkszähler-Link oben werden zwei Payloads mit 2 Sekunden Abstand geschickt: Einmal /?!\r\n (was das selbe wie der Hexstring 2F3F210D0A von @JoeyL-pf ist) und 2 Sekunden später \x06000\r\n. Ich würde das mal versuchen sofort zusammen zu schicken:

force_update:
  interval: 10
  payload: "/?!\r\n\x06000\r\n"

Denn so einen konfigurierbaren mehrstufigen Trigger einzubauen wäre recht viel Aufwand...

lein1013 commented 2 years ago

@JoeyL-pf Ich habe den AS 1440 - der auch auf 300baud läuft. Allerdings habe ich auch noch Probleme den sauber zum Laufen zu bekommen. Ich habe mal geforkt und mit dem uart text sensor (siehe https://github.com/lein1013/esphome_components/blob/master/example_uart_text_as1440.yml) bekomme ich die Zeilen sauber rein. Allerdings funktioniert das bei der obis komponente mit dem force_update leider noch nicht - da bekomme ich immer nur Fragmente (dürfte ein Buffer Thema sein!?)

jplitza commented 2 years ago

Ich habe die Funktionen zum Senden wieder entfernt, da wir in #9 festgestellt haben, dass ESPHome schon alles dafür mitbringt. Wie das geht habe ich in Commit 891e392bf462cf0839cfed2ec4104992ea1fe203 in der Beispielconfig vermerkt.