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
>D 40
res=0
str=""
>B
->sensor53 r
; add handler is only called on tasmota restart
; so when editing have to restart
; up to 3 handlers
>ah
; add handler #1
won(1 "/v1/json")
; open udp port 1010
res=udp(0 1010)
>on1
print here comes the request 1
wcs so(4)
wcs HTTP/1.1 200 OK\r\n
wcs Content-type: application/json\r\n\r\n
wcs {"Einspeisung": %sml[1]%}
wcf
>S
; check for incomming udp on port 1010
str=udp(1)
if str!="" {
; hier kommen die UDP RPC Anforderungen
print payload=%str%
}
; OBIS Einspeisezähler (nur Einspeisung)
>M 1
+1,10,o,0,9600,OBIS
-1,1-0:2.8.1*255(@1,Einspeisung,KWh,Total_out,4
-1,=d 1 10 @1,Aktuelle Einspeisung,W,Power_curr,0
-1,1-0:0.0.0*255(@#),Zähler Nr,,Meter_number,0
-1,0.1.2*11(@1,test,T,zeit,0
#
Alles anzeigen
Alles anzeigen
Unter der URL ip/v1/json erhalte ich nur ein "Datei nicht gefunden"
Mit dem Tasmo-Compiler verwende ich diese Einstellungen. Braucht es da noch weitere Parameter?
#define USE_SCRIPT
#define USE_SML_M
#ifdef USE_RULES
#undef USE_RULES
#endif
#define USE_DS18x20 // Add support for DS18x20 sensors with id sort, single scan and read retry (+2k6 code)
#define USE_SCRIPT_GLOBVARS
Google Gemini meint das noch #define USE_UDP mit dazu muss, ändert aber sonst nichts.
Braucht das Programm da zwingend die ESP32 Version? Mein IR Leser ist auf einem ESP8266-01S
Gemini meint weiter das noch
#ifndef USE_SCRIPT_WEB_SERVER #define USE_SCRIPT_WEB_SERVER // Erlaubt dem Skript, seinen eigenen Webserver zu betreiben/an HTTP-Anfragen zu lauschen #endif
und
#ifndef USE_WEBSEND #define USE_WEBSEND // Stellt sicher, dass die WebSend-Funktion verfügbar ist #endif
dazu sollte.... bringt auch nichts. Weiter schlägt Gemini vor, ein WON Test zu probieren, der auch nicht geht.
Die Sensorwerte vom Stromzähler werden korrekt angezeigt, aber nur in der normalen Tasmota Ansicht bzw. im MQTT
>D 0
>ah
won(1 "/test")
>on1
print My test handler was called!
WebSend HTTP/1.1 200 OK\r\nContent-type: text/plain\r\n\r\nHello from Tasmota script!\r\n
Mit der Tasmota Vorcompilierte Version von dort https://drive.google.com/drive/folders/…UGG3A1-oLO14g5z werd nun unter v1/json etwas angezeigt. Die Marstek-App erkennt nichts... weder mit den drei Shelly Varianten noch mit diesem EcoTracker.
Ich lass es gut sein... heute genug Zeit verschwendet.
Hab noch den Uni-meter ausprobiert... ich meine in der Config alles richtig eingegeben zu haben, aber wird trotzdem nichts angezeigt. Diese Open-Source Projekte sind hochgradig frustrierend.