D0 Zähler SML auslesen mit Tasmota

  • habe einige Zähler mit der neuen Version laufen und kein instabiles Verhalten. Außerdem beruht ja die neue Version auf der alten, nur dass die Deskriptoren aus dem Scripter geladen werden statt aus dem Flash.

    da muss ein Fehler in deinem Script gewesen sein.

  • Ich habe aber auch gerade Probleme mit meinen Werten.

    Gas und Wasser, die vorher stabil waren, haben jetzt Abweichungen.

    Habe an Verdrahtung oder Position der "Sensoren" nichts geändert.

    Vorher waren es die Reboots, die seit 2.6'er Kernel behoben sind, die die Abweichungen verursacht hatten, so zu mindest meine Theorie.

    Ich weiß, als wir so auf Seite 18/20 waren, da waren die Werte immer 1a, keine Abweichungen, Und am Code für die Zähler habe ich auch nichts geändert.

    Gibt es vielleicht doch etwas, was wir nicht erkennen?

    Mqtt, Wlan Stärke,...?

    Mein Build ist jetzt 6 Tage alt und seit mind. 3 Tagen habe ich Abweichungen.

  • mac_switch

    dein descriptor ist sehr groß. dein Zähler gibt wirklich alle diese Werte aus ?

    Das Problem ist dass diese Daten eventuell nicht mehr in den IRQ Speicher der seriellen Schnittstelle passen (256 bytes)

    dort gibt es dann Überläufe und fehlende Daten.

    ABER wenn dein Script nur den Descriptor >D >B und >M enthält gibt es jedenfalls keinen Unterschied zur "alten" Version ausser dass der descriptor aus dem Script geladen wird und nicht aus dem Flash. (es wird dann im Scripter selbst keine Rechenzeit verbraucht)

    Um festzustellen ob es an der grossen Datenmenge liegen könnte kannst du mal was versuchen

    hier die beiden Zeilen auskommentieren dann dürfte eigentlich keine Lücke mehr entstehen.

    case FUNC_LOOP:

    SML_Counter_Poll();

    //break;

    //case FUNC_EVERY_50_MSECOND:

    if (dump2log) Dump2log();

    else SML_Poll();

    eventuell kannst du auch mal die Puffergröße für einen einzelnen Eintrag vergrößern

    #define SML_BSIZ 48

    sollte nämlich ein einzelner SML Wert dort nicht hineinpassen, gäbe es auch Lesefehler.

    #define SML_BSIZ 64

    sollte eigentlich immer reichen

    URBANsUNITED

    aber dein Stromzähler läuft richtig ?

    die Gas und Wasserzähler sind ein Problem wenn sie auf Pollmode stehen

    denn die Pollzeit wird nicht wirklich eingehalten. Wenn der ESP z.B. ein MQTT verschickt und da etwas warten muss kann er die Pollzeit von z.B. 10ms nicht einhalten.

    Als grundsätzliche Empfehlung für die Counter wäre hier besser den IRQ Mode mit vorgeschalteter Hardware Entprellung zu nehmen. da sollte eigentlich nicht schief gehen.

    der original Tasmota Counter arbeitet nur mit dem IRQ Mode kann aber nur eine Flanke entprellen und damit bräuchte er auch eine Hardware Entprellung für fehlerfreien Betrieb.

  • gemu2015 - dieses Script habe ich letztendlich verwendet, da nur diese Daten übertragen werden.

  • mac_switch

    wenn du in der script Version das script ausschaltest (Häkchen aus) solltest du doch zwischen beiden Version hin und her schalten können.

    (mit identisch aussehendem Display)

    das eine mal wird der Descriptor aus dem Flash, das andere Mal aus dem Script Editor gefüllt. (oder verwendest du dafür eine ältere sml version)

    wenn du dort einen Unterschied hättest wäre das extrem merkwürdig

  • Mit den Builds der letzten paar Tage habe ich auch wieder das Problem, dass ich ab und zu nicht auf die Weboberfläche komme (neuste core). Habe inzw. festgestellt, dass es helfen kann, wenn man den ESP zuvor via cmd oder Terminal anpingt. Kann allerdings auch nur ein subjektiver Eindruck sein.

    Grund für meine Fehlmessungen waren bei mir Schlussendlich ein zu langes nicht geschirmtes Kabel und der prellende Lichtschalter fürs Kellerlicht. Seit dem ich das Kabel so kurz wie möglich habe und einen neuen Schalter installiert habe, habe ich fast keine Fehlzählungen mehr. Pollzeit steht auf -20 für Wasser und 50 für Gas.

    gemu2015 Seit dem ich den Medianfilter mitlaufen lasse, sind auch die Fehlmessungen "weg" =)! Danke dafür!

  • Betreffend meiner Easymeter Q3D Problematik, habe ich die Rückmeldung vom Hersteller, dass die D0-Schnittstelle permanent alle 2 Sekunden die OBIS Daten sendet, also nichts freigeschalten oder aktiviert werden muss. Ich werde am Wochenende mal eine ältere Version flashen, um zu sehen ob es nicht doch an der neuen "Scriptversion" liegt.

  • Betreffend meiner Easymeter Q3D Problematik, habe ich die Rückmeldung vom Hersteller, dass die D0-Schnittstelle permanent alle 2 Sekunden die OBIS Daten sendet, also nichts freigeschalten oder aktiviert werden muss. Ich werde am Wochenende mal eine ältere Version flashen, um zu sehen ob es nicht doch an der neuen "Scriptversion" liegt.

    Hast du denn mal geschaut ob überhaupt etwas rauskommt?

    zb. Mit der Smartphonekamera im Dunkeln die IR-LED gefilmt? Zum Teil funktioniert das mit der Frontkamera besser als mit der Rückseitigen. Zumindest beim iPhone habe ich dies festgestellt. Alternativ mal: sensor53 d1 oder d2 in die Konsole getippt um zu schauen was und ob überhaupt irgendetwas ankommt? d1 falls du den O3D als 1 Zähler deklariert hast. oder eben d2...d3... falls als 2. oder 3. Zähler in der ">M" Angabe im Script.

    Als Gegenversuch könntest du es erst mit dem Q3B Zähler, der ja offensichtlich funktioniert, testen. Dort solltest du dann auf jedenfall Daten sehen die mit 1b 1b 1b anfangen. Zum deaktivieren der Ausgabe in der Konsole sensor53 d0 eingeben.

    Bzgl. der Easymeter Zähler habe ich folgendes gefunden, daher die Frage, bist du dir Sicher das er nur Obis Daten überträgt?

    Zitat

    Diese Smartmeter benutzen die OBIS Kennzahlen nur um verschieden Messgrößen zu kennzeichnen. Die Übertragenen Daten sind selbst kein OBIS sondern SML, ein zeilenbasiertes Protokoll das in DIN EN 62056-21 beschrieben ist.

    Quelle:

    Nachtrag:

    Tatsächlich scheint dein q3d Zähler nur OBIS auszugeben. Allerdings nicht über die Info Front LED sondern über die MSB Schnittstelle an der Oberseite des Zählers. Die FrontLED dient lediglich als Impuls (10000/kwh) Ich weiß nicht ob du dies wusstest.

    Siehe abb.5 Q3d

    Einmal editiert, zuletzt von sunburstc (17. September 2019 um 14:35)

  • Als grundsätzliche Empfehlung für die Counter wäre hier besser den IRQ Mode mit vorgeschalteter Hardware Entprellung zu nehmen. da sollte eigentlich nicht schief gehen.

    Danke gemu2015,

    das habe ich verstanden und auch schlüssig. Nur wie stelle ich das mit der Hardware Entprellung und dem IRQ Mode an?

    So sieht mein Teils des Scrips aktuell aus:

    +1,3,o,0,9600,Strom

    +2,2,c,0,50,Gas

    +3,0,c,0,10,Wasser

    Ich habe nen Wemos D1 Mini oder noch nen NodeMCU V3 liegen.

    Danke

    URBANsUNITED

  • Betreffend meiner Easymeter Q3D Problematik, habe ich die Rückmeldung vom Hersteller, dass die D0-Schnittstelle permanent alle 2 Sekunden die OBIS Daten sendet, also nichts freigeschalten oder aktiviert werden muss. Ich werde am Wochenende mal eine ältere Version flashen, um zu sehen ob es nicht doch an der neuen "Scriptversion" liegt.

    Ich habe den Q3D Zähler am Laufen.

    Hatte anfangs ein paar Probleme, die aber eher an mir bzw. meinem Kabel lagen.

    Nutze den BPW78A - Fototransistor zum Auslesen der Daten. Hatte vorher den BPW 40 Fototransistor, ging auch, aber irgendwie aber auch nicht. BPW78A ist besser.

    Mein Script sieht so vollständig aus:

    >M 1

    +1,3,o,0,9600,Strom

    1,=h --- Stromzähler ---

    1,1-0:1.8.0*255(@1,Verbrauch,KWh,Total_in,20

    1,1-0:1.7.0*255(@1,Aktueller Verbrauch,W,Power_curr,16

    1,1-0:21.7.0*255(@1,Verbrauch P1,W,Power_p1,0

    1,1-0:41.7.0*255(@1,Verbrauch P2,W,Power_p2,0

    1,1-0:61.7.0*255(@1,Verbrauch P3,W,Power_p3,0

    1,0-0:96.1.255*255(@#),Zähler Nr,,Meter_number,0

    #

    Gruß

    URBANsUNITED

  • Zitat
    Grund für meine Fehlmessungen waren bei mir Schlussendlich ein zu langes nicht geschirmtes Kabel und der prellende Lichtschalter fürs Kellerlicht. Seit dem ich das Kabel so kurz wie möglich habe und einen neuen Schalter installiert habe, habe ich fast keine Fehlzählungen mehr. Pollzeit steht auf -20 für Wasser und 50 für Gas.

    Kann sein, ich habe aber nichts verändert. Geschirmt ist da nicht wirklich etwas. Es liegt alles im E-Schrank. Ist die Tür geschlossen, fällt mein RSSI von über 90 auf 60 und kleiner. Daher hatte ich das Wlan und MQTT, wie gemu2015 eigentlich schon fast bestätigt, in Vermutung.

    Aber vorher ging es ja auch. Und das ist merkwürdig.

    Würde gerne mit den IRQ Mode testen. Weiß nur nicht wie

  • URBANsUNITED

    leider hab ich bisher kein breakout für so was gefunden. das Standard IC dafür ist der MC14490 (6 fach debouncer). Kann man natürlich problemlos auf eine Experimentierplatine löten. Oder die Standardschaltung hier nehmen. Trotzdem sollte das Kabel wenns etwas länger ist abgeschirmt sein.

  • Die pollzeit auf einen negativen Wert ändern. Dann benutzt du den irq Mode. Also bei dir -50 und -10