Beiträge von gemu2015

    Du weist dass du den Script Speicher seit einer Weile schon per Konsole einstellen kannst ?
    Du kannst mit 8192 kompilieren und den Speicher dann permanent in der Größe anpassen.

    Das Konsolenkommando scriptsize zeigt die momentane Größe an und stellst sie auch ein.

    Beim Einstellen wird sofort neu gestartet und er übernimmt die neue Größe

    habe gerade mal die esp8266 Version getestet. Der RAM Verbrauch der Emulation ist hoch so dass wirklich nur das minimale script ohne Graphen funktioniert.

    Ausserdem muss man den scriptbuffer so klein wie möglich einstellen.

    Bei der Kompilation wird er ja mit 8192 vorgegeben. Den muss man mit dem Konsolenbefehl scriptsize 4000 auf 4k einschränken und man muss das script mit dem scripteditor komprimiert übertragen damit es in die 4k passt.

    in dieser Konstellation bleiben 13,7k RAM übrig. das ist schon wenig, sollte aber funktionieren.

    das sollte otello mal mit seinem Akku ausprobieren.


    um dennoch alle Werte von SML verfügbar zu machen hatte ich neulich einige spezielle Befehle implementiert.

    man hat z.B. 9 Zeilen im SML descriptor wie im Beispielscript.

    man definiert nun ein Array mit 9 Elementen in >D

    Code
    >D
    ; lokales array mit 9 Elementen (kein g:)
    M:xsml=0 9
    res=0
    >S
    ; dann kopiert man z.B. jede Sekunde die sml Werte in dieses Array und versendet sie als globales array
    res=acp(xsml sml)
    res=gvrsa(xsml)


    in jedem anderen Tasmota ESP im WLAN hat man jetzt die Daten zur Verfügung und kann die Graphen dort anzeigen.

    Code
    >D
    ; globales array
    g:M:xsml=0 9


    für diese Funktionen braucht man für Sender und Empfänger meine aktuelle scripter Version.

    Wir sind erheblich weiter gekommen. Kalle kann seinen Venus-E mit Tasmota verbinden und die Meter Werte werden übertragen.

    Wenn jemand testen will, Otello stellt die binaries zur Verfügung und das aktuelle script liegt bei mir auf Github:

    Sonoff-Tasmota/tasmota/scripting/shelly_emu_script.tas at universal · gemu2015/Sonoff-Tasmota
    Tasmota Fork TCS34725,PN532_i2,ccc1101 Moritz support,m5stack 4,7 epaper, bresser 868 Mhz sensors and wether stations, loadable binary drivers -…
    github.com

    man muss natürlich seinen eigenen meter descriptor in >M ersetzen und entsprechend anpassen.

    meine Änderungen an scripter.ino sind noch nicht bei github Tasmota integriert. wenn jemand selbst kompilieren will muss er meinen Fork oder die scripter.ino aus meinem Fork verwenden.

    also wenn du mit der Shelly2ESP Lösung keine Verbindung mit der Marstek app bekommst kann das auch mit meiner Version nichts werden.

    nehme an das die Demo Version das nicht kann.

    Kalle testet an einem vorhandenen Marstek Akku, er benutzt bisher die Shelly2ESP version.

    die IP ist nötig wenn du den externen Script Editor verwendest (siehe scripting doc)

    wenn du den nicht nutzt kannst du die Zeile löschen


    Anmerkung:

    das obige script ist nur zum testen ob die Marstek app irgend wie Kontakt aufnimmt, das script kann noch nicht final funktionieren.

    Man muss in der Konsole überwachen während die Marstek App versucht eine Verbindung herzustellen sollte man entsprechende Meldungen dort sehen.

    hier mal eine C3 Binary mit den neuesten Änderungen und ein erstes Testscript um das Prinzip zu zeigen.


    Diese Mail habe ich von Karsten bekommen,

    es geht also doch.

    Moin, leider warte ich schon länger auf meine Freischaltungen durch die Admins. Daher meine Info über diesen Weg und nicht über das Forum.

    Ich betreibe einen Venus E Speicher mit einem Tasmota IR Lesekopf und der Umsetzung mittels weiterem ESP und energy2shelly. Die App hat den "Shelly" ohne Probleme gefunden und alles funktioniert ganz gut. Die App braucht die Berechtigung für Standorterkennung. Vielleicht ist das das Problem bei dir?

    Gruß Karsten

    GitHub - TheRealMoeder/Energy2Shelly_ESP: Using an ESP8266/ESP32 to emulate a Shelly Power Meter using various energy meter data inputs
    Using an ESP8266/ESP32 to emulate a Shelly Power Meter using various energy meter data inputs - TheRealMoeder/Energy2Shelly_ESP
    github.com

    dieses Projekt ist ein Shelly emulator für ESP8266, ESP32

    Habe das geflasht, kann aber mit der Marstek app keine Verbindung erzeugen.

    Vielleicht will das noch jemand anderes testen.

    Wenn das ginge könnte ich sehr einfach Teile des Codes übernehmen.

    Habe gerade festgestellt dass man in der Marstek App auch einen dummy Akku angeben kann.

    Man kann dann den Shelly oder eco tracker versuchen anzumelden auch ohne einen Akku zu besitzen.

    Beide werden wohl über mDNs gesucht.

    Habe leider sehr wenig Ahnung davon und kann hier kaum helfen

    wenn man mit #define USE_DISCOVERY compiliert

    und mit SetOption55 on den service einschaltet bekommt man:

    00:00:02.765 mDN: initialisiert 'LCD-2x20.local' (mein device name ist LCD-2x20)

    man könnte versuchen den Hostnamen halt auf _everhome._tcp oder so ähnlich zu setzen.

    oder für Shelly auf _http._tcp

    habe UDP RPC im scripter eingebaut.

    Damit kann man jetzt den Shelly richtig emulieren.

    #define USE_SCRIPT_GLOBVARS muss definiert sein.

    unten das rudimentäre script dient erst mal dazu zu sehen was der Marstek an den Shelly schickt


    neue Befehle:

    res=udp(0 port) öffnet UDP Listener auf port

    str=udp(1) liest ankommende Strings auf dem Port

    res=udp(2 str) sendet den String str als Antwort

    res=udp(3 url port payload) sendet einen UDP String an die url mit port und payload


    Zitat

    Wenn ich den WLAN Namen/Hostname des Tasmotas in der Fritzbox ändere, dann müsste das doch den Hostname des Tasmotas aus Sicht der Venus E und der anderen Geräte im Netz überschreiben, oder?

    das hat bei mir gar keinen Effekt. Ich konnte trotzdem nur über den Namen mit Bindestrich zugreifen


    Man müsste die Stelle in Tasmota finden in der das Leerzeichen durch den Bindestrich ersetzt wird

    Wenn der WLAN Name des Ecotrackers wirklich "EC Tracker" ist, kann man den mit Tasmota nicht vorgeben da das Leerzeichen immer durch "-" ersetzt wird. Habe auf die Schnelle nicht gefunden wo Tasmota das macht. Müsste man testhalber mal auskommentieren.

    Erst dann hätte man eine Chance das es mit dem Ecotracker REST API funktioniert.

    Alternativ könnte man einen UDP Listener auf port 1010 anwerfen und sehen was der Marstek für einen RPC Befehl schickt um den Shelly zu finden.

    Dann könnte man darauf entsprechend antworten.

    Ich persönlich würde aber immer die MODBUS Verbindung bevorzugen, da sie sehr schnell ist und auch bei Routerausfall noch problemlos funktioniert. Das 2 adrige Kabel kann auch sehr lang sein ohne ein Problem. Das obige Script funktioniert jedenfalls mit Growatt einwandfrei