D0 Zähler SML auslesen mit Tasmota

  • Hallo URBANsUNITED,


    ja bei deinem Gaszähler sind drei Nachkommastellen, die letzte gibt die Impulse, deshalb wird immer die zweitletzte einen Zähler größer.




    so sollte das im Webfrontet aussehen, also nichts einstellen, da ja alles über die xsns_95_sml.ino eingestellt wird.


    Bei Gerätetyp kann bei dir was anderes stehen, das habe ich für mich abgeändert in Tasmota.


    Nochmal so sieht es bei mir aus und funktioniert mit dem Gaszähler!

  • Hallo URBANsUNITED,


    ja bei deinem Gaszähler sind drei Nachkommastellen, die letzte gibt die Impulse, deshalb wird immer die zweitletzte einen Zähler größer.

    Danke für die Erklärung, auch wenn es immer noch nicht klar ist für mich.


    Angenommen:

    Gaszähler zeigt 1000,001 m² an, ich stelle den Counter1 auch auf 1000,001. Jetzt läuft er an, Gasbedarf ist da, der Gaszähler läuft und hält bei 1000,007 an, damm muss doch in der Tasmota auch 1000,007 stehen, oder? Oder wird jetzt erst bei 1000,010 der Zähler in der Tasmota erhöht und angezeigt? Und beim nächsten mal 1000,020 etc.?


    Gruß


    URBANsUNITED

  • Hallo URBANsUNITED,


    Nein!


    Dein Zähler zeigt die von dir genannte Zahl:

    • 1000,001
    • 1000,002
    • 1000,003
    • 1000,004
    • 1000,005
    • 1000,006
    • 1000,007
    • 1000,008
    • 1000,009
    • 1000,010 jetzt geht dein esp8266 Zähler um ",01" hoch beim Wechsel der dritten Stelle von 9 auf 0
    • 1000,011 usw.

    der nächste Wechsel beim esp steht dann bei 1000,020 an!


    So sieht das an meinem Zähler aus, die LED ist die Debug LED, leuchtet immer wenn ein Impuls zum esp gesendet wird (Wechsel von 9 zu 0).

    Könnte auch mal länger leuchten wenn der Zähler gerade beim Wechsel von 9 auf 0 stehen bleibt, da der Reedkontakt ja geschlossen bleibt!

  • AAAHHHHH! OK! Dann war ich ja fast richtig. Dachte aber vorher immer, jede Stelle wird angezeigt im esp


    ABER, dann kann die Anzeige aber ja auf 2 Stellig gesetzte werden. 3 macht dann doch keinen Sinn:


    alt

    "2,1-0:1.8.0*255(@100," D_GASIN ",cbm," DJ_GASIN ",3|" // 2

    neu

    "2,1-0:1.8.0*255(@100," D_GASIN ",cbm," DJ_GASIN ",2|" // 2


    Das muss mir bitte auch noch einer erklären:

    // Skalierungsfaktor (Divisor) (kann auch negativ sein oder kleiner 0 z.B. 0.1 => Ergebnis * 10)


    Mein jetziger Gaszählerstand ist bei 3804,500m³, 1 Impuls = 0,01m³

    Ist @100 bei 2 Stellen immer noch korrekt?

    Wie wird der Zählerstand übergeben? Counter1 380450 ?????




    Was nutzt ihr zum Auswerten? iobroker, openhab oder???


    DANKE!!!!!!

  • Hallo URBANsUNITED,


    ja das @100 sollte richtig sein, das musst du jetzt aber selber sehen ob deine Werte am esp mit dem Zähler übereinstimmen und auch bleiben.


    Ich wollte die drei stellen hinter dem "," behalten, letzte zeigt halt immer "0", egal wie sie am echten Gaszähler steht!


    Zum auswerten nutze ich zurzeit Excel und Thingspeak, soll aber irgendwann mal ne Datenbank werden.


    Zurzeit hänge ich an Universal3 fest bekomme dort keine Firmware kompiliert :cursing:,

    lösche gerade zum xten mal meine Arduino IDE aber komme nicht weiter, die Universal2 kompilieren sich Problemlos. :/

  • meierchen006


    OKI DOKI! Vielen Dank für deine ausführliche Erklärungen!!! DANKE!


    Uni3 bekomme ich ohne Probleme kompiliert. Nutze Atom aufm Mac und stelle in der platformio.ini


    ;env_default = sonoff-DE

    env_default = wemosd1-DE


    auf

    env_default = sonoff-DE

    ;env_default = wemosd1-DE


    meine user_config_override.h rein und die 95'er anpassen. Fertig

    Stelle dann auf Generic, wenn geflasht wurde.


    Cheers


    URBANsUNITED

  • So nachdem der Stromzähler jetzt funktioniert, wollte ich mal den Wasserzähler versuchen.


    Dafür habe ich einen Induktiver Näherungsschalter LJ12 A3-4-Z/BX an ein Wemos D1 mini angeschlossen.


    Als Info:


    Das kompilieren der Universal3 hat auch funktioniert. Ich nutze Atom auf Linux. Wie URBANsUNITED beschrieben hat musste ich in der platformio.ini auf env_default = wemosd1-DE stellen die user_config_override.h einfügen und in der my_user_config.h aktivieren.


    Dann noch meine zwei Zählereinträge (Strom und Wasser) wieder in der xsns_95_xml.ino einfügen.



    Mit der Universal3 klappt es jetzt auch mit den Befehlen sensor95 d1 bzw. sensor95 c1. Das wollte mir der Tasmota Version 6.5.0 nicht klappen.


    Mein Eintrag für den Wasserzähler


    Der Zähler zählt pro Umdrehung 1 Liter. Also ist ja @1000 richtig. Das ganze mit 3 Nachkommastellen. Angeschlossen an 4 (GPIO4 / D2) mit 100ms


    Jetzt habe ich noch nicht verstanden, warum sich der Zählerstand nicht bei jedem Signal um 1 erhöht. Angezeigt wird jetzt zb. 0,032cbm.

    (Den Counter1 habe ich zum test dem Pin GPIO4 zugweisen. Dieser zählt pro Impuls 1 weiter)

    Dieser steht jetzt auf 56



    Ist es hier auch so wie meierchen006 beschrieben hat? Verliere ich dadurch nicht an Genauigkeit?

  • Hallo Kalli01,


    zuerstmal welche Software aus Github nutzt du am besten immer die aktuellste.


    gemu2015 hat in den neuesten für die Wasserzähler ein IRQ Modus eingebaut.


    Diese rote "0" schaltet diesen IRQ Modus ein!

    Musst natürlich auch an deinen GPIO 4 anpassen.


    Bei mir hat der Wasserzähler auch nicht im POLL Modus, wie der Gaszähler funktioniert.


    Edit1

    Im POLL MOdus wie von dir eingestellt sind 100ms bestimmt zuviel, kannst auch dort mal mit 10 probieren

  • Mein Stand ist die Universal3 von vor ein paar Stunden.


    Ich habe das ganze noch nicht an den Zähler angeschlossen, sondern halte nur etwas Metall vor den Sensor.


    Also mit 50ms wird der Zählerstand nicht aktualisiert. Bin davon ausgegangen das 100ms zum testen erst einmal gut ist.

    Mit 0 ändert er sich sofort.:)


    Mit welchem Befehl kann ich den Zählerstand einstellen?


    Wenn ich den Counter1 für D2 einstelle, kann ich in der Konsole über Counter1 xxx den Stand einstellen. Ist das so gedacht oder geht das auch über Sensor95 c1 ???

  • Hallo Kalli01,


    Was hast du für ein Wasserzähler? (Foto?)


    Wie gut funktioniert jetzt dein:Induktiver Näherungsschalter LJ12 A3-4-Z/BX



    Hast du ein Schaltbild von deiner Schaltung an dem Wemos?


    Würde dein Näherungsschalter auch direkt mit 3,3V funktionieren?

  • Hallo


    Also es ist ein ES60-14 von Ebeling und Sohn

    Das kleine Rädchen mit dem silbernen Teil müsste sich pro 1 Liter einmal drehen.


    Also der Sensor funktioniert eigentlich gut. Ich habe eben mal 3V angeschlossen und er schaltet noch zwischen 3V und 0V hin und her. (ca 3mm Abstand mit einer Metall Pinzette). Die eingebaute LED klimmt dann aber nur noch. Das ganze aber ohne Garantie :D


    Die Widerstände dienen als Spannungsteiler, damit am Pin nur max 3.3V ankommen.


    Leider erkennt der Sensor die silberne Scheibe im Zähler nicht. Ich habe ihn hin und her bewegt aber die LED geht nicht an. Am Messing des Zählers geht sie sofort an.


    Also funktioniert der Sensor bei meinem Zähler NICHT!!



    Aktuell verwenden ich einen Lichtsensor (TRCT5000) Den kann man direkt an 3,3V anschließen. Zur Befestigung habe ich eine längere Schraube durch das Loch gesteckt und diese mit Kabelbindern am Zähler festgeklemmt.

    Den Wert in der Software habe ich im Moment auf 500ms stehen. Hier bin ich noch am probieren, mit welcher Zeit ich die wenigsten Messfehler habe.

  • Hallo Kalli01,


    Danke für deine Info und Bilder.


    ist dein Induktiver Näherungsschalter LJ12 A3-4-Z/BX ein NPN oder ein PNP Sensor?


    Mein Wasserzähler ist ein ITRON Aquadis+ mit CYBLE SENSOR

    Leider haben wir es noch nicht hinbekommen diesen Sensor zuverlässig mit dem ESP8266 NodeMCU zu verbinden und dieser Impulse richtig zählt,
    deshalb die Nachfrage nach deinem Sensor.

    Das Problem ist nicht der esp counter sondern der Cyble Sensor, da der gleiche esp Counter zuverlässig schon seit Monaten Impulse von einem Reedkontakt zählt, als Gaszähler.

  • Das ist ein NPN. In meinem Beitrag oben ist ein Link zu Amazon.

    Ich glaube für meinen Zähler gibt es auch so etwas aber den wollte ich jetzt nicht kaufen. Weiß ja nicht welchen Zähler ich dann bekomme.


    Habe mal kurz das Datenblatt des Cyble Censors geschaut. Wie viele Anschlüsse hat er denn?

    Das Signal müsste an HF und LF liegen. Wenn ich es richtig verstehe dann ist LF langsamer. Also würde ich es mit dem versuchen.


    In Tasmota kannst du für deinen Pin ja mal den Counter einstellen. Dieser hat bei mir auch gezählt obwohl ich die Zeit in der Zähler Config nicht richtig eingestellt hatte.

    Vielleicht ist der Impuls zu kurz.


    Falls du die Möglichkeit hast, würde ich mir das Signal mit einem Oszilloskop anschauen. Vielleicht kann man dann erkennen warum es der ESP nicht erkennt.


    Ich Merke gerade, das sind alles nur Vermutungen, aber vielleicht hilft es ja etwas :-)

  • Hallo Kalli01,


    glaube mir wir haben schon vieles probiert.

    • Es ist der Zweidraht Cyble Sensor, sollte ja nur bei jeder Umdrehung ein Impuls geben wie ein Reedkontakt.

    Ich habe jetzt mal den gleichen Sensor wie du bestellt, versuche den mit 3,3V

  • Hi!


    Nachdem mein Setup einwandfrei funktioniert, vielen Dank nochmals für die Hilfe!!!, geht es ans auswerten der Daten.

    Ich habe iobroker dazu installiert und würde die Werte gerne per MQTT grafisch darstellen und in eine Datenbank sammeln.

    Aber ich raffe es nicht, wie ich den String aufsplitten soll/muss.

    Ich bekomme diese Daten:

    {"Time":"2019-05-15T17:22:47","Strom":{"Total_in":19812.6091,"Power_curr":423,"Power_p1":33,"Power_p2":361,"Power_p3":29,"Meter_number":"1ESY116020xxxx"},"Gas":{"Count":3818.13}}


    Wie mache ich daraus einzelne Objekte zum Weiterverarbeiten?

    Installiert habe ich:

    MQTT Broker/Client

    SQL-ProtokollierungVisualisierung

    SourceAnalytix

    Flot-Diagrammen


    Wie man das in Vis darstellt, habe ich wohl begriffen. Datenbank läuft auch.


    Kann mir da noch mal jemand bitte helfen?


    Vielen Dank!!


    URBANsUNITED

  • Hallo URBANsUnited,


    da kann ich nichts zu sagen/schreiben, das sind alles Schritte die mir noch bevorstehen.


    Ich möchte erstmal die drei Hausversorgungszähler funktionsreif haben (zwei laufen schon lange) dann geht es weiter.


    Mir schwebt vor das ganze an einer Fritzbox 7320 zu machen, dazu habe ich auf dieser schon OPENWRT installiert, wenn das nicht funktioniert halt auf einem Raspi.

  • So ähnlich wie bei URBANsUNITED läuft es bei mir auch. Die Tasmota Zähler werden über den Adapter Sonoff Port 1884 eingefügt und andere ESPeasy /mega über den mqtt Adapter Port 1883


    Wie Gemu schreibt werden die Objekte dann automatisch angelegt und man kann sie speichern. Bei mir in einer InfluxDB.

  • DANKE!!!


    Genau das hatte ich gesucht! Danke gemu2015 für die Realisierung solcher Projekte!


    Falls jemand das gebrauchen kann... das iobroker.sonoff installiert man so:


    Anschließend geht man auf Adapter und klickt auf das Plus Symbol beim Sonoff Adapter.


    Ich habe für meinen Sonoff Adapter den MQQT Port jeweils auf 1884 gesetzt, weil ich noch einen zweiten MQQT Server auf 1883 laufen habe.

    Das wars schon und dann kommen fleißig die Daten unter MQQT rein


    Muss noch etwas optimiert werden, die Visualisierung



    Nochmals vielen Dank!!


    Bye


    URBANsUNITED