D0 Zähler SML auslesen mit Tasmota

  • Ist ein Wemos D1 mini.

    Pin14 ist auf eine Klemme rausgeführt, GND ebenso. Diese schließe ich momentan per Hand mit einer Drahtbrücke. Später soll da der Schließer-Kontakt eines Relais dran.

    Pin14 "vorspannen" mittels 10k Widerstand an 3.3v hab ich auch schon getestet. Selbes Resultat.

    Im Webinterface wird es ja richtig dargestellt wenn ich manuell schalte (HT/NT). Also grundsätzlich scheint die Umschaltung zu funktionieren, nur im Script eben nicht :/

  • Die "then"s fehlten in deinem Script.

    Zum Zeichensparen hab ich sie durch {} ersetzt.

  • Die "then"s fehlten in deinem Script.

    Zum Zeichensparen hab ich sie durch {} ersetzt.

    Tatsache, das wars. Jetzt gehts!

    Danke!!!

  • nachdem das Script so schön funktioniert hat, hab ich es für den zweiten Zähler erweitert:

    Sollte so doch passen.

    Problem ist jetzt aber: "EG" funktioniert problemlos, "OG" aber nicht.

    og_ht und og_nt updaten nicht wenn og_gesamt sich ändert. In der Konsole wird auch nichts von "OG HT:..." angezeigt.

    ABER: Wenn ich sensor53 c2 in die Konsole eingebe -> zack, og_ht updated sich auf die richtige Zahl! :/

    Bug?

    Ich verzweifel noch daran:D

  • Hallo zusammen, ich hab ein kleines Problem bei dem ich nicht weiter komme.

    Neben dem SML Zähler hab ich noch einen Einspeisezähler Eltako DSZ15D-3x80A.

    Dieser Zähler hat eine S0-Schnittstelle:

    Schnittstelle: lmpulsausgang S0 nach DIN EN 62053-31, potenzialfrei durch einen Optokoppler, max. 30V DC/2OmA u. min.5V DC. Impedanz 100 Ohm, Impulslänge 30ms,1000Imp./kWh

    Leider schaffe ich es nicht per Script den Zähler auf D5/GPIO14 zum Laufen zu bringen.

    Aktuell sieht das Script so aus. Der SML-Zähler funktioniert.

    Bin um jede Hilfe dankbar.

    Vielen Dank im Vorraus

  • HJS72 Wie genau hast du das denn verkabelt?

    Abgesehen davon, dass der Zähler offensichtlich 5v wünscht und die Eingänge am ESP "offiziell" nur 3,3V vertragen.

    1. Möglichkeit wäre:

    +2,14,c,1,10,S0

    ändern damit der GPIO 14 mit Pullup läuft.

    Von hieraus dann an D+. D- an GND.

    2. Möglichkeit

    +2,14,c,0,10,S0

    und 3,3V mit D+ verbinden D- an GPIO14.

  • Hallo zusammen........

    muss mich mal hier kurz melden da ich Probleme habe tasmota mit den Änderungen zu kompilieren.

    Möchte auch mittels Wemos D1 und Fototransistor meinen Stromzähler auslesehn und die Werte per MQTT weiterleiten.

    Bin nach der Anleitung von sunburstc vorgegangen und habe folgendes Schritt für Schritt gemacht.

    1. aktuelle Tasmota version heruntergeladen: https://github.com/arendst/Tasmota.git und in Platform IO geöffnet

    2. Habe die beiden Dateien

    platformio_override_sample.ini in platformio_override.ini

    user_config_override_sample.h in user_config_override.h umbenannt.

    3. Anpassungen in der user_config_override.h

    Code
    #ifdef USE_RULES
    #undef USE_RULES
    #define USE_SCRIPT
    #define USE_SML_M
    #define USE_SCRIPT_WEB_DISPLAY
    #define USE_SCRIPT_SUB_COMMAND

    da ich den Wemos D1 mini pro habe mit 4MB habe ich folgendes noch eingetragen

    Code
    #define USE_SCRIPT_FATFS -1
    #define FAT_SCRIPT_SIZE 4096
    #define USE_SCRIPT_FATFS_EXT
    #define SDCARD_DIR

    4. In der Platformio_override.h dann noch folgendes hinzugefügt

    Code
    board_build.ldscript        = eagle.flash.4m2m.ld

    Und natürlich noch den Upload Port angepasst und auf "built gedrückt".............

    So und dann jede Menge Fehler:

    hier ein Teil als Bild

    3 Mal editiert, zuletzt von pi_noob15 (2. Februar 2021 um 14:28)

  • pi_noob15

    Hallo!

    Leider ist meine Dokumentation nicht mehr aktuell. Das hatte ich auf der ersten Seite auch angemerkt.

    Es gibt ein paar Dinge die du noch ändern solltest, weil sie so nicht mehr existieren.

    Code
    #define USE_SCRIPT_FATFS -1
    
    #define FAT_SCRIPT_SIZE 4096
    #define USE_SCRIPT_FATFS_EXT
    #define SDCARD_DIR

    ändern zu:

    Mehr infos hierzu: https://tasmota.github.io/docs/Scripting-Language/ Abschnitt "Script buffer Size".

    Code
    #define USE_UFILESYS 
    #define UFSYS_SIZE 8192

    Auch hierfür brauchst du diese Linkerfile in der Platform.ini:

    Code
    board_build.ldscript        = eagle.flash.4m2m.ld

    Die Platformio_override wird nicht benötigt. Dadurch nutzt du auch eine nicht getesteten Core.

    Um Probleme auszuschließen empfehle ich inzw. die Sachen die sonst in die Platformio_override kamen in der Platformio.ini durchzuführen.

    Die Platformio_override muss dementsprechend wieder umbenannt werden.

  • Hi

    eine Frage, bin gerade am Einarbeiten in das Scripting und RS485

    ich will die Werte vom Sensor53 dumpen

    aber =>sensor53 d1

    liefert nichts in der Console

    Hat da jemand einen Tipp?

    Danke

  • so ich hab jetzt mal die Änderungen soweit gemacht(es sind ja nur diese beiden Dateien in die ich folgendes eingetragen habe), mehr nicht

    Platformio.ini

    board_build.ldscript = eagle.flash.4m2m.ld

    user_config_override.h

    #ifdef USE_RULES
    #undef USE_RULES
    #endif
    #define USE_SCRIPT
    #define USE_SML_M
    #define USE_UFILESYS 
    #define UFSYS_SIZE 8192

    kompilieren funktioniert jetzt, nur die Frage ob das mit dem letzten Parameter passt:

    #define UFSYS_SIZE 8192 -> ist das nicht zu groß für meinen Wemos D1 mini pro ?

  • Hallo.

    Ich Versuche schon seit längerer Zeit bei meinem s0 Zähler den aktuellen Verbrauch über ein Script anzeigen zu lassen. Nur leider bekomme ich es nicht hin. Der Zähler gibt 500imp/kWh raus. Angeschlossen ist die s0 Schnittstelle auf gpio2 und der tasmota counter zählt auch fleißig mit aber über den Script bekomme ich das leider nicht zum laufen.

  • Hallo pi_noob15,

    nein 8192 ist nicht zu groß für deinen Wemos D1 Mini.

    ok. Kompilieren hat geklappt :thumbup:

    Hab auch gleich das Skript im WebIf eingefügt.

    Jetzt muss ich nur noch auf meinen Fototransistor warten(evtl. hole ich mir auch nen Kopf-> wäre die sauberere Lösung).

    Habe parallel noch den Pin für meinen Zähler angefordert. Was ich nur nicht weiß ob dieser am optischen Ausgang permanent Information sendet, oder ob er erst "angeregt" werden muss.