Guten morgen zusammen,
ich verfolge derzeit das Ziel, eine schöne jährliche Gasverbrauchsanzeige in einem Balkendiagramm auf meinem FHEM Dashboard zu realisieren.
Dass meine persönlichen Skills bei Weitem nicht ausreichen werden, ist mir bewusst, aber man wächst (hoffentlich) mit den Aufgaben 8)
Diverse Projekte, die das bereits erfolgreich umgesetzt haben, fand ich - auch hier im Forum - schon einiges.
Ausgangslage:
1x Reedkontakt
1x ESP8266 auf nodeMCU
1x WLAN im Keller
Das ganze Projekt inkl. Hard & Software ist für mich Neuland. Zunächst habe ich gestern erfolgreich ESP Easy geflasht und die kleine Platine erfolgreich mit fester IP-Adresse und dem Wireless LAN im Keller verbunden. Somit befindet sich das Dingen bereits im Netzwerk. Das ging einfach und schnell.
Danach ging es an einen Testaufbau, um einen Reedkontakt per "Pulse Counter" zum laufen zu bekommen. Als dies halbwegs zuverlässig funktionierte, verbrachte ich weitere 2 Stunden damit, eine vernünftige Position an unserem Gaszähler zu finden; letztlich auch mit Erfolg.
Ein erstes Problem, für das ich trotz trial & error keine Lösung finde: (wobei ich auch nicht weiß, ob es überhaupt ein Problem im weiteren Verlauf wird...)
Der Zählvorgang erfolgt derzeit auf "Total". Gestern im Testbetrieb erfolgte dies auf "Count". Dazwischen lag lediglich 1-2 Neustarts des ESP8266. Egal welche Einstellungen ich im Setup tätige, es hat irgendwie keinen Einfluss auf die Ausgabe.
Seither wird jeder Kontakt zwar zuverlässig mitgezählt, aber ausschließlich auf "Total".
Warum ist das so?
Danke vorab für Eure Hilfe.
Das ist normal.
Unter Count werden nur die Impulse bis zur nächsten Übermittlung an FHEM gezählt und dann wieder auf Null gesetzt, bei Dir also gemäß Angabe Interval alle 60 Sekunden.
Herzlichen Dank, das erklärt es natürlich.
Ich hätte noch eine Anschlussfrage aus aktuellem Anlass:
Die Zählwerte des ESP8266 werden im 30-Sek-Takt zu FHEM übertragen und dort in folgendem Device gezählt. Nun habe ich die vergangenen Tage regelmäßig alle Zählstände händisch notiert, um Abweichungen zu finden und Optimierungen durchzuführen.
Heute abend ist mir der FHEM-Rechner kurzzeitig abgestürzt und nach dem Restart war der Zählwert dieses unten genannten Devices anstelle von ca. 12.000 bei den hier gezeigten Total=9341 Inits.
Meine Frage(n):
- Wird dieser Zähler irgendwie "ausfallsicher" zwischengespeichert?
- Und falls (vermiutlich) nicht: besteht eine Möglichkeit dazu?
- Angenommen es gab keine Zwischenspeicherung o.ä., weshalb startete FHEM nicht mit u.g. Total = 0, sondern mit Total = 9341 ?
Zitat
Internals:
DEF 192.168.178.100 80 ESP_Bridge ESP_Easy1_reedkontakt
ESP_BUILD 20104
ESP_BUILD_GIT mega-20200204
ESP_BUILD_NOTES - Mega
ESP_Bridge_MSGCNT 136
ESP_Bridge_TIME 2020-03-02 21:18:32
ESP_NODE_TYPE_ID ESP Easy Mega
ESP_SLEEP 0
ESP_UNIT ESP Easy
ESP_VERSION 2
FUUID 5e4b9e12-f33f-4dec-70a4-577ccbaeae8b3b8d
HOST 192.168.178.100
IDENT ESP_Easy1_reedkontakt
INTERVAL 300
IODev ESP_Bridge
LASTInputDev ESP_Bridge
MAX_CMD_DURATION 1
MSGCNT 136
NAME ESPEasy_ESP_Easy1_reedkontakt
NOTIFYDEV global
NR 86
NTFY_ORDER 50-ESPEasy_ESP_Easy1_reedkontakt
PORT 80
STATE ree: 0 ree: 72571 ree: 2217
SUBTYPE device
TYPE ESPEasy
VERSION 2.18
READINGS:
2020-03-02 21:18:32 Total 9341
2020-03-02 21:16:22 presence present
2020-03-02 21:18:32 reedkontakt_Count 0
2020-03-02 21:18:32 reedkontakt_Time 72571
2020-03-02 21:18:32 reedkontakt_Total 2217
2020-03-02 21:18:32 state ree: 0 ree: 72571 ree: 2217
helper:
fpc 1583176248
pm:
Encode 1
JSON 1
received:
reedkontakt_Count 1583180312
reedkontakt_Time 1583180312
reedkontakt_Total 1583180312
sec:
admpwd
Attributes:
IODev ESP_Bridge
Interval 300
alias Gaszaehler_Hardware
group ESPEasy Device
presenceCheck 1
readingSwitchText 1
room ESPEasy
setState 3
userReadings Total monotonic {ReadingsVal("ESPEasy_ESP_Easy1_reedkontakt","reedkontakt_Total",0)}
Hallo Dracolein,
wäre es nicht sinnvoll das Device mit dem GasCalculator- Modul zu verarbeiten? Dann hättest du auch automatisch alle möglichen Auswertungen für dein Diagramm.
Gruß
Oh das tue ich bereits. Das hier gezeigte Device ist der Zähler, auf welches das Modul zurückgreift.
Das sollte eigentlich schon über Dein userReading Total erfolgen.
userReadings Total monotonic {ReadingsVal("ESPEasy_ESP_Easy1_reedkontakt","reedkontakt_Total",0)}
Allerdings scheint mir das userreading nicht korrekt zu sein.
Es müsste mMn so lauten:
userReading Total:reedkontakt_Total.* monotonic {ReadingsVal("ESPEasy_ESP_Easy1_reedkontakt","reedkontakt_Total",0)}
Damit bleibt der Wert von Total erhalten, auch wenn reedkontakt_Total wieder auf einen anderen Wert zurückfällt. Es wird ja nur die Differenz des Reading reedkontakt_Total zwischen neuem und alten Wert auf das neue Reading Total aufsummiert.
Der Hinweis auf trigger ist zwar (auch) wichtig, was die Frage nach dem Zählerstand angeht, ist hier aber das "Problem", dass FHEM zwischendurch abgeschmiert war - daher wurde der Readingwert nicht in der statefile gespeichert, sondern beim Start dann der letzte dort zu findende Wert genommen, und der war eben veraltet.
Um die durch sowas entstehenden Differenzen zu verringern, kann man nur zwischendurch "save" durchführen (bei einem shutdown (+restart) wird das automatisch gemacht), oder die statefile mittels "WriteStatefile()"-Aufruf separat abspeichern (kann aber zu Logmeldungen führen wenn cfg und statefile nicht zusammenpassen). Besser wäre es allerdings, die Absturzursache zu finden, normal ist das nämlich nicht...
ZitatAls dies halbwegs zuverlässig funktionierte, verbrachte ich weitere 2 Stunden damit, eine vernünftige Position an unserem Gaszähler zu finden; letztlich auch mit Erfolg.
Hallo Dracolein,
ich hab leider erfolglos versucht einen Reedkontakt am Gaszähler zu plazieren.
Da du 2 Stunden gebrauchst hast, muss es wohl einen besondernen Trick geben - willst du mir den verraten, bzw. wie du vorgegangen bist?
Viele Grüße Gisbert
Hallo Gisbert,
ich hab´s damals auch vergeblich mit einem Reed-Kontakt versucht.
Mit nem Hall-Sensor hat´s dann schlußendlich funktioniert...
Zitat von: Papa Romeo am 07 März 2020, 19:01:44
Hallo Gisbert,
ich hab´s damals auch vergeblich mit einem Reed-Kontakt versucht.
Mit nem Hall-Sensor hat´s dann schlußendlich funktioniert...
Hallo Papa Romeo,
das ist ja interessant, Hall-Sensoren hatte ich mir damals auch besorgt, dann aber nicht weitergemacht, da ich damals nicht wußte, wie ich die softwareseitig einbinden könnte; mit ESPs hatte ich da noch nichts gemacht.
Dann werde ich mich mal einlesen und einen Testaufbau realisieren. Ich hab die Siemens TLE 4905 L, hoffentlich sind die geeignet.
Viele Grüße Gisbert
Zitat von: Gisbert am 07 März 2020, 18:56:57
Hallo Dracolein,
ich hab leider erfolglos versucht einen Reedkontakt am Gaszähler zu plazieren.
Da du 2 Stunden gebrauchst hast, muss es wohl einen besondernen Trick geben - willst du mir den verraten, bzw. wie du vorgegangen bist?
Viele Grüße Gisbert
Leider gibt es da keinen Trick, den ich Dir mitteilen könnte. Man sieht halt als Laie von aussen schlecht, wo der Magnetkontakt seine Runden dreht im Zählwerk. Weiterhin wusste ich auch nicht den maximal möglichen Abstand des Reedkontakts, bei dem selbiger noch zuverlässig schaltet.
Kurzum, es war try and error.
Aber Du kannst gern mal ein Foto von Deinem Zähler hier reinstellen, vielleicht können wir Dir einen Tip geben.
Zitat von: Gisbert am 07 März 2020, 19:23:25
Ich hab die Siemens TLE 4905 L, hoffentlich sind die geeignet.
..soviel ich mich erinnern kann, hab ich den auch.
Zitat von: Papa Romeo am 07 März 2020, 22:08:18
..soviel ich mich erinnern kann, hab ich den auch.
Hallo Papa Romeo,
ich hab mal etwas mit dem nackten TLE4905L auf einem Breadboard rumprobiert. Je nach eingesetztem Widerstand und Messort kann man eine Spannung bzw. nahezu keine Spannung bei Ännäherung eines Magneten registrieren. Das funktioniert schon mal soweit, dass ich mit diesem Testaufbau dem Gaszähler auf den Leib rücken werde, um zu sehen, ob es vom Prinzip her funktioniert.
Jetzt kommt aber ein größeres ABER.
Der Hall-Sensor muss mit größer 3.8V betrieben werden, kein Problem ich hab ja 5V. Die Digitalein/ausgänge bei ESP8266 vertragen das aber nicht so doll. Ich bin mir unsicher, wo ich welchen Widerstand anbringen muss, welches V+ an den Ausgang des TLE4905L gehört, etc., damit der ESP überlebt. Meinst du, dass du mir eine Skizze anfertigen kannst, wie der TLE4905L und Widerstand verdrahtet und an den ESP8266 angeschlossen werden? Ich hab versucht das zu googlen und das Datenblatt zum TLE4905L zu verstehen, schaffe es aber nicht alleine. Im Datenblatt unter "Figure 8 Application Circuit" sind auch noch 2 Kondensatoren eingezeichnet, braucht man die wirklich?
Viele Grüße Gisbert
Ich habe gestern auch ein 12V Signal am ESP8266 GPIO anschließen müssen und kurzerhand einen Spannungsteiler aus 2 Widerständen gebastelt ,um das Signal auf 3V zu reduzieren.
Zitat von: Gisbert am 07 März 2020, 23:18:19
Meinst du, dass du mir eine Skizze anfertigen kannst...
Hallo Gisbert,
klar doch, look like this...
Hallo Papa Romeo,
die Schaltung funktioniert schon mal. Ich bekomme ~3.2V ohne Magnet und einige mV bei Annäherung eines Magneten.
Dieser Teil wäre dann schon mal geschafft.
Hallo Dracolein,
der schwierigere Part ist die Positionierung des Hall-Sensors. Ich habe einen Pipersberg G4 RF1c, siehe Bild und Datenblatt.
Wo um Himmelswillen positioniert man den Winzling von Hall-Sensor, und in welcher Frequenz läuft der Magnet einmal rum. Wenn es ein Umlauf bei der 3. Nachkommastelle ist, dann kann man es vielleicht durch Probieren rausbekommen. Wenn es die 1. Nachkommastelle ist, dann brauch ich ein Feldbett neben dem Gaszähler, und bei der 1. Vorkommastelle gebe ich auf. Bis jetzt habe ich ziemlich wahllos an verschiedenen Stellen probiert, jeweils mit mindestens einer Drehung der 3. Nachkommastelle. Nach 5 Minuten habe ich erstmal aufgegeben und hoffe hier auf Unterstützung.
Noch ein Hinweis die 6 der 3. Nachkommastelle hat eine Reflexionsschicht aufgeklebt.
Viele Grüße Gisbert
Hallo Papa Romeo und Dracolein,
googlen nach dem besagten Gaszähler führt zu dieser (https://www.symcon.de/forum/threads/40408-Anleitung-Pipersberg-G4-RF1-c-Gasz%C3%A4hler-an-ip-Symcon) Seite, in der gesagt wird, dass dieser Typ nicht per Reedkontakt ausgelesen werden kann. Angehängt ist noch eine weitere Beschreibung des Gaszählers mit den verschiedenen Typen "e" wie elektronisch, "o" mit Reedkontakt und "c" mit was anderem.
Auf der oben verlinkten Webseite wird gesagt, dass es mit einem induktiven Näherungsschalter funktioniert.
Ich werden diesen Weg mal beschreiten.
Viele Grüße Gisbert
Hallo Gisbert,
normal ist es die 3. Nachkommastelle (0.01 m3). Zumindest ist es bei mir so.
Kannst mal schauen, ob du zwischen der 6 und 7 der dritten Nachkommastell auch eine kleine Spiegelfläche hast.
Dann könntest du auch eine Reflexlichtschranke, wie z.B.
https://www.ebay.de/i/223898051348?chn=ps&norover=1&mkevt=1&mkrid=707-134425-41852-0&mkcid=2&itemid=223898051348&targetid=860476825588&device=c&mktype=pla&googleloc=9042127&poi=&campaignid=7219685408&mkgroupid=90355299118&rlsatarget=pla-860476825588&abcId=1139166&merchantid=112038509&gclid=CjwKCAiAzJLzBRAZEiwAmZb0aiv9O_LFQPJb48xsmYXAqk9HSSKJMQynBRljUd131ITYyLK8I6OYihoChRoQAvD_BwE
als Impulsgeber einsetzen.
Hab ich mal bei einem Wasserzähler so realisiert.
LG
Papa Romeo
Hallo Papa Romeo,
ich bin eine großen Schritt weitergekommen.
Ich hatte noch einen induktiven Näherungssensor LJ12A3-4-Z/BJ in meiner Sammlung. Der liefert auch noch mit 5.0V Versorgungsspannung ein eindeutiges Signal auf der Signalleitung bei Annäherung von Metall; man bekommt dann ca. 4.5V in der Spitze, die sich bei 4.38V einpendelt. Ohne Annäherung an Metall ist die Spannung < 1mV.
Jetzt kommt natürlich die unvermeidbare Bitte nach einem Schaltplan zum Anschluss an einem GPIO eines ESP8266.
Mindestens ein Spannungsteiler ist notwendig, um die Spannung auf ca. 3.3V zu bekommen.
Die meiste Zeit registriert der Näherungssensor kein Metall, dann liegen ca. 0V am GPIO an, es sei denn das Drehrad bleibt genau dann stehen, wenn der Näherungssensor ein Signal bekommt - dann würden die 4.5 bis 4.38V anliegen.
Könntest du mir nochmals eine Skizze machen (oder beschreiben), wie ich die Signalleitung an einen GPIO des ESP8266 anschließen muss?
Versorgungsspannung und GND sind mir klar.
Ist es elektrisch egal, ob die meiste Zeit 0V oder die runtergeregelte 3.3V am GPIO anliegen? Mit meiner Frage siehst du, auf welchem Niveau wir uns bewegen 8)
Bis hierher schon mal vielen Dank für deine großartige Unterstützung.
Viele Grüße
Gisbert
PS: Die Position am Gaszähler ist anhand des Datenblattes super leicht zu finden; d.h. dieser Teil der Aktion kann auch als erldigt betrachtet werden.
PPS: Das Datenblatt des Näherungssensors sagt, dass der Outputstrom 300 mA beträgt, das dürfte eindeutig zuviel für einen GPIO sein. Gemessen habe ich mit den oben beschriebenen Bedingungen (5V Versorungsspannung) ca. 67 mA, auch noch viel zuviel für einen GPIO.
Hallo Gisbert,
der Ausgangsstrom des Sensor´s spielt hier keine Rolle. Die Dinger sind auch dazu gedacht direkt eine Relais anzusteuern deswegen der hohe mögliche Ausgangsstrom. In der Anwendung wie du ihn nutzen willst, fließt nicht einmal annähernd soviel Strom.
Bei der Version 1 (Anhang) fließt der Strom, den der interne Pullup zulässt (nicht vergessen Diesen im Sketch zu aktivieren).
Funktioniert wie folgt: Stehen am Ausgang des Sensor´s 4.5 Volt an, ist die Diode in Sperrichtung und am GPIO stehen, durch den internen Pullup
oder wenn gewünscht auch durch einen externen Pullup (z.B. 10 kOhm), 3.3 Volt an. Geht der Ausgang des Sensor´s auf LOW, ist die Diode in
Durchlassrichtung und am GPIO verbleiben etwa 0.5 bis 0.7 Volt.
Bei der Version 2 (Anhang) fliessen 0,1 mA (12/33 kOhm) bzw. 1 mA (1.2/3.3 kOhm). Ob ständig 0 oder 3.3 Volt an GPIO liegen spielt keine Rolle.
Funktioniert nach dem normalen Spannungsteiler-Gesetz. Ua = Uges * Ra / Rv + Ra --> Ua = 4.5 * 33 / 12 + 33
Ich hoffe du kommst klar damit.
LG
Papa Romeo
Den Strom vom Sensor brauchst du ja nicht am GPIO, den musst du nur von der Stromversorgung her bereitstellen. Eigentlich verträgt wohl der Esp an den GPIOs 5V, ich habe in einem anderen Thread dazu Links. Wenn du das nicht riskieren willst, dann eben per Spannungsteiler.
<edit> papa romeo war wieder mal schneller [emoji41]
Gesendet von iPad mit Tapatalk Pro
Hallo,
ich habe mal den Faden überflogen.
Gern kannst du deinen ESP auch mit dem Projekt von hier
https://github.com/elektron-bbs/ESP-Gaszaehler-GZ16
flashen. Somit hast du direkt die Diagramme zum aufrufen und parallel auch eine MQTT Anbindung zu FHEM.
Ich habe somit sämtliche Statistiken.
Liebe Grüße
BeispielScreens anbei
(https://uploads.tapatalk-cdn.com/20200309/0aa77253143ce3df49cfa7eba9fd5e80.jpg)
(https://uploads.tapatalk-cdn.com/20200309/e54e6d487d7558fd26a9eb64943fcc35.jpg)
(https://uploads.tapatalk-cdn.com/20200309/a48f59c9c7740b310e1a972f711f56de.jpg)
Gesendet von iPhone mit Tapatalk Pro
Zitat von: Papa Romeo am 08 März 2020, 21:28:56
Hallo Gisbert,
der Ausgangsstrom des Sensor´s spielt hier keine Rolle. Die Dinger sind auch dazu gedacht direkt eine Relais anzusteuern deswegen der hohe mögliche Ausgangsstrom. In der Anwendung wie du ihn nutzen willst, fließt nicht einmal annähernd soviel Strom.
Bei der Version 1 (Anhang) fließt der Strom, den der interne Pullup zulässt (nicht vergessen Diesen im Sketch zu aktivieren).
Funktioniert wie folgt: Stehen am Ausgang des Sensor´s 4.5 Volt an, ist die Diode in Sperrichtung und am GPIO stehen, durch den internen Pullup
oder wenn gewünscht auch durch einen externen Pullup (z.B. 10 kOhm), 3.3 Volt an. Geht der Ausgang des Sensor´s auf LOW, ist die Diode in
Durchlassrichtung und am GPIO verbleiben etwa 0.5 bis 0.7 Volt.
Bei der Version 2 (Anhang) fliessen 0,1 mA (12/33 kOhm) bzw. 1 mA (1.2/3.3 kOhm). Ob ständig 0 oder 3.3 Volt an GPIO liegen spielt keine Rolle.
Funktioniert nach dem normalen Spannungsteiler-Gesetz. Ua = Uges * Ra / Rv + Ra --> Ua = 4.5 * 33 / 12 + 33
Ich hoffe du kommst klar damit.
LG
Papa Romeo
Hallo Papa Romeo,
ich hab mich entschlossen den induktiven Näherungssensor mit 12V zu betreiben.
Ich hab mittlerweile auch den Adapter per 3D-Druck zur Montage am Gaszähler; das passt alles perfekt und der Sensor mit seiner LED leuchtet.
Bei letscontrolit.com (hier (https://www.letscontrolit.com/wiki/index.php/LJ12A3)) wir die im Bild angehängte Schaltung vorgeschlagen. Diese ähnelt zumindest deinem Vorschlag 1.
Von den Bauteilen habe ich alle bis auf den BC-547, ich hätte aber den BC-337 - vom Datenblatt her sind die sich ziemlich ähnlich.
Wie ist deine Meinung zur Lösung bei letscontrolit.com unter der Prämisse, dass ich den Sensor mit 12V betreibe, und kann ich den BC-337 statt des BC-547 einsetzen?
Brauch ich dann auch den pull-up-Widerstand am GPIO?
Viele Grüße und bleib gesund
Gisbert
Hallo Gisbert,
den BC337 kannste auch verwenden. Er verträgt einfach nur etwas mehr Leistung wie der BC547.
Die 12 Volt können auf Grund der Diode (ist in Sperrrichtung für die 12 Volt) nicht auf den GPIO
wirken. Wenn Du also den Pullup nicht softwäremäßig setzt oder setzen kannst, solltest du ihn schon einbauen,
damit der GPIO seinen definierten 3.3 Volt HIGH-Pegel bekommt, wenn der Transistor nicht geschaltet hat.
Gruß und coronafreie Zeit
Papa Romeo
Hallo Papa Romeo,
im Testaufbau (ohne ESP) funktioniert es mit dem Schaltplan von letscontrolit.com (BC337 statt BC547) und dem pull-up mit 10 kOhm wie folgt:
- keine Detektion von Metall: 3.305V
- Detektion von Metall: 0.562V
Lasse ich den pull-up-Widerstand weg bekomme ich folgendes:
- keine Detektion von Metall: ungefähr 0V
- Detektion von Metall: -1.43 bis -1.47V
Auch wenn ich den negativen Spannungswert nicht verstehe, so überzeugt mich die Funktion des pull-up-Widerstands.
Jetzt muss ich das ganze noch zusammen"fummeln" und an einen bestehenden KANNIX anflanschen.
Viele Grüße, stay save and healthy
Gisbert
Zitat von: Gisbert am 29 März 2020, 11:50:53
Auch wenn ich den negativen Spannungswert nicht verstehe, so überzeugt mich die Funktion des pull-up-Widerstands.
Hallo Gisbert,
ohne Pullup hat dein ESp eine Open-Kollektor. D.h. idealerweise einen unendlichen Widerstand.
Störspannungen die nun auf den 12 Volt liegen können, gelangen über den 10 k Widerstand
an die Diode, die dann wie ein Gleichrichter wirkt. Aber eben für negative Spannungen, weil sie
für diese in Richtung hochohmigem GPIO in Durchlassrichtung geschaltet ist.
LG
Papa Romeo
Hallo Dracolein,
hallo Papa Romeo,
das war mal wieder eine Mordsaktion für mich. Zunächst hatte ich den Aufbau wie bei letscontrolit.com realisiert, indem ich die Bauteile aneinander gelötet hatte und mit Schrumpfschläuchen geschützt hatte. Nachdem ich die Schaltung an einen existierenden KANNIX (wegen der Spannungsversorgung) und an einen vorhandenen Wemos D1 Mini (wegen freien GPIOs) verbunden hatte, und den Näherungsschalter mit externen 12V versorgt hatte, hatte ich kein Ergebnis in ESPEasy - Frust.
Ich hab mich dann entschlossen, den Näherungsschalter mit 5V vom KANNIX zu versorgen. Außerdem habe ich die Schaltung auf einem Löt-Breadboard/Platine (habe im Moment keine deutsche Bezeichnung parat) aufgebaut, das war schon mal viel übersichtlicher. Leider habe ich die Anschlüsse als Drähte ausgebildet, was wiederrum sehr fummelig war. Mir ist zu spät eingefallen, dass ich Jumper-Buchsen hätte einlöten können, was einen viel einfacheren Abschluss bei der Platine und Anschluss per Jumperkabel an die vorhandenen Controller bedeutet hätte. Aber letztlich funktioniert es, und ich bekomme in ESPEasy Werte beim Device Generic - Pulse counter rein.
Die Readings Count, Total und Time bekomme ich auch in ein Fhem-Device rein - soweit so gut.
Ich bin natürlich auf das GasCalculator-Modul gestoßen, aber dieses Modul überfordert mich heute abend noch leicht (um nicht zu sagen deutlich).
Wie wertet ihr die Count-, bzw. Total-Readings aus? Falls ihr mit dem GasCalculator arbeitet, dann wäre ich für einen Schubs, bzw. Idee für die Definition dankbar.
Viele Grüße Gisbert
Zitat von: Gisbert am 30 März 2020, 20:11:07
... auf einem Löt-Breadboard/Platine (habe im Moment keine deutsche Bezeichnung parat) ...
Steckbrett ;)
Leider kann ich Dir mit Deiner Schaltung nicht weiterhelfen, sorry.
Gruß Peter
Hallo Peter,
die Hardware und die Übertragung nach Fhem per MQTT funktioniert.
Ich bekomme die readings Count, Total und Time, die ich in einem Fhem-Device subskribiere.
Meine Frage bzw. Hilferuf ging in die Richtung, wie ich diese Information jetzt sinnvoll auswerte.
Das Modul GasCalculator ist wahrscheinlich eine gute Wahl, aber der Thread im Forum und der Beitrag im Wiki haben mich erstmal ein wenig erschreckt.
Ich habe noch keine Ahnung, wie ich da konkret mit der Definition eines Devices anfangen soll.
Für heute wir das eh nix mehr, zu spät, aber wenn mir jemand unter die Arme greifen möchte, dann ist Hilfe willkommen.
Vielen Dank und viele Grüße
Gisbert
Ich weiss jetzt nicht, wie das bei Dir aufgebaut ist. Bei mir wird der Gaszähler aus einem HTTPMOD ausgelesen. Entscheidend ist das Reading Gas des Devices Heizungskeller, also [Heizungskeller:Gas] enthält den Zählerstand (wobei ich auf 1/1000 Kubikmeter ausgeben lasse). Und dann einfach das hier probieren:
defmod Gasrechner GasCalculator Heizungskeller:Gas.*
attr Gasrechner BasicPricePerAnnum 191.4
attr Gasrechner Currency €;
attr Gasrechner DecimalPlace 3
attr Gasrechner GasCounterOffset 0
attr Gasrechner GasCubicPerCounts 0.01
attr Gasrechner GasNominalHeatingValue 10.8570475
attr Gasrechner GasPricePerKWh 0.0512
attr Gasrechner GaszValue 1
attr Gasrechner MonthOfAnnualReading 10
attr Gasrechner MonthlyPayment 205
attr Gasrechner ReadingDestination CalculatorDevice
attr Gasrechner SiPrefixPower W
attr Gasrechner Volume m³;
attr Gasrechner stateFormat {substr(ReadingsVal($name, "Heizungskeller_Gas_EnergyCostDayLast", "0"), 0, 4) . " € <font color=\"gray\"> (Mittel ".ReadingsVal($name, "Normverbrauch", "0")." €)</font>"}
In der Definition steht der Verweis auf die Zahlen des Zählers, dann: Grundpreis 191.4, Währung Euro, drei Dezimalstellen, beginnt bei O, alle zehn Werte ein Durchlauf, Heizwert meines Gases (steht auf der Rechnung), Gaspreis, Abrechnung im Oktober, Monatsrate 205€ usw.
Hallo andies,
auf diese Definition, bzw. vergleichbar bin ich mittlerweile auch gestoßen (auf dem Handy war es dann doch zu mühsam); das hat mir tatsächlich im GasCalculator-Wiki und -Thread als Orientierung gefehlt.
defmod Gasrechner GasCalculator Heizungskeller:Gas.*
Ich glaube, dass ich mit deinen Erklärungen schon weiterkomme.
Vielen Dank Gisbert
Hallo andies und alle anderen smarten Gaszähler ;D 8),
ich hoffe, dass ich nicht der einzige mit folgendem Problem bin.
Nachdem ich erst einzelne Fehlmessungen, zumindest glaube ich, dass es sich um solche handelt, gesehen habe, ergab sich gestern zwischen ca. 16:00 und 20:00 eine ganze Reihe von kurzen Impulsen, die auf Fehlmessungen hindeuten. Das GasCalculator-Modul verarbeitet die Daten aus einem anderen Fhem-Device, weshalb ich die Ursache eher dort sehe, bzw. in der zugrunde liegenden Hardware (induktiver Näherungssensor, ESP8266 mit ESPEasy und Puls Counter).
Nach 10 Tagen hat der GasCalculator 1.43 cbm mehr auf dem Zähler als der mechanische. Überwiegend war in dieser Zeit nur der WW-Speicher in Betrieb, was vermutlich das Risiko für Fehlmessungen erhöht. Die Differenz kam nicht auf einen Schlag sondern nach und nach. Das erste Mal ist es mir aufgefallen, als die Differenz bei 0.5 cbm lag.
Die Ursache wäre damit eingegrenzt auf die Messung. Ich benutze ESPEasy, GIT version: mega-20190202, Pulse Counter, Debounce Time 1000 ms, Mode type FALLING zum Auslesen des induktiven Näherungssensors.
Gibt es bessere Einstellungen bei ESPEasy, andere Software oder zusätzliche elektronische Filter, z.B. Schmitt-Trigger, um dieses Problem in den Griff zu bekommen?
Viele Grüße Gisbert
Der Sensor meldet Impulse, wenn keine da sind? Anders kann ich mir das jetzt nicht erklären. Wäre die Frage, wann er das macht. Ich hatte mich damals daneben gesetzt und festgestellt, dass mein optischer Sensor nur Unsinn misst. Hier muss das Problem diffiziler sein.
Wenn ich mir die beiden Grafiken ansehe, fällt mir auf, dass der Temperaturverlauf im betreffenden Zeitraum sich nicht vom Rest großartig unterscheidet.
Stellt sich also die Frage, was in diesem Zeitraum anders war, also evtl. externe Störquellen aktiv waren.
Meinen Gaszähler erfasse ich über einen Reedkontakt. Zunächst noch ohne Pull-Up/Down Widerstand hat schon das Einschalten des Lichts zu Fehlimpulsen geführt.
Zum Entprellen des Reed-Kontaktes habe ich hier etwas geschrieben:
https://forum.fhem.de/index.php/topic,105348.msg998556.html#msg998556 (https://forum.fhem.de/index.php/topic,105348.msg998556.html#msg998556)
Welchen GPIO benutzt Du? GPIO 16/D0 soll lt.ESpEasy nicht verwendet werden.
Norbert
Gisbert, wie "sauber" sind deine 12 Volt.
Hallo zusammen,
zuerstmal vielen lieben Dank, dass ihr gleich mit Vorschlägen bzw. Anregungen geantwortet habt.
Ich nutze die Schaltung, die bei letscontrolit.com wiedergegeben wird. allerdings mit 2 Änderungen:
- statt der 12V habe ich die 5V vom KANNIX angezapft
- Das Signal geht an GPIO4 (D2) und wird über einen 10 kOhm-Widerstand auf 3.3V gezogen
Der Näherungssensor ist mit 6-36V spezifiziert, vielleicht sind die 5V vom KANNIX einfach grenzwertig. Ich hatte vor, allerdings ist das Teil noch nicht eingetroffen, die 5V vom KANNIX auf 12V zu erhöhen, es handelt sich um diese (https://www.ebay.de/itm/Boost-Charger-Buck-DC-Step-Up-Down-Converter-XL6009-Module-Voltage-for-Mobile/153156371923?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649).
Viele Grüße Gisbert
Hallo Gisbert,
ich für meinen Teil würde sagen..... Fehler gefunden. 5 Volt sind dann doch etwas knapp und ich denke du tust gut daran den Step-Up einzubauen.
Mir ging es bei meiner Flaschenfüllanlage ähnlich. Wollte den im Anhang zu sehenden Hallsensor als Endkontakt für den Schrittmotor einsetzen.
Spezifikation: 6 - 36 Volt. Betriebsspannung auch über den Kannix: 5 Volt.
Ging 15 bis 20 mal gut... der Motor blieb stehen wo er sollte und auf einmal lief er zwischendurch wieder mal auf Anschlag.
Das Oszi zeigt dann, dass der Hall-Sensor keine sauberen Schaltschwellen lieferte. Durch eine externe Spannung von 9 Volt für den Sensor konnte
der Fehler behoben werden.
Gruß
Papa Romeo
Hallo Papa Romeo,
vielen Dank für den Lösungsvorschlag und die Erklärung. Mir dämmerte schon im Unterbewussten, dass ich hier ein einzigartiges Problem kreiert habe, da ich von solch einem Fehlerbild im Forum nichts gelesen habe. Sobald das Step-up-Modul da ist, werde ich es einsetzen und später darüber berichten.
Viele Grüße Gisbert