D0 Zähler SML auslesen mit Tasmota

  • habe noch eine Änderung vorgenommen die vielleicht jemand interessiert =>

    einen optionalen Medianfilter.

    Wenn ihr Bitfehler habt und als Konsequenz manchmal einen Ausreisserwert bekommt könnt ihr dies mit dem Median verhindern.

    Diese Bitfehler kommen besonders bei langen Zuleitungen vor. (ich habe z.B. einen Zähler (bzw Fototransistor) mit 2 Meter abgeschirmten Kabel angebunden). Da spielt auch der Pullup Widerstand eine Rolle. Bei ganz kurzen Zuleitungen reicht womöglich der im ESP "eingebaute" Pullup anderenfalls muss man einen externen dazu schalten. Die Werte dafür können zwischen 1 und 4,7k liegen.


    Gruß

    gemu

  • Hallo,


    habe jetzt zweimal neu Kompiliert mit 6.4.0 und 6.4.1 mit folgender Arduino IDE 1.8.8.


    bekomme immer englische Oberfläche und keine Zeilen mehr wo die Werte sein sollten.


    Meine user_config_override.h:

  • Hallo,


    ich habe es nun mit meinem Zähler EMH ehz-iw8e2a5l0eq2p nun auch zur Anzeige des aktuellen Verbrauchs geschafft!


    Ich habe dazu die Angaben des EHZH Zählers geändert in:

    Code
    // momentaner verbrauch bzw. einspeisung (Betrag!)
    const unsigned char seq3[8]={0x77,0x07,0x01,0x00,0x10,0x07,0x00,0xff};



    Gesamtverbrauch und Einspeisung zeigen noch beide den Gesamtverbrauch an, aber dass stört mich derzeit weniger.

    Danke für die tolle Arbeit und Unterstützung hier im Forum!


    Gruß Tobbes

  • Hallo meierchen006,


    wenn das vorher funktioniert hat dann mache diese Sachen wieder weg


    Code
    #define MY_LANGUAGE de-DE // German in Germany
    #define APP_TIMEZONE 99
    #define LATITUDE 70.123456 #define LONGITUDE 80.123456

    und lasse nur deine SSID mit Password und der Aufruf für die Gemu SML datei #define USE_SML


    Gruß

    Tedesco

  • Hallo Tobbes,


    poste doch mal dein Zähler String


    Gruß

    Tedesco

  • Hallo Tobbes,


    den kompletten String von dem Zähler den du gewählt hast also z.B. wenn du den zähler mit

    #define METER EHZH ausgewählt hast dann den passenden Code posten



    Gruß

    Tedesco

  • Achso, hier:


  • Achso, hier:


    Hallo Tobbes,


    du nutzt nicht mehr die aktuelle xsns_91_sml.ino nur zur info, aber da ja du keine Einspeisung hast kannst du diese einfach auskommentieren mit //

    Code
    //const unsigned char seq2[8]={0x77,0x07,0x01,0x00,0x01,0x08,0x01,0xff};

    ich würde aber die aktuelle xsns_91_sml.ino nutzen weil du da noch zusätzliche Werte selber übernehmen kannst, eigene Einheiten festlegen und sogar wenn nötig Rechnen kannst.


    Gruß

    Tedesco

  • Hallo,


    ich habe mangels Zähler schon mal meine xsns_91_sml.ino mit ein paar Möglichleiten anpassen wollen.


    Zähler EHZ363


    Bekomme bei der Zeile 13 den Fehler:


    expected unqualified-id before string constant


    Was mache ich da Falsch?


    Daten für Strom und Spannung muss ich noch suchen

  • Hallo Zusammen,


    ich versuche schon seit einiger Zeit meinen Zähler auszulesen und die Daten in den ioBroker zu bekommen, der ESP Sketch steht soweit und sendet die Daten direkt an den ioBroker Datenpunkt.
    Allerdings ist das erst Problem der ESP8266-01 schmiert nach einiger Zeit ab und macht nichts mehr.
    Und komischweise, obwohl beide Zähler also der Normale und der PV ZweiRichtungszähler im Klartext gleiche "Werte" bekommen, liest der Sketch nur den normlen Zähler aus, beim PV-Zähler nur die Zählernummer.


    Daher ist es natürlich genial das mit Tasmota machen zu können.

    Also kurzerhand nach der Anleitung auch ein nodeMCU1 gespielt, leider passier aber nix,

    ich bekomme keine Werte.

    habe bis jetzt probiert EHZ161_0 da die Kodierung gleich scheint...

    und Q3B.


    Muss ich noch irgendwas einstellen oder Konfigurieren?

    Als Lesekopf benutzt ich einen selbst gebastelten, ist jetzt zwar komplett für den ESP-01 aber das was am Pin Connector Pin 1 ist geht an RX des NodeMCU Boards...



    Die Rohdaten des normalen Zählers Easymeter Q3D:

    die Rohdaten des PV Zählers Easymeter Q3B:

    wobei die bei mir im Sketch "Serial.begin(9600, SERIAL_7E1); "

    gelesen werden und daher glaube ich umgewandelt werden in Klarschrift.


    Hat jemand ne Idee, wie ich das ganze einstellen muss?


    Oder ist der Q3D noch nicht auslesbar mit der modifizierten Tasmota?!?!?


    Danke

    Gruß Jens

  • damit ich der Ursache auf den Grund gehen, kann noch ne Frage...


    Wie ist das denn wenn der Sensor schon mal funktioniert, listet tasmota das in der Console
    auf was empfangen wurde oder nur wenn auch schon alles erkannt wird und auf der Hauptseite
    bereits dargestellt wird?


    Danke

  • Hallo Meierchen006,



    ohne mir die Sachen genauer anzusehen sehe ich das du dein Semikolon falsch gesetzt hast, der wird immer an das Ende gesetzt (Zeile 10)


    Gruß

    Tedesco

  • damit ich der Ursache auf den Grund gehen, kann noch ne Frage...


    Wie ist das denn wenn der Sensor schon mal funktioniert, listet tasmota das in der Console
    auf was empfangen wurde oder nur wenn auch schon alles erkannt wird und auf der Hauptseite
    bereits dargestellt wird?


    Danke

    Hallo AingTii,


    ja klar in dem du den log einschaltest, aber vergiss nicht danach wieder abzuschalten.

    Code
    // dump to log zeigt serielle Daten zu Testzwecken in der Konsole an
    // muss aber für Normalbetrieb aus sein
    #define DUMP2Log

    Gruß

    Tedesco

  • Hallo Jens,


    das sieht doch alles gut aus für dein Q3B würde ich den EHZ161_1 nehmen der müsste schon so laufen und für dein Q3D den EHZ161_0 (wie meiner :) .


    Gruß

    Tedesco

  • Hallo,

    ich habe immer noch Probleme mit dem mqtt connect zu ThingSpeak.

    Gerne würde ich daher eine aktuelle tasmota Version mit dem Treiber kompilieren.

    gemu2015 schrieb, dass man seinen Treiber mit allen tasmota verwenden kann.

    Wie gehe ich vor wenn ich den in eine aktuelle tasmota bauen möchte?


    Ich nehme den brandt: https://github.com/arendst/Sonoff-Tasmota/tree/master

    plattform.ini heißt hier wohl platformio.in anpassen auf den COM-port und Sprache auf DE setzen


    user_config_override_sample.h umbenennen in user_config_override.h und wlan Zugang eintragen (evtl auch Koordinaten und mqtt Zugang)

    Treiber mit #define USE_SML eintragen


    die user_config.h heißt hier my_user_config.h


    Die Datei xsns_91_sml.ino in dieneue tasmota kopieren


    in der xsns_91_sml.ino den Zähler auswählen #define METER EHZH (evtl Anpassung der Strings je nach Zähler)

    Code
    // momentaner verbrauch bzw. einspeisung (Betrag!)
    const unsigned char seq3[8]={0x77,0x07,0x01,0x00,0x10,0x07,0x00,0xff};


    Benötige ich noch weitere Dateien von gemu2015 in der aktuellen tasmota?


    Gruß tobbes