Nein Du 😉
Oh 😀
Ja, die Wemos habe ich mit der Arduino-IDE programmiert.
Bin immer noch auf der Suche warum es mit dem ESPHome nicht läuft. Dann mit Tasmota probiert keine Ausgabe auf die Modbus befehle außer Result=Befehl.
Dann gerade eben nochmal auf die Platine geschaut.. und total verwirrt "festgestellt" das bei J5 ja eine Brücke eingebaut ist(dachte das wäre R19 und habe die Brücke weggelötet.. und wieder ESPHome dran, Rx,TX hin und her getauscht aber weiterhin nichts.
Muss ich für ESP Home oder Tasmota noch Änderungen an der Platine machen? Ich glaube für ESP Home muss R19 offen sein? Bei Tasmota geschlossen? Was ist mit dem J5? Modbus ID muss ich setzen bei beiden? sorry bin total verwirrt 🙁
Hallo Mitch,
deine Verdrahtung sieht richtig aus. Ob Du R19 oder J5 oder beide auslötest ist egal.
Miss mal mit dem Multimeter die TX u. RX Leitung vom Wemos bis zum MikrocontrollerPin auf meiner Platine durch. Wemos RX zum zweiten Pin unter der Beschriftung U1 und Wemos TX zum dritten Pin unter der Beschriftung U1 durch. Beide müssen jeweils 47Ohm haben, da sie durch R1/R2 gehen. Ich habe schon defekte R1/R2 gesehen.
Dann muss noch die 5V/Gnd am Wemos, um sicher zu sein, dass die Spannungsversorgung von meiner Platine in Ordnung ist.
Wenn das alles funktioniert, dann würde ich anstelle des Wemos einen USB zu TTL Wandler an den UART Port anschließen.
So wie hier beschrieben:
https://github.com/trucki-eu/RS485-Interface-for-Sun-GTIL2-1000#updates
Dann lädst Du Dir das Programm ModLink Demo64 VCL von hier ( https://www.ozm.cz/ivobauer/modlink/downloads.htm ) runter und startest es.
Du musst ComPort und ID einstellen und dann kannst Du schon versuchen die Register aus der Platine auszulesen. Ist hier ganz genau beschrieben wie das geht:
https://github.com/trucki-eu/RS485-Interface-for-Sun-GTIL2-1000#1st-test-with-pc--rs485-usb-converter-stick
Das Du anstelle des RS485 USB Stick einen normalen UART TTL USB Stick verwendest spielt keine Rolle.
Je nach dem ob die Kommunikation geht oder nicht weißt Du schon mal eher ob Du in Richtung Wemos oder Platine suchen musst.
Viel Erfolg,
Gruß,
Trucki
Hallo
Also kannst du mal einen Screenshoot von deiner WEMOS Konfig machen.
Hatte das Problem auch am Anfang, bis ich gesehen habe das ich statt ModBR TX - SerbTX genommen habe.
Vielleicht ist es ja nur so einen "kleinichkeit"
lg
Inspiriert durch die WEMOS D1 Mini Lochrasterplatine von Christian habe ich mir auch ein paar sehr billige Wemos Module besorgt und eingebaut:
Und ich muss zugeben es lief nicht sofort weil ... siehe unten ... . Hier meine YAML für ESPHome. Die Temperatur habe ich auskommentiert, da sie erst ab meiner Firmware 1.06 unterstützt wird:
esphome:
name: gtil2-1000
platform: ESP8266
# board: nodemcuv2
board: d1_mini
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: ""
password: ""
captive_portal:
# Enable logging
logger:
level: DEBUG
baud_rate: 115200
hardware_uart: UART1
# Enable Home Assistant API
api:
ota:
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: 0x01
modbus_id: modbus1
update_interval: 1s
setup_priority: -10
sensor:
- 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
# - platform: modbus_controller
# modbus_controller_id: sun
# name: "Temperature"
# id: temperature
# register_type: holding
# address: 0x07
# unit_of_measurement: "°C"
# value_type: U_WORD
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: 9600
- platform: modbus_controller
modbus_controller_id: sun
id: dac_number
name: "DAC Number"
address: 0x04
value_type: U_WORD
min_value: 0
max_value: 33187
- 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
Mein erstes Problem:
Der WEMOS D1 Mini hat sich ganz selten mit dem WLAN verbunden. Und wenn, dann war die Verbindung total instabil. Hier hat mir geholfen, eine Standard-Config mit UART Logging zu installieren. Im Log habe ich dann gesehen, dass der WEMOS das WALN nicht findet, etc... Der Grund: BILLIGER MIST CHINA CLONE. Einfach das nächste CLONE WEMOS Modul aus der Tüte geholt und -> WLAN verbindet, super stabil.
Mein zweites Problem:
Keine Kommunikation mit der Platine. Im ESPHome Log habe ich gesehen, dass keine Daten von meiner Platine kommen. Der Grund war schnell gefunden: Meine Testplatine lief noch auf ID16 (für SDM630 Mode). Also schnell die Jumper J1-J4 für ID1 geöffnet... Und läuft
Mein ESPHome Log sieht so aus:
INFO Reading configuration /config/esphome/GTIL2-1000.yaml...
INFO Starting log output from gtil2-1000.local using esphome API
INFO Successfully connected to gtil2-1000.local
[08:42:08][app]: ESPHome version 2022.3.1 compiled on Sep 28 2022, 08:40:58
[08:42:08][C][wifi]: WiFi:
[08:42:08][C][wifi]: Local MAC:
[08:42:08][C][wifi]: SSID: ''[redacted]
[08:42:08][C][wifi]: IP Address: 192.168.1.
[08:42:08][C][wifi]: BSSID: * [redacted]
[08:42:08][C][wifi]: Hostname: 'gtil2-1000'
[08:42:08][C][wifi]: Signal strength: -87 dB ▂▄▆█
[08:42:08][C][wifi]: Channel: 11
[08:42:08][C][wifi]: Subnet: 255.255.255.0
[08:42:08][C][wifi]: Gateway: 192.168.1.1
[08:42:08][C][wifi]: DNS1: 192.168.1.1
[08:42:08][C][wifi]: DNS2: 0.0.0.0
[08:42:08][C][logger]: Logger:
[08:42:08][C][logger]: Level: DEBUG
[08:42:08][C][logger]: Log Baud Rate: 115200
[08:42:08][C][logger]: Hardware UART: UART1
[08:42:08][C][uart.arduino_esp8266]: UART Bus:
[08:42:08][C][uart.arduino_esp8266]: TX Pin: GPIO1
[08:42:08][C][uart.arduino_esp8266]: RX Pin: GPIO3
[08:42:08][C][uart.arduino_esp8266]: RX Buffer Size: 256
[08:42:08][C][uart.arduino_esp8266]: Baud Rate: 9600 baud
[08:42:08][C][uart.arduino_esp8266]: Data Bits: 8
[08:42:08][C][uart.arduino_esp8266]: Parity: NONE
[08:42:08][C][uart.arduino_esp8266]: Stop bits: 1
[08:42:08][C][uart.arduino_esp8266]: Using hardware serial interface.
[08:42:08][C][modbus]: Modbus:
[08:42:08][C][modbus]: Send Wait Time: 250 ms
[08:42:08][C][modbus.number]: modbus.numberModbus Number 'AC Setpoint Number'
[08:42:08][C][modbus.number]: modbus.number Unit of Measurement: 'W'
[08:42:08][C][modbus.number]: modbus.numberModbus Number 'DAC Number'
[08:42:09][C][modbus.number]: modbus.numberModbus Number 'Calibration Number'
[08:42:09][C][modbus_controller.sensor]: modbus_controller.sensorModbus Controller Sensor 'AC Output'
[08:42:09][C][modbus_controller.sensor]: modbus_controller.sensor State Class: ''
[08:42:09][C][modbus_controller.sensor]: modbus_controller.sensor Unit of Measurement: 'W'
[08:42:09][C][modbus_controller.sensor]: modbus_controller.sensor Accuracy Decimals: 1
[08:42:09][C][modbus_controller.sensor]: modbus_controller.sensorModbus Controller Sensor 'Grid Voltage'
[08:42:09][C][modbus_controller.sensor]: modbus_controller.sensor State Class: ''
[08:42:09][C][modbus_controller.sensor]: modbus_controller.sensor Unit of Measurement: 'V'
[08:42:09][C][modbus_controller.sensor]: modbus_controller.sensor Accuracy Decimals: 1
[08:42:09][C][modbus_controller.sensor]: modbus_controller.sensorModbus Controller Sensor 'Bat Voltage'
[08:42:09][C][modbus_controller.sensor]: modbus_controller.sensor State Class: ''
[08:42:09][C][modbus_controller.sensor]: modbus_controller.sensor Unit of Measurement: 'V'
[08:42:09][C][modbus_controller.sensor]: modbus_controller.sensor Accuracy Decimals: 1
[08:42:09][C][captive_portal]: Captive Portal:
[08:42:09][C][mdns]: mDNS:
[08:42:09][C][mdns]: Hostname: gtil2-1000
[08:42:09][C][ota]: Over-The-Air Updates:
[08:42:09][C][ota]: Address: gtil2-1000.local:8266
[08:42:09][C][api]: API Server:
[08:42:09][C][api]: Address: gtil2-1000.local:6053
[08:42:09][C][api]: Using noise encryption: NO
[08:42:09][C][modbus_controller]: ModbusController:
[08:42:09][C][modbus_controller]: Address: 0x01
[08:42:09][D][modbus.number]: Number new state : 0.00
[08:42:09][D][number]: 'AC Setpoint Number': Sending state 0.000000
[08:42:09][D][modbus_controller.sensor]: Sensor new state: 0.00
[08:42:09][D][sensor]: 'AC Output': Sending state 0.00000 W with 1 decimals of accuracy
[08:42:09][D][modbus_controller.sensor]: Sensor new state: 2238.00
[08:42:09][D][sensor]: 'Grid Voltage': Sending state 223.80000 V with 1 decimals of accuracy
[08:42:09][D][modbus_controller.sensor]: Sensor new state: 0.00
[08:42:09][D][sensor]: 'Bat Voltage': Sending state 0.00000 V with 1 decimals of accuracy
[08:42:09][D][modbus.number]: Number new state : 0.00
[08:42:09][D][number]: 'DAC Number': Sending state 0.000000
[08:42:09][D][modbus.number]: Number new state : 0.00
[08:42:09][D][number]: 'Calibration Number': Sending state 0.000000
[08:42:10][D][modbus.number]: Number new state : 0.00
Viele Grüße,
Trucki
Hey Trucki,
also R1 und R2 sind ok, habe nun deinen Code mal verwendet, ergänzt um "
web_server:
port: 80"
Aber es kommt immer folgende Meldung:
13:58:29 [D] [modbus_controller] Modbus command to device=1 register=0x00 countdown=0 no response received - removed from send queue
13:58:30 [W] [modbus_controller] Duplicate modbus command found: type=0x3 address=0 count=6
Hallo Mitch,
ich habe noch ein downgrade auf Firmware 1.04 mit meiner Testplatine gemacht und den WebServer der YAML hinzugefügt. Funktioniert alles.
- Kommen aus dem RX u. TX Pin meiner Platine 5V, wenn das WEMOS nicht angeschlossen ist?
Gruß,
Trucki
Zwischen RX und TX ist keine Spannung zu messen 🙁
Klar, weil beide 5V haben.
Du musst jeweils zwischen GND und RX und GND und TX messen.
Gruß Trucki
Hi Trucki,
ok also sind 5,37V und 5,4V auf den 2 Datenleitungen 😉
Gruß
Das ist gut. D.h. die Pins sind mit dem Mikrocontroller verbunden und die PullUps im Controller funktionieren.
Ich nehme an die grüne LED blinkt im Sekundentakt (Firmware 1.04)?
Hast Du schon mal ein anderes WEMOs bzw. EsP8266 Modul probiert? Hatte ja gerade auch ein Defektes.
Gruß Trucki
Ja die grüne Led blinkt etwa im sekundentakt, Firmware? Der GTIL zeigt im Hauptmenü 5.1 an.
Einen 2.ten ESP hab ich schon probiert, ohne Veränderung. Hab noch einen 3. den Versuche ich noch, und morgen kommt ein USB-UART-Wandler. Mal schauen ob es damit anderst wird.
Firmware 1.04 blinkt im Sekundentakt.
Ab Firmware 1.06 gibt es einen Errorblinkcode.
Meine Platine funktioniert mit allen gängigen SUN Firmwares. Auch 5.1
Nur zur Sicherheit:
10x "LED Ein" blinken braucht bei mir 19,5s mit Firmware 1.04 (meine Platine).
Hallo,
ich komme irgendwie nicht weiter.
Platine ist verbaut und alle Brücken geschlossen (SDM630 Mode, J1-5 und 2000W).
Jetzt hab ich einen Wemos mit ESPHome mit der gtli2sdm630.yaml geflasht da ich die Wert im IoBroker per MQTT überwachen möchte.
Allerdings bekomme ich in der WebGUI vom ESPHome alle Werte mit dem State NA angezeit.
Name State Actions
GTIL2SDM630 AC display NA
GTIL2SDM630 AC setpoint NA
GTIL2SDM630 Calibration NA
GTIL2SDM630 DAC NA
GTIL2SDM630 SDM630 PA NA
GTIL2SDM630 Temperature NA
GTIL2SDM630 VBat NA
GTIL2SDM630 VGrid NA
Was mach ich falsch?
TX der Platine ist mit RX vom Wemos verbunden!
Gruß Maxim