Benachrichtigungen
Alles löschen

[Oben angepinnt] Sun GTIL2-1000 RS485 Interface

1,316 Beiträge
163 Benutzer
104 Likes
91.7 K Ansichten
(@bernd33-1)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 34
 

Ja das weiß ich auch nicht. DC Seite geht natürlich auch. Ich könnte mir nur vorstellen, dass da beim wieder Einschalten sehr hohe Ströme beim Laden der internen SUN Kondensatoren fließen. Keine Ahnung wie lange das ein Relais oder ein SSR mitmacht.

Viele Grüße,
Trucki

Hi,

ja, nach dem trennen der Batterie und wieder anschließen fließen sehr hohe Ströme. Mein Ant-BMS reagiert da manchmal mit "Short Circuit Protection". Also mein BMS meint einen Kurzschluss zu erkennen und schaltet den Batterie Ausgang für 5 Sekunden ab.

Der Sun1000/2000 hat ja auch eine Einstellung für "Power Off bei zu geringer Bat. Spannung". Vielleicht kann man die ran ziehen? Also diese bei Bedarf so einstellen, dass der Sun1000 AC-Seitig 0W ausgibt?

Grüße, Bernd


   
AntwortZitat
(@bernd33-1)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 34
 

Hi,

mal eine Frage, hat von euch jemand die Platine von Trucki im IOBroker drin? Bei mir schmeißt der IOBroker leider fehler raus.

Die Log vom ESP8266:
INFO Reading configuration /opt/iobroker/iobroker-data/esphome.0/sun1000esp.yaml...
INFO Starting log output from sun1000esp.local using esphome API
INFO Successfully connected to sun1000esp.local
[12:58:08][app]: ESPHome version 2022.2.6 compiled on Nov 5 2022, 12:53:24
[12:58:08][C][wifi]: WiFi:
[12:58:08][C][wifi]: Local MAC: 18:FE:34:D7:BB:36
[12:58:08][C][wifi]: SSID: 'UPC0864334'[redacted]
[12:58:08][C][wifi]: IP Address: 192.168.0.98
[12:58:08][C][wifi]: BSSID: 14:DD:A9:71:A8:00[redacted]
[12:58:08][C][wifi]: Hostname: 'sun1000esp'
[12:58:08][C][wifi]: Signal strength: -65 dB ▂▄▆█
[12:58:08][C][wifi]: Channel: 8
[12:58:08][C][wifi]: Subnet: 255.255.255.0
[12:58:08][C][wifi]: Gateway: 192.168.0.1
[12:58:08][C][wifi]: DNS1: 192.168.0.1
[12:58:08][C][wifi]: DNS2: 0.0.0.0
[12:58:08][C][logger]: Logger:
[12:58:08][C][logger]: Level: DEBUG
[12:58:08][C][logger]: Log Baud Rate: 0
[12:58:08][C][logger]: Hardware UART: UART0
[12:58:08][C][uart.arduino_esp8266]: UART Bus:
[12:58:08][C][uart.arduino_esp8266]: TX Pin: GPIO1
[12:58:08][C][uart.arduino_esp8266]: RX Pin: GPIO3
[12:58:08][C][uart.arduino_esp8266]: RX Buffer Size: 256
[12:58:08][C][uart.arduino_esp8266]: Baud Rate: 9600 baud
[12:58:08][C][uart.arduino_esp8266]: Data Bits: 8
[12:58:08][C][uart.arduino_esp8266]: Parity: NONE
[12:58:08][C][uart.arduino_esp8266]: Stop bits: 1
[12:58:08][C][uart.arduino_esp8266]: Using hardware serial interface.
[12:58:08][C][modbus]: Modbus:
[12:58:08][C][modbus]: Send Wait Time: 250 ms
[12:58:08][C][modbus.number]: modbus.numberModbus Number 'AC Setpoint Number'
[12:58:08][C][modbus.number]: modbus.number Unit of Measurement: 'W'
[12:58:08][C][modbus.number]: modbus.numberModbus Number 'DAC Number'
[12:58:08][C][modbus.number]: modbus.numberModbus Number 'Calibration Number'
[12:58:08][C][modbus_controller.sensor]: modbus_controller.sensorModbus Controller Sensor 'AC Output'
[12:58:08][C][modbus_controller.sensor]: modbus_controller.sensor State Class: ''
[12:58:08][C][modbus_controller.sensor]: modbus_controller.sensor Unit of Measurement: 'W'
[12:58:08][C][modbus_controller.sensor]: modbus_controller.sensor Accuracy Decimals: 1
[12:58:08][C][modbus_controller.sensor]: modbus_controller.sensorModbus Controller Sensor 'Grid Voltage'
[12:58:08][C][modbus_controller.sensor]: modbus_controller.sensor State Class: ''
[12:58:08][C][modbus_controller.sensor]: modbus_controller.sensor Unit of Measurement: 'V'
[12:58:08][C][modbus_controller.sensor]: modbus_controller.sensor Accuracy Decimals: 1
[12:58:08][C][modbus_controller.sensor]: modbus_controller.sensorModbus Controller Sensor 'Bat Voltage'
[12:58:08][C][modbus_controller.sensor]: modbus_controller.sensor State Class: ''
[12:58:08][C][modbus_controller.sensor]: modbus_controller.sensor Unit of Measurement: 'V'
[12:58:08][C][modbus_controller.sensor]: modbus_controller.sensor Accuracy Decimals: 1
[12:58:08][C][mdns]: mDNS:
[12:58:08][C][mdns]: Hostname: sun1000esp
[12:58:08][C][ota]: Over-The-Air Updates:
[12:58:08][C][ota]: Address: sun1000esp.local:8266
[12:58:08][C][ota]: Using Password.
[12:58:08][C][api]: API Server:
[12:58:08][C][api]: Address: sun1000esp.local:6053
[12:58:08][C][api]: Using noise encryption: NO
[12:58:08][C][wifi_signal.sensor]: WiFi Signal 'WLAN Signal'
[12:58:08][C][wifi_signal.sensor]: Device Class: 'signal_strength'
[12:58:08][C][wifi_signal.sensor]: State Class: 'measurement'
[12:58:08][C][wifi_signal.sensor]: Unit of Measurement: 'dBm'
[12:58:08][C][wifi_signal.sensor]: Accuracy Decimals: 0
[12:58:08][C][modbus_controller]: ModbusController:
[12:58:08][C][modbus_controller]: Address: 0x01
[12:58:08][D][modbus.number]: Number new state : 0.00
[12:58:08][D][number]: 'AC Setpoint Number': Sending state 0.000000
[12:58:08][D][modbus_controller.sensor]: Sensor new state: 0.00
[12:58:08][D][sensor]: 'AC Output': Sending state 0.00000 W with 1 decimals of accuracy
[12:58:08][D][modbus_controller.sensor]: Sensor new state: 2324.00
[12:58:08][D][sensor]: 'Grid Voltage': Sending state 232.40001 V with 1 decimals of accuracy
[12:58:08][D][modbus_controller.sensor]: Sensor new state: 0.00
[12:58:08][D][sensor]: 'Bat Voltage': Sending state 0.00000 V with 1 decimals of accuracy
[12:58:08][D][modbus.number]: Number new state : 0.00
[12:58:08][D][number]: 'DAC Number': Sending state 0.000000
[12:58:08][D][modbus.number]: Number new state : 0.00
[12:58:08][D][number]: 'Calibration Number': Sending state 0.000000
[12:58:09][D][modbus.number]: Number new state : 0.00
[12:58:09][D][number]: 'AC Setpoint Number': Sending state 0.000000
[12:58:09][D][modbus_controller.sensor]: Sensor new state: 0.00
[12:58:09][D][sensor]: 'AC Output': Sending state 0.00000 W with 1 decimals of accuracy
[12:58:09][D][modbus_controller.sensor]: Sensor new state: 2324.00
[12:58:09][D][sensor]: 'Grid Voltage': Sending state 232.40001 V with 1 decimals of accuracy
[12:58:09][D][modbus_controller.sensor]: Sensor new state: 0.00
[12:58:09][D][sensor]: 'Bat Voltage': Sending state 0.00000 V with 1 decimals of accuracy
[12:58:09][D][modbus.number]: Number new state : 0.00
[12:58:09][D][number]: 'DAC Number': Sending state 0.000000
[12:58:09][D][modbus.number]: Number new state : 0.00
[12:58:09][D][number]: 'Calibration Number': Sending state 0.000000
[12:58:10][D][modbus.number]: Number new state : 0.00
[12:58:10][D][number]: 'AC Setpoint Number': Sending state 0.000000
[12:58:10][D][modbus_controller.sensor]: Sensor new state: 0.00
[12:58:10][D][sensor]: 'AC Output': Sending state 0.00000 W with 1 decimals of accuracy
[12:58:10][D][modbus_controller.sensor]: Sensor new state: 2326.00
[12:58:10][D][sensor]: 'Grid Voltage': Sending state 232.60001 V with 1 decimals of accuracy
[12:58:10][D][modbus_controller.sensor]: Sensor new state: 0.00
[12:58:10][D][sensor]: 'Bat Voltage': Sending state 0.00000 V with 1 decimals of accuracy
[12:58:10][D][modbus.number]: Number new state : 0.00
[12:58:10][D][number]: 'DAC Number': Sending state 0.000000
[12:58:10][D][modbus.number]: Number new state : 0.00
[12:58:10][D][number]: 'Calibration Number': Sending state 0.000000
[12:58:10][D][sensor]: 'WLAN Signal': Sending state -65.00000 dBm with 0 decimals of accuracy
[12:58:11][D][modbus.number]: Number new state : 0.00
[12:58:11][D][number]: 'AC Setpoint Number': Sending state 0.000000

Das sieht soweit gut aus.

Im IOBroker kommt aber das im Log:

esphome.0
2022-11-05 13:01:48.760 warn Client 192.168.0.98 Timeout, connection Lost, will reconnect automatically when device is available!

esphome.0
2022-11-05 13:01:43.807 error ESPHome client 192.168.0.98 TypeError: Cannot read properties of undefined (reading 'deserializeBinary')

esphome.0
2022-11-05 13:01:43.787 error ESPHome client 192.168.0.98 TypeError: Cannot read properties of undefined (reading 'deserializeBinary')

Und bei den Objekten kommt nur AC-Output und WLAN-Signal. Die anderen Objekte fehlen.

Hier noch meine YAML Datei die auf dem ESP8266 läuft
esphome:
name: sun1000esp
platform: ESP8266
board: esp01_1m
platformio_options:
lib_deps:
#- ArduinoJson-esphomelib@5.13.3
- https://github.com/OttoWinter/AsyncTCP
- https://github.com/OttoWinter/ESPAsyncWebServer
- https://github.com/bblanchon/ArduinoJson.git
- https://github.com/me-no-dev/ESPAsyncTCP.git
- https://github.com/OttoWinter/ESPAsyncTCP.git

# Enable logging
logger:
baud_rate: 0 #needs 0, because info & data goes thru one line.

# Enable Home Assistant API
api:

ota:
password: "auch geheim"

wifi:
ssid: "Name-Des-WLAN"
password: "geheim"

# Enable fallback hotspot (captive portal) in case wifi connection fails
#ap:
#ssid: "sun1000esp Fallback Hotspot"
#password: "9u5zQo9AyTTp"

#captive_portal:

#web_server:
# port: 80

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

IOBroker läuft auf einem Raspi und diverse Andere ESPHome Nodes laufen ohne Probleme.

Wär klasse, wenn da einer einen Rat hätte.

Grüße, Bernd


   
AntwortZitat
(@kytomas)
Newbie
Beigetreten: Vor 1 Jahr
Beiträge: 2
 

Hallo zusammen,

Mein SUN1000 läuft aktuell noch mit der Poti Lösung über openHAB auf einem PI4 (was im Übrigen recht gut funktioniert). Bevor ich aber alles auf die Trucki Platine umbaue, möchte ich erst einmal die Grundlagen schaffen. Ich habe hier einen WemosD1 mini mit Tasmota welcher später die Trucki Platine im Sun1000 ansteuern soll.

Mit folgendem Befehl kann ich die Leistungsangaben bereits an den Wemos über einen Festwert erfolgreich übertragen:
Eingabe direkt über einen Browser

http://192.178.xxx.122/cm?cmnd=MODBUSSEND {"deviceaddress": 1, "functioncode": 6, "startaddress": 0, "type":"uint16", "count":1, "values":[850]}

Der Values Wert soll ja später aus dem Shelly 3EM dynamisch, über eine Rule aus openHAB heraus, übertragen werden.
In etwa wie folgt:

rule "Sun1000 with Trucki"
when Item Shelly3em changed
then
sendHttpGetRequest( http://192.178.xxx.122/cm?cmnd=MODBUSSEND
{"deviceaddress": 1, "functioncode": 6, "startaddress": 0, "type":"uint16", "count":1, "values":[%2$s]})
end

Mir ist es bis dato noch nicht gelungen, den values Wert dynamisch einzubinden und abzuschicken.
Kann mir hier jemand auf die Sprünge helfen?

Mit freundlichen Grüßen
Kytomas


   
AntwortZitat
(@bernd33-1)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 34
 

Hi,

noch eine dumme Frage: Wenn die Trucki Platine soweit verbaut ist, wie müssen dann beim Sun1000 die Settings aussehen?

Ich hab das noch so:

Limit Mode : AUS
LCD BAcklite Always On
Remote Num 01
Bat or Solar Limit Current Mode : AN (502V , 03A)
Reboot Voltage 52,8V
Bat or Solar Limit Power Mode : AUS

Ist das so korrekt?

Danke und Grüße, Bernd


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

Hallo Bernd,

Ja das ist korrekt.

Gruß Trucki


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

Hallo Bernd,

Ich hatte mit der esp API das gleiche Problem. Gleiche Fehlermeldung und dann immer Verbindungsabbruch. Ein paar Posts vorher siehst du in meiner yaml, dass ich das nun mit mqtt anstatt der API sende und das funktioniert problemlos. Vielleicht eine Lösung die dir auch weiter hilft.

Viele Grüße


   
AntwortZitat
(@bernd33-1)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 34
 

@zaimaen Jup, bin jetzt auch mal auf MQTT umgestiegen und soweit geht es mal. Danke.


   
AntwortZitat
(@bernd33-1)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 34
 

Noch eine kleine Frage: Ich habe meinen Sun1000 in den IOBroker integriert. Via MQTT geht das jetzt soweit.

Bei den Objekten hab ich unter Anderem AC_SETPOINT_NUMBER und DAC_NUMBER. Bei beiden kann ich wohl die Ausgangsleistung des Sun1000 einstellen. Nur... wenn ich z.B. bei AC_SETPOINT_NIUMBER den Wert 150 eingebe, dann schnappt die Ausgangsleistung des Sun1000 erst mal auf ca. 180 - 230 Watt hoch um dann über gefühlte 10 Minuten langsam auf 150W runter zu kommen. Soll das so sein?

Gleiches Verhalten, wenn ich bei DAC_NUMBER einen Wert eingebe. Erstmal schnappt die Ausgangsleistung hoch und pendelt sich dann nach Minuten auf einen festen Wert ein.

Generell: Wo gebe ich meine Gewünschte Ausgangsleistung an? Gefühlt würde ich ja AC_SETPOINT_NUMBER nehmen, weil ich da direkt Watt angeben kann.

Danke schon mal und Grüße, Bernd


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

Hallo Bernd,

Ja bei ACSetpoint gibt's Du die Watt Zahl ein. Hier kann es schon zu Toleranzen kommen und ja es wird dann sehr langsam auf den geforderten Wert geregelt. Das passt also und wenn es genauer sein muss, dann muss Du entweder kalibrieren, oder den aktuellen Displaywert mit in die Berechnung für den nächsten Setpoint mit einbeziehen.

Um den DAC Wert zu schreiben sollte der Setpoint auf 0 stehen. Hier wird dann streng der vorgegebene DAC Wert gehalten und nichts nachkorrigiert. D.h. Hier sollte es eigentlich kein Überschwingen geben.

Viele Grüße
Trucki


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

Also ich mache das ganz simpel ohne Zwischenwerte oder Durchschnittswerte direkt:


   
AntwortZitat
(@bernd33-1)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 34
 

Sorry, aber nochmal ich. Bei der YAML Datei gibt es unterschiedliche Posts mit unterschiedlichen Werten. Was wäre da für einen Sun 1000 korrekt?

Variante 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"
[highlight=yellow]min_value: 0
max_value: 9600[/highlight]
- platform: modbus_controller
modbus_controller_id: sun
id: dac_number
name: "DAC Number"
address: 0x04
value_type: U_WORD
[highlight=yellow]min_value: 0
max_value: 33187[/highlight]
- 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

Variante 2:
#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"
[highlight=yellow]min_value: 0
max_value: 2000[/highlight]
- platform: modbus_controller
modbus_controller_id: sun
id: dac_number
name: "DAC Number"
address: 0x04
value_type: U_WORD
[highlight=yellow]min_value: 0
max_value: 2000[/highlight]
- 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

Wie gesagt: Weleche Werte sind für einen Sun 1000 korrekt?

Grüße, Bernd

EDIT : Sorry, das Higlighten im Code tut nicht. Ich meine die MAX und MIN values bei DAC_Number und AC-Setpoint-Number


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

Die 1. Version ist von Trucki, die 2. Version hatte ich angepasst um über das Webinterface per schieberegler genauer regeln zu können.
Funktionieren beide aber ich wollte mit dem Handy schauen und regeln, da war der kleinere umfang genauer zu steuern.


   
AntwortZitat
(@bernd33-1)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 34
 

Die 1. Version ist von Trucki, die 2. Version hatte ich angepasst um über das Webinterface per schieberegler genauer regeln zu können.

Ok, also müsste die 1. Version von Trucki passen? Weil ich hab eine Kalibrierung laufen lassen und jetzt steht der Sun 1000 völlig neben sich. Gebe ich Werte über 150W ein bei AC_SETPOINT_NUMBER dann schnappt der Sun auf maximale Leistungsausgabe.

Ich hab einfach in das Reg. 5 ne 1 geschrieben und es laufen lassen Roll


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

passiert bei mir bei der kalibrierung auch manchmal. einfach nochmal laufen lassen und wenn beendet den sun vom strom und neu starten dann passte es


   
AntwortZitat
(@bernd33-1)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 34
 

passiert bei mir bei der kalibrierung auch manchmal. einfach nochmal laufen lassen und wenn beendet den sun vom strom und neu starten dann passte es

Den Sun vom Strom trennen bedeutet nur AC trennen und DC kann verbunden bleiben?


   
AntwortZitat
Seite 16 / 88
Teilen: