Benachrichtigungen
Alles löschen

[Oben angepinnt] Sun GTIL2-1000 RS485 Interface

1,336 Beiträge
167 Benutzer
109 Likes
94.2 K Ansichten
 Pali
(@pali)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 63
 

ich habe MQTT Verbindung zu Tasmota, aber ich habe keine Objekte/Variablen für Steuerung und auch keine Variablen/Objekte für die ausgelesene Daten. Nur diese: siehe schreenshot.
Im ioBroekr in den Variablen/Objekten sehe ich nur das, was regelmäßig in Tasmota-Console auftaucht (bei mir jetzt eingestellt jede 20 Sekunden), siehe Console-Screenshot. Die ganze Zeile passt nicht auf das Bild, deswegen hier als Text:

tele/tasmota_DC2D6D/STATE = {"Time":"2022-11-18T19:59:41","Uptime":"0T00:11:51","UptimeSec":711,"Heap":25,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Wifi":{"AP":1,"SSId":"Pacuk 2,4GHz","BSSId":"44:4E:6D:14:A9:36","Channel":1,"Mode":"11n","RSSI":46,"Signal":-77,"LinkCount":1,"Downtime":"0T00:00:05"}}

Und genau diese Objekte sehe ich dann in ioBroker: Time, Uptime, UptimeSec, Heap, SleepMode, Dynamic, Sleep, LoadAvg, MqttCount, Wife ... Channel ... Signal ...
... die ich aber nicht brauche 🙁

Deswegen ein paar fragen (@leon):
- welche Tasmota hast du auf dein Wemos geflasht (von Trucki's Github Seite oder andere version) ?
- kannst du bitte screenshot von deinen ioBroker-Objekten machen (von deinem SUN2000)?
- und vielleicht auch screenshot von Tasmota-Logging parameter

Vielen Dank im Voraus
Ich bin schon verzweifelt Smile


   
AntwortZitat
 leon
(@leon)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 22
 

Hallo Pali,

Ich benutze die Tasmota Version von Trucki.

Ich glaube ich weiß was du falsch hast und zwar gehe mal deine Einstellung durch und schaue ob modbus tx und rx gesetzt wurde.

Mir ist nämlich aufgefallen das er bei mir ab und zu die modbus Einstellung auf einmal weg waren.

Schau bitte nach und schreib kurz ob es daran lag


   
AntwortZitat
 Pali
(@pali)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 63
 

... ich weiss nicht wie, aber die Werte habe ich endlich im ioBroker (siehe Screenshot).
Ich habe mit Einstellungen für Sonof Adapter gespielt ("Automatische Erstellung von Zuständen"), aber auch in Tasmota Module Configuration (geändert von Generic(18) auf Generic(0) und wieder zurück).
aber ich glaube die Objekte wurden "erschaffen" erst wenn ich den Befehl in Tasmota-Console ausgeführt habe:

MODBUSSEND {"deviceaddress": 1, "functioncode": 3, "startaddress": 0, "type":"uint16", "count":8}

Ich habe den Befehl natürlich auch früher schon benutzt, aber irgendwie hat das erst jetzt geklappt.
Leider kann ich den ModbusReceived_Values_0 (AC power) noch nicht vom ioBroker ändern ... aber immer hin ein Schritt nach vorne.

Nur zur info: nur der Wert ModbusReceived_Values_0 (AC power) wird im iobroker automatisch refreshed. D.h. wenn ich in Tasmota-Console den AC power einstelle mit
MODBUSSEND {"deviceaddress": 1, "functioncode": 6, "startaddress": 0, "type":"uint16", "count":1, "values":[1000]}
dann wird der Wert ModbusReceived_Values_0 automatisch auch angepasst.
Alle andere Werte ModbusReceived_Values_1-7 werden refreshed erst wenn man in Tasmota den Befehl ausführt: MODBUSSEND {"deviceaddress": 1, "functioncode": 3, "startaddress": 0, "type":"uint16", "count":8}
Aber wenn ich ModbusReceived_Values_0 im ioBroker manuell setzte, bleibt er im ioBroker fest auf diesem Wert (obwohl die Leistung auf dem SUN nicht geändert wurde). Der alte Wert kommt erst nach dem:
MODBUSSEND {"deviceaddress": 1, "functioncode": 3, "startaddress": 0, "type":"uint16", "count":8}

EDIT: alle Werte "ModbusReceived_Values" im ioBroker ändern sich nur nach dem Befehl MODBUSSEND ausgeführt in Tasmota-Console ...


   
AntwortZitat
 leon
(@leon)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 22
 

Freut mich das es jetzt bei dir auch geklappt hast.

Ich habe schon paar Sachen ausprobiert aber bis jetzt konnte ich keine steuebefehle vom iobroker aus schicken diese werden immer als umbenannt angezeigt.

Werde mir wohl esphome mal anschauen.

Vielleicht funktioniert das auf Anhieb.


   
AntwortZitat
(@centz)
Newbie
Beigetreten: Vor 2 Jahren
Beiträge: 4
 

@leon und @ Pali

Ihr müsst mit einem Programm wie zb MQTT.fx einmal die Befehle in euer MQTT netz schicken.
Diese tauchen dann in den Objekten unter eurer Struktur in einem neuen Ordern auf.
Die Version MQTT.fx 1.xy gibt es kostenlos im Netz, die neuen Versionen sind kostenpflichtig.

In meinem Fall sah die Struktur so aus -> Smart/SUN1000/cmnd/MODBUSSEND und dann den entsprechenden Befehl als Message
zb.: {"deviceaddress": 1, "functioncode": 6, "startaddress": 0, "type":"uint16", "count":1, "values":[1000]} - um 100W einzustellen.

Wichtig ist ihr müsst im Befehl das MODBUSSEND raus löschen.

Über die Struktur oben könnt ihr alle Befehle schicken die Trucki auf seiner Github Seite hat.

Im Skript könnt ihr den Befehl ganz einfach über einen "erstelle Text aus" Baustein neu zusammen bauen.
1. {"deviceaddress": 1, "functioncode": 6, "startaddress": 0, "type":"uint16", "count":1, "values":[
2. der neue wert als Variable
3. ]}


   
AntwortZitat
 Pali
(@pali)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 63
 

vielen Dank @centz, für die genaue Beschreibung! ... das hilft uns endlich weiter.
Die aktuelle Werte im ioBroker ändern sich aber nicht automatisch, erst wenn ich in Tasmota in der Console irgendeinen MODBUSSEND-Befehlt ausführe. Ist das richtig so? Muss ich in Tasmota ein Skipt machen, das der Befehl MODBUSSEND regelmäßig ausführt, damit sich die Werte im ioBroker aktualisieren?
Dann entsteht die zweite Frage, ob das dann über ESPhome nicht einfacher wäre. Vielleicht hat schon jemand beides getestet und kann das vergleichen.
Ich kenne mich mit ESPhome überhaupt nicht aus, deswegen bleibe ich zuerst bei ioBroker und werde dort weiter mein Glück versuchen 🙂 Und später vielleicht noch mit Trucki's neuem T2S-Gateway.


   
AntwortZitat
(@centz)
Newbie
Beigetreten: Vor 2 Jahren
Beiträge: 4
 

Das ist richtig so, die Werte werden nur per Befehl abgefragt.
Könntest du über ein Skript ziemlich einfach realisieren.
Mit einem Zeittrigger und einfach den cmnd mit dem Befehl als Text ansteuern sollte reichen.

Ich habe tatsächlich beides ausprobiert und bin jetzt bei ESPHome, dass hat aber eher was mit der Kalibrierung zu tun.
Wenn man die nicht braucht ist es eigentlich relativ egal.

Über ESPHome kommen die Werte aber von allein, da musst du nichts anstoßen.
Du musst aber auf dem Raspi eine 64Bit Version laufen haben, sonst kannst du ESPHome nicht im ioBroker installieren.


   
AntwortZitat
 leon
(@leon)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 22
 

Hallo centz,

Danke das du uns etwas hilfst.
Leider funktioniert bei mir das mit den Senden nicht die Variable ModBusSend ist im Iobroker da wenn ich dort den Standard Befehl setzte das die Leistung auf ca 300 Watt gehen soll bleibt er bei mir immer bei den 60 Watt stehen.
Im Tasmota kommt aber was an weil dort steht immer wenn ich ein Befehl sende unbekannter Befehl.

MfG
Leon


   
AntwortZitat
 leon
(@leon)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 22
 

Ich sehe grade das du schon oben noch was geschrieben hast.
Wie ich das lese ist es mit ESPhome wohl einfacher den SUN zu steuern.
Hast du die Konfiguration von Trucki Seite genommen und nur wlan und mqtt hinzugefügt?

MfG
Leon


   
AntwortZitat
 Pali
(@pali)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 63
 

Du musst aber auf dem Raspi eine 64Bit Version laufen haben, sonst kannst du ESPHome nicht im ioBroker installieren.

ich habe zwar Raspi4 mit 64bit ioBroker version am laufen. Aber das sieht für mich so aus, dass ESPhome dann ziemlich viel Rechenpower weg nimmt und vielleicht auch RAM. Das wäre für mich ein KO Kriterium, weil ich nur 2GB RAM auf dem Raspi habe und momentan 64% RAM-Auslastung. Das könnte dann vielleicht knapp werden ... also ich werde es zuerst lieber in ioBroker versuchen.


   
AntwortZitat
 leon
(@leon)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 22
 

Pali du brauchst ESPhome nur zum Erstellen der Bin Datei um es auf den Wemos zu flashen und ggf zum updaten sonst kannst es stoppen.
Könntest eigentlich auch in einem virtuellen PC installieren um iobroker sauber zu halten.


   
AntwortZitat
 Pali
(@pali)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 63
 

@leon
habe dir PN geschickt, aber irgendwie geht die Nachricht nicht raus ... schaue bitte gelegentlich in dein Postfach.
Danke


   
AntwortZitat
(@trucki)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 376
Themenstarter  

Hallo Zusammen,
das Trucki2Shelly Gateway Update V1.02 (mit Tasmota und MQTT Unterstützung) ist so gut wie fertig. Ich muss es nur noch testen. Wenn keine größeren Fehler gefunden werden, dann lade ich es Ende dieser Woche, Anfang nächster Woche auf Github hoch.

Für ganz Interessierte schon mal die Doku vorab.

Viele Grüße,
Trucki

/*
* Trucki2Shelly/Tasmota/MQTT Gateway V1.02
* -----------------------------------------
* This Arduino code was written for a ESP8266 WEMOS D1 mini. Its purpose is to read the total
* power from a Shelly 3EM and send it via UART to Trucki's RS485 interface pcb for
* SUN GTIL2-1/2000 MPPT inverter. J1-J5 have to be open on the RS485 interface pcb (UART, ID:1).
* On newer RS485 interface pcbs J5 is a switch.
*
* The total power (shelly_power) is filterd (ZeroExportController) before it is send to the
* inverter. The target of the ZeroExportController is to keep the Shelly total power at ~50W.
* The inverter power rises slowly over ~30s and drops fast (~1s).
*
* As I do not own a Shelly 3EM (only a 1PM) I wasn't able to test this code in a productive
* environment.
*
* Setup
* -----
* After the first start (~30s) you will find an open accesspoint named:"Trucki2Shelly Gateway".
* Connect to it and open http://192.168.4.1 in your browser. Select Configuration and set your
* wifi credentials, static IP, Subnet,Gateway address for this ESP8266 Wemos module, the Shelly
* IP address, the maximum power of the solar inverter and mqtt server, user and password if you
* want to publish mqtt data.Use json_keys: < total_power > for a Shelly 3EM and < meters,0,power >
* for a Shelly 1PM. You can even use a Tasmota instead a Shelly by modifing the
* shelly url (default: http://< shelly-ip >/status) and json_keys.
* Use 0.0.0.0 for static IP, subnet and getway if you want to get an
* IP address from your DHCP server.
* Once you have finished you can reset the module and check if it connects to your wifi.
*
* Tasmota insted Shelly
* ---------------------
* Tasmota's SML scripting tool is very powerful and supports many smartmeters (IR,Modbus,...):
* https://tasmota.github.io/docs/Smart-Meter-Interface/#meter-definition
* By changing shelly_url and json_keys of the Trucki2Shelly Gateway you can import Tasmota
* grid power (shelly_power) for the ZeroExportController from your Tasmota.
* The shelly_url for your Tasmota should look like this:
* http://<tasmota-ip>/cm?cmnd=status%2010 .
* The json_keys are dependend on your Tasmota script configuration. The first json key is
* StatusSNS . If your Tasmota SML script i.e. looks like this:
*
* >D
* >B
* =>sensor53 r
* tper=20
* >M 1
* +1,13,o,0,300,SML,15,32,2F3F210D0A,063030300D0A
* 1,1.8.1*00(@1),Power_curr,W,Power_curr,2
*
* Your second json_key is SML and your third json_key is Power_curr .
* So, on the Trucki2Shelly Configuration page you have to enter for the
* json_keys: StatusSNS,SML,Power_curr
*
* Serial debug interface
* ----------------------
* If you open the Arduino Serial monitor with 9600 you will get debug information during the
* start.
*
* Webserver
* ---------
* Enter the static IP address of the module in your browser and you will get a very basic
* webserver with all values. The website will autoreload every 2s.
*
* MQTT client publish (read only)
* -------------------------------
* The mqtt client publishes every 1.3s the following topics: T2SG/ACSetpoint, T2SG/ACDisplay,
* T2SG/VGrid, T2SG/VBat, T2SG/DAC, T2SG/Calstep, T2SG/Temperature, T2SG/Shellypower.
* You can use the MQTT client featurevto log data i.e. with HomeAssistant.
*
* MQTT client subscribe (write only)
* ----------------------------------
* By writing to the mqtt topics: T2SG/ACSetpointOVR [W],
* T2SG/CalstepOVR [1:start calib., 99:default LUT], T2SG/DACOVR [0-65535], you can overwrite
* the current values. The ZeroExportController will be disabled.
* The ZeroExportController will be enabled again if you write to T2SG/ShellypowerOVR [W].
* You can use T2SG/ShellypowerOVR to feed the ZeroExportController instead of the Shelly.
* Please make sure that the shelly_url ist blank. Otherwise you will have two
* devices (Shelly and MQTT) trying to feed the ZeroExportController. If you use
* Shelly_power override mqtt value make sure that your meter is connected between grid and
* inverter. Means if you increase the inverter power your meter value (grid power) will decrease.
* If you just want to control the output power of the inverter use ACSetpoint override.
*
* Flashing
* --------
* I use "ESP.Easy.Flasher.exe" to flash the bin-file to the WEMOS module. Before starting you
* have to copy the bin-file into the /bin folder. After starting select USB Port and bin-file
* and press flash. After a reset you can begin with the setup.
*
* Config Reset
* ------------
* If you want to reset the configuration and go back to the "Trucki2Shelly Gateway" accesspoint
* you can connect & hold D0 to D5 (i.e. with a screwdriver) and press the reset button on your
* WEMOS module. The serial debug interface will show: "CONFIG RESET" and after ~30s you can
* connect to the accesspoint.
*
* Compiling
* ---------
* I used the standard Arduino IDE 1.8.13 with ESP SDK3.0.2 to compile this code.
* Generic ESP8266, Flash Size 1MB (FS:64KB, OTA:~470KB)
*
* //-------------------------------------------------------------------------------------------
* 1.02 21.11.2022 : WifiManager: Variable JSON keys, http-get intervall for Tasmota grid power read
* Bugfix: Save Configuration even if not connected to wifi after config portal
* SPIFFS replaced by eeprom read/write
* MQTT override for ShellyPower, ACSetpoint and DAC
* 1.01 13.11.2022 : Debug Output for Shelly_read, Version ouput on startup
* 1.00 28.10.2022 : 1st version
* //-------------------------------------------------------------------------------------------


   
Karl-Kette reacted
AntwortZitat
 leon
(@leon)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 22
 

Hallo zusammen,

Ich wollte heute es mit ESPhome ausprobieren. Das Flashen ging ohne Probleme der geflashte wemos meldet sich auch im wlan und im iobroker an.

Aber sobald ich diesen in den Sun einbaue bekommt der Wemos wohl Strom weil er ab und zu blau blinkt aber er meldet sich weder im wlan und damit auch nicht im iobroker an.

Weiß jemand woran das liegt.

PS: mit Tasmota funktioniert es.

MfG
Leon

esphome:
name: sun2000-1

esp8266:
board: esp01_1m

web_server:
port: 80

# Enable logging
logger:
#level: verbose
#baud_rate: 115200
#hardware_uart: UART1

uart:
id: mod_bus
tx_pin: 1
rx_pin: 3
baud_rate: 9600
stop_bits: 1

modbus:
#flow_control_pin: 5
id: modbus1

modbus_controller:
- id: sun
## the Modbus device addr
address: 0x1
modbus_id: modbus1
update_interval: 1s
setup_priority: -10

sensor:
- platform: wifi_signal
name: "WLAN Signal"
update_interval: 5s
- platform: modbus_controller
modbus_controller_id: sun
name: "AC Output"
id: ac_output
register_type: holding
address: 0x01
unit_of_measurement: "W"
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: sun
name: "Grid Voltage"
id: grid_voltage
register_type: holding
address: 0x02
unit_of_measurement: "V"
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: sun
name: "Bat Voltage"
id: bat_voltage
register_type: holding
address: 0x03
unit_of_measurement: "V"
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1

number:
- platform: modbus_controller
modbus_controller_id: sun
id: ac_setpoint_number
name: "AC Setpoint Number"
address: 0x00
value_type: U_WORD
multiply: 10
unit_of_measurement: "W"
min_value: 0
max_value: 2000
- platform: modbus_controller
modbus_controller_id: sun
id: dac_number
name: "DAC Number"
address: 0x04
value_type: U_WORD
min_value: 0
max_value: 2000
- platform: modbus_controller
modbus_controller_id: sun
id: calibration_number
name: "Calibration Number"
address: 0x05
value_type: U_WORD
min_value: 0
max_value: 1

# Enable Home Assistant API
#api:
# password: "XXXXXXXX"

ota:
password: "XXXX passwort für ein ota upload XXXX"

mqtt:
broker: "192.168.1.XXX"
port: "1884"
# username: ""
# password: ""
# id: "Sun2000-1"

wifi:
ssid: "XXXXX"
password: "XXXXXX"

# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Sun2000-1 Fallback Hotspot"
password: "XXXXXXXX"
# use_address: 192.168.XXX.XXX

captive_portal:


   
AntwortZitat
(@trucki)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 376
Themenstarter  

Trucki2Shelly Gateway V1.02 mit Tasmota und MQTT subscribe/write support ist online:
https://github.com/trucki-eu/Trucki2Shelly-Gateway


   
Karl-Kette and Pali reacted
AntwortZitat
Seite 23 / 90
Teilen: