D0 Zähler SML auslesen mit Tasmota

  • Linking .pioenvs\sonoff-DE\firmware.elf

    .pioenvs\sonoff-DE\libFrameworkArduino.a(core_esp8266_main.cpp.o):(.text._ZL12loop_wrapperv+0x4): undefined reference to `setup'

    .pioenvs\sonoff-DE\libFrameworkArduino.a(core_esp8266_main.cpp.o):(.text._ZL12loop_wrapperv+0x8): undefined reference to `loop'

    .pioenvs\sonoff-DE\libFrameworkArduino.a(core_esp8266_main.cpp.o): In function `loop_wrapper()':

    core_esp8266_main.cpp:(.text._ZL12loop_wrapperv+0x21): undefined reference to `setup'

    core_esp8266_main.cpp:(.text._ZL12loop_wrapperv+0x2d): undefined reference to `loop'

    collect2.exe: error: ld returned 1 exit status

    *** [.pioenvs\sonoff-DE\firmware.elf] Error 1


    Wenn ich den Sonoff ohne.....

    #define USE_SML_M

    #ifndef USE_SCRIPT

    #define USE_SCRIPT

    #ifdef USE_RULES

    #undef USE_RULES

    #endif

    ....flashe ich den Sonoff,

    sobald ich aber in config_override.h die Eingange mache kommt die Fehlermeldung.

    Was kann das sein???

  • @URBANsUNITED

    Hast Du den BPW78A direkt auf die obere IR-Diodenabdeckung geklebt? Oder mit Abstand? Habe zwar auch damit experimentiert, aber ohne Erfolg.

    Wäre es u.U. möglich, dass Du (man) mir eine firmware baust?! Wären ja nur die WIFI Zugangsdaten, die Du von mir haben müsstest? Somit könnte ich den Fehler weiter eingrenzen.

    Hi!

    Hab ihn direkt oben drauf geklebt. Mit 2 Heißklebepunkten =O Isolierband zum Covern

    Hast du evtl. die Beine vertauscht?

    Hier noch mal ein Anschlussbeispiel, zwar für den Pi, musst du nur dann umdenken...

    https://wiki.volkszaehler.org/howto/simpler_ir_leser

    RX ist ja sauber auf der Platine vom Wemos zu lesen ;), der Rest ist selbsterklärend

    Hier meine Inspiration zum Stromzähler auslesen

    https://pgoergen.de/de/2018/05/bui…ng-head-for-1e/

    Bin ehrlich es hatte nicht auf anhieb geklappt, saubere Signal zu bekommen. Am besten ein Laptop daneben und per Terminal schauen, ob die Signale kommen.

    Brauchst du noch eine Firmware? Schick mir dann deine Daten. IP für den Wemos, Port und Wifi Daten

    Cheers

    URBANsUNITED

  • Brauchst du noch eine Firmware? Schick mir dann deine Daten. IP für den Wemos, Port und Wifi Daten

    Cheers

    URBANsUNITED

    Auch an dieser Stelle noch einmal ein Dankeschön für den Firmwarebuild-Service von URBANsUNITED ! Konnte die firmware.bin per esptool problemlos flashen und in Betrieb nehmen.

    Leider ist auch hiermit keine Besserung eingetreten.

    Wie bereits geschrieben kann es an der Hardware kaum liegen, da die Ausgabe am Q3B funktioniert. Ausserdem habe ich mal meine TV-Fernbedienung vor die IR gehalten und da wird etwas empfangen:

    Kann eigentlich nur noch am Zähler liegen.

  • Gerne!

    So wie ich es sehe, sitz das IR Auge nicht richtig. Fehlerhafte Ausgabe ist das Resultat.

    EDIT:

    Falsch gelesen. Ausgabe war per IR Fernbedienung

    Hast du das IR Auge korrekt verdrahtet? Emitter und Collector wie oben bebildert?

  • Hast du das IR Auge korrekt verdrahtet? Emitter und Collector wie oben bebildert?

    Klar habe ich das. Und es funktioniert ja auch wenn ich den NodeMCU mit IR an den Q3B halte. Nur eben an dem Sch… Q3D nicht. Das mit der Fernbedienung war nur ein "Schnelltest" um zu sehen ob die IR überhaupt was macht.

  • Das der Zähler defekt sein soll, konnte ich irgendwie nicht glauben. Also habe ich den Volkszähler-IR-Lesekopf mal angesteckt und mit minicom gelauscht. Und siehe da, es werden korrekt alle Daten ausgegeben.

    Jetzt weiss ich wirklich nicht mehr weiter.


    @URBANsUNITED

    Kannst Du vielleicht Deine mir geschickte firmware mal bei Dir 1:1 testen?

    Das ist wirklich sehr seltsam. Allerdings, wenn ich vor meinem Fototransistor eine Fernbedienung vorhalte, erhalte ich ganz viele "FF FF FF". Mag aber daran liegen, dass er bei mir als SML Statt OBIS konfiguriert ist.

    Hab es gerade kurz nachgebaut und getestet. Tatsächlich bekomme ich unterschiedliche Dinge angezeigt bei OBIS je nach dem welchen Knopf der Fernbedienung ich drücke.

    Benutzt habe ich den Code von URBANsUNITED

    Mir fällt kein Grund ein wieso es bei dir nicht funktioniert.

    Ich nenne hier einfach mal ein paar Dinge die du vielleicht schon probiert hast oder vielleicht auch nicht.


    • Mit dem Pullup-Widerstand experimentieren kleiner/größer
    • evtl. 625 Problem?
    • In den Einstellungen von Tasmota den Gerätyp nicht auf Generic gestellt? Vor allem müssen dort alle Pins auf NONE stehen.
    • Zuviel Fremdlicht
    • Mal mit SoftwareSerial probiert? Also anderen Pin statt RX benutzt ?
    • Das ">D" im Code ist wichtig. Auch wenn daraufhin keine Variable folgt.

    Wie genau hast du das mit dem Volkszähler ausgelesen?

  • Hallo sunburstc

    Vielen Dank für Deine Hinweise. Mit den Pullups und andere Pins probiere ich heute Abend noch einmal. Das 625 Problem habe ich ja mit dem NodeMCU nicht?! (ich habe jeweils mit einem WemosD1mini, mini Pro und NodeMCU getestet) . Und im Keller ist null Licht. ">D" Code ist immer drinn gewesen.

    Ich habe auch in der xsns_53_sml.ino zusätzlich meinen Zähler definiert und den Scripteditor temporär deaktiviert (gemu im Beitrag #669)

    Wie genau hast du das mit dem Volkszähler ausgelesen?

    Einfach die serielle Schnittstelle ausgelesen. Lesekopf an den USB-Port. Einstellungen 9600 7E1. Eigentlich so wie hier beschrieben: Testmöglichkeiten unter Linux

  • Jetzt habe ich an einen USB to TTL-Konverter meinen TEKT5400S+1K Pullup angeschlossen und wieder mit minicom die serielle Schnittstelle ausgelesen und was sehe ich !??

    Somit kann ich nun sämtliche Hardwarefehler eigentlich ausschliessen.

    Ich habe gleich anschliessend den NodeMCU angeschlossen. Anzeige alles mit "0", also unverändert.


    Weitere Erkenntnisse:

    -Die Positionierung muss ziemlich genau erfolgen. Nur wenige Millimeter Abweichung und es kommt nichts mehr an (habe den TEKT nun ordentlich fixiert)

    -ohne 1K Pullup geht es nicht

  • opferwurst

    bei NodeMCU hast du immer 470Ohm pullup an RX. das scheint aber in deinem Fall zu wenig zu sein, erst recht wenn du noch 1k parallel schaltest.

    die Sendeleistungen verschiedener Zähler Infrarotdioden sind sehr unterschiedlich.

    darum kann es mit einem Zähler reichen, mit einem anderen nicht.

    Nimm mal einen anderen Pin (der keinen internen Pullup hat) zusammen mit dem 1k Pullup dann sollte es gehen.

    Einmal editiert, zuletzt von gemu2015 (26. September 2019 um 17:13)

  • Nimm mal einen anderen Pin (der keinen internen Pullup hat) zusammen mit dem 1k Pullup dann sollte es gehen.

    Hallo gemu

    Besten Dank!

    Teilerfolg:


    Verwendetes Script :

    sensor53 d1 Ausgabe:

  • Top! Dann brauchst du ja nur noch die obis Werte für deinen Zähler anpassen. Da kannst du dich ja an den ausgelesenen Daten orientieren aus deinem vorherigen Post mit dem volkszähler.

    Als Hintergrund zu der pullup Thematik musst du bedenken, dass du bei Rx Mit dem internen pullup mit 470k deinen 1k Widerstand parallel schaltest und deshalb nur auf einen Gesamtwiderstand von RGes = 0,9K kommst.


    RGes = (R1*R2)/(R1+R2)

    Nachtrag:

    Wobei die Widerstände die beim NodeMCU verbaut sind genau wie beim Wemos variieren können. Das liegt vermutlich immer daran was die Chinesen gerade über haben ;). Laut "offiziellem" Datenblatt sollten es 470Ohm nicht kOhm sein. Das ergibt dann ca. 320Ohm. Wenn du also sichergehen möchtest was verbaut ist, musst du es wohl nachmessen.

    2 Mal editiert, zuletzt von sunburstc (26. September 2019 um 14:36)

  • So,

    ich hab gerade nochmal nachgemessen:

    Ich habe einen 4,7k Widerstand am RX für den Q3D Zähler.

    Bin jetzt auch aufn Nodemcu V3, wobei beim Wemos D1 clone es damit auch einwandfrei funktionierte.

    Das mit der Positionierung hatte ich ja schon geschrieben... ;) Minicom war damals auch bei mir im Einsatz.

  • bei vielen Zählern hat sich 4,7k als Pullup bewährt.

    Das kommt mit 4.7k heraus :

    Habe auch andere GPIOs und das gleiche noch am Wemos probiert. Habe ebenfalls 1k, 2.2k, 3.3k und 9.4k . Sieht alles mehr oder minder gleich aus in der Konsole. (ausser bei 9.4k kommen nur noch einzelne Symbole)

    Auch ein Tausch gegen den BPW78 brachte keine Änderung.

    Jemand noch ein Tipp ?