leodesigner / powmr4500_comm

PowMr 4500W/6500W Inverter communication protocol
GNU General Public License v3.0
9 stars 2 forks source link

ESPhome integration #1

Open lufton opened 8 months ago

lufton commented 8 months ago

Hi, I have similar but 6500W version of inverter. Is there any chance your protocol can be integrated with this project? I was trying to use that one, but it didn’t work for me. Now it’s clear why. Also, FYI, I found out that this inverter sold by different brand name:

And it looks like they all use DTU WBS1-V001 module for communication and Solar House (iOS)/Hy-Power (Android) application.

leodesigner commented 8 months ago

Correct, but this inverter does not use modbus for communication. So for esphome custom component will be needed.

It's possible to do, but unfortunately I have no time to work on this. Probably it will be easy to modify some custom component from BMS like this one: https://github.com/syssi/esphome-jbd-bms

lufton commented 7 months ago

@leodesigner also I have received DTU for this model. It looks like is based on ESP32-C3 module. If that helps I can try dumping the flash to help reverse engineer the protocol if I have enough skills and tools.

leodesigner commented 7 months ago

Dumping flash and figuring out what is happening there might be a really time consuming task. The easiest way would be to sniff out all communication between this DTU module and inverter. You can figure out almost everything (as I did for a couple of days).

Feel free to contribute, my work is not complete at the moment.

lufton commented 7 months ago

No idea with how to do that, that could be helpful if you provide some sources on how to do that. Right now I have couple of esp8266 boards, max3232 TTL converter and USB TTL adaptor. But I can’t setup DTU, even though I can see the module obtained IP address from my router when I click check connection in the app it says there is no connection. So I’m kinda sucked there.

leodesigner commented 7 months ago

There is a button (as far as I remember) in the upper right corner in the app to activate/connect your DTU in the app. The mobile app interface is really confusing :)

Regarding communication sniffing: you will need a custom code written in Arduino, or you can use esphome with UART debug enabled, this way you can sniff binary communication. (the RX of your max3232 converter should be connected to one of the communication lines (RX or TX) depending on what you want to record)

Then you can push buttons in app and record what is sent over the serial line.

lufton commented 7 months ago

Do you have DTU itself? I've disassembled mine and it's based on ESP32-C3-mini-1 and SP3232EEN. So I'm planning to flash ESP32 with esphome but I need to know witch pins SP3232EEN is connected to as it's BGA (i believe) kind of board. It seems to be pins at the bottom of ESP32 board. SP3232 ttl pin vias located under the R10 resistor. So I suppose GPIO4 and GPIO5. IMG_3161

lufton commented 7 months ago

So I have traced down SP3232 and it is indeed GPIO4 and GPIO5 pins of ESP32. So I've flashed DTU (backed up flash before flashing) module with esphome with this configuration:

esphome:
  name: PowMr Invertor
  friendly_name: powmr-inverter

esp32:
  board: esp32-c3-devkitm-1
  framework:
    type: esp-idf

logger:
  level: VERBOSE

uart:
  - id: uart_inverter
    baud_rate: 9600
    tx_pin: GPIO4
    rx_pin: GPIO5
    data_bits: 8
    stop_bits: 1
    parity: NONE
    debug:
      direction: BOTH
      dummy_receiver: false
      after:
        delimiter: "\r"
      sequence:
        - lambda: UARTDebug::log_hex(direction, bytes, ' ');

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

interval:
  - interval: 10s
    then:
      - uart.write:
            id: uart_inverter
            data: [0x88, 0x51, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x08]

And I tried switching TX and RX pins, but the only output in the log I receive is:

[18:17:32][C][uart.idf:122]: UART Bus:
[18:17:32][C][uart.idf:123]:   Number: 1
[18:17:32][C][uart.idf:124]:   TX Pin: GPIO4
[18:17:32][C][uart.idf:125]:   RX Pin: GPIO5
[18:17:32][C][uart.idf:127]:   RX Buffer Size: 256
[18:17:32][C][uart.idf:129]:   Baud Rate: 9600 baud
[18:17:32][C][uart.idf:130]:   Data Bits: 8
[18:17:32][C][uart.idf:131]:   Parity: NONE
[18:17:32][C][uart.idf:132]:   Stop bits: 1
...
[18:17:33][D][uart_debug:114]: >>> 88 51 00 03 00 00 00 00 4D 08
[18:17:43][D][uart_debug:114]: >>> 88 51 00 03 00 00 00 00 4D 08
[18:17:53][D][uart_debug:114]: >>> 88 51 00 03 00 00 00 00 4D 08
[18:18:03][D][uart_debug:114]: >>> 88 51 00 03 00 00 00 00 4D 08
[18:18:13][D][uart_debug:114]: >>> 88 51 00 03 00 00 00 00 4D 08

So I don't receive any response from inverter. Can you please see if I'm doing something wrong?

leodesigner commented 7 months ago

Hey, this is great progress, you are on the right path! Unfortunately, I don't have the original DTU module now.

Your inverter supposed to send back an answer frame to both commands: state request: 88510003000000004d08 or config request: 88510003020000004cb0

Did you manage to communicate with original DTU module? It sends state request (88510003000000004d08) every few seconds.

Try to switch TX/RX PINs, sometimes naming is confusing (depends on which side you are looking to)

P.S. See recent contribution to the project, almost all registers are decoded now.

aquaforum commented 7 months ago

photo_2023-10-21_14-33-52 tx and rx pins are rs-232, but you can solder on ttl this photo R10 is TTL TX pin, connected to RX on USB-UART module U1-9 is TTL RX pin connected to TX on on USB-UART and desoldering from U1-9 pin

lufton commented 7 months ago

I managed to receive response from DTU with original flash, but it doesn't look similar to your dumps. It also has 154 bytes, but different structure:

Sample 1:

00:00:00:02:00:00:00:00:00:20:00:02:00:00:00:00:30:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:0E:00:30:00:00:02:00:00:02:00:30:00:80:00:04:00:00:02:66:00:00:00:C4:FE:00:00:00:00:00:00:00:00:00:00:00:00:18:00:80:FF:00:00:00:00:00:00:02:00:00:00:02:0E:00:00:32:FE:00:00:00:00:0C:00:04:10:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:0C:20

Sample 2:

00:00:00:02:00:00:00:00:00:20:00:02:00:00:00:00:20:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:0E:00:3C:00:00:02:30:00:00:00:80:00:DD:00:04:04:02:03:7C:00:00:00:C0:FE:00:00:00:00:00:00:00:00:00:00:00:00:18:00:80:FE:00:00:00:00:00:00:00:00:00:00:02:0E:00:00:32:FE:00:00:00:00:0E:00:06:10:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:20:18

Sample 3:

00:00:00:02:00:00:00:00:00:20:00:02:00:00:00:00:20:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:0C:00:C1:00:00:02:3E:00:0E:00:80:00:C0:00:04:00:02:02:02:00:00:00:C6:FE:00:00:00:00:00:00:00:00:00:00:00:00:18:00:8E:FE:00:00:00:00:00:00:02:00:00:00:00:0E:00:00:30:FE:00:00:00:00:0C:00:00:10:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:08:CE

The request for all samples was: 88:51:00:03:00:00:00:00:4D:08

leodesigner commented 7 months ago

Maybe 6500 version is a bit different, but the structure looks the same (with the same modbus CRC at the end of the message). I believe it could be pretty similar.

lufton commented 7 months ago

@leodesigner interesting thing is that on original firmware if I connect to UART on the board headers I can read logs and there I can see it is sending correct values to MQTT:

I (00:08:08.058) DTU: uart send len:10 retry:3 @487968
TX:88 51 00 03 00 00 00 00 4d 08
I (00:08:08.070) DTU: uart send data OK:10
I (00:08:08.241) DTU: UART DATA: 34
I (00:08:09.241) DTU: uart receive data:154
I (00:08:09.242) DTU: uart recv:len:154 retry:3 timeout=3000 @489152
RX:88 51 00 03 00 00 90 00 88 30 81 0b 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 62 08 32 00 88 13 6b 00 20 00 b1 ff ff ff 01 00 00 00 0f 00 00 00 b2 ff 66 08 24 00 87 13 00 00 00 00 00 00 10 16 09 00 00 00 00 00 a3 00 1a 00 00 00 a0 10 00 00 02 00 00 00 00 00 36 2a 2d 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9b 55
I (00:08:11.331) DTU: uart_task call json_report_result_uartauto...
I (00:08:11.335) DTU: app_mqtt_client_publish sent publish successful, recv=2 send=6 msg_id=0,len=531 TOPIC=/1001/84fce622b594/info/get
I (00:08:11.347) DTU: {
"type":"serial",
"func":"auto",
"frame":{
"TR1001230700631-0":"88,51,00,03,00,00,90,00,88,30,81,0b,00,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,05,00,00,00,00,00,00,00,00,00,00,00,00,00,62,08,32,00,88,13,6b,00,20,00,b1,ff,ff,ff,01,00,00,00,0f,00,00,00,b2,ff,66,08,24,00,87,13,00,00,00,00,00,00,10,16,09,00,00,00,00,00,a3,00,1a,00,00,00,a0,10,00,00,02,00,00,00,00,00,36,2a,2d,19,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,9b,55"
}
}

So it either me reading something wrong or DTU is additionally processing data. BUT this DTU is compatible with both 4500 and 6500 version, so should act the same...

leodesigner commented 7 months ago

As far as I remember DTU connects to the external MQTT server, you can also try to play with own DNS substitution and trick your DTU to send messages into to your own MQTT broker too.

Also esphome firmware might have own unknown limitations.

lufton commented 7 months ago

Yes, but it doesn't resolve MQTT DNS name it uses plain IP. And this approach doesn't let you set config and read current state at any given moment. BTW there is no authentication and you can read and even write anybody's information, I did try successfully, just subscribe to wildcard topic (#) at 47.110.46.245:1883. Man, this is so unsecure!

leodesigner commented 7 months ago

Yes, but it doesn't resolve MQTT DNS name it uses plain IP. And this approach doesn't let you set config and read current state at any given moment. BTW there is no authentication and you can read and even write anybody's information, I did try successfully, just subscribe to wildcard topic (#) at 47.110.46.245:1883. Man, this is so unsecure!

Damn :) Just replace this ugly T^%& DTU with the own solution then.

So the protocol should be the same, all you have to do is to wrap all according to your needs (esphome). At the moment (for my own needs) I have esp8266 with the custom firmware written in Arduino. It allows me to monitor and control inverter via my local MQTT broker. But I implemented only a subset of the whole functionality.

lufton commented 7 months ago

Yap, that’s why I’m looking for ready to use solution and ready to help in developing new one. But esphome is so much easier and flexible to someone who has no knowledge in programming than some custom firmware.

aquaforum commented 7 months ago

And how did you get the data from DTU? I think you received data with errors. What is the phone showing at this time? RS-232 is bad there, interference is felt. Try connecting to U1-9 via TTL, I suspect you'll get the correct data from there

aquaforum commented 7 months ago

Пропоную перейти на укр. мову. Я англійською володію не дуже, все рівно користуюся гугл перекладачем.... а кому буде цікава наша бесіда - теж скористається гуглом....

lufton commented 7 months ago

Дякую @aquaforum, написав вам на пошту, вказану у профілі, там залишив свій telegram, може так буде зручніше? А якщо коротко, то я припаявся безпосередньо до мікросхеми SP3232, 9 та 10 нога. Перекидував 9 і 10 пін на RX UART D1 mini, тобто спочатку 10-ту ногу читав, туди приходять повідомлення від ESP32, який розпаяний на платі: 88:51:00:03:00:00:00:00:4D:08. Потім підкинув 9-ту ногу стали приходити інші повідомлення, вже від інвертора, але не схожі на те, що отримуєте ви: 00:00:00:02:00:00:00:00:00:20:00:02:00:00:00:00:20:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:0E:00:3C:00:00:02:30:00:00:00:80:00:DD:00:04:04:02:03:7C:00:00:00:C0:FE:00:00:00:00:00:00:00:00:00:00:00:00:18:00:80:FE:00:00:00:00:00:00:00:00:00:00:02:0E:00:00:32:FE:00:00:00:00:0E:00:06:10:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:20:18 IMG_3167

leodesigner commented 7 months ago

 Прохання тут пізніше результатами поділитись :)

aquaforum commented 7 months ago

Я так підозрюю буде варіант прошивки DTU для esp home...

lufton commented 7 months ago

Так і є. Робота вже майже закінчена. Відлагоджує локально. Потрібно ще пару штрихів і буде готовий компонент для esphome з блек-джеком і плюшками ) image

lufton commented 7 months ago

Хоча ще не реалізована конфігурація параметрів. Там можуть виникнути складнощі. Туди я ще не дістався.

G-Christ commented 1 month ago

Hi @lufton I have just got the 6.5Kw and found out that the sbu configuration don’t work so i need to control by other means and it would be great if i integrate it to Home assistant using esphome.

Looks like you succeeded.

Could you please share the esphome code and the wiring instructions etc.

I will be very greatefull.

You are very welcome to write to my email ghassan@nahhas.dk

best regards, Ghassan

aa755 commented 1 month ago

found out that the sbu configuration don’t work

Can you please elaborate? Are you able to set the inverter to SBU mode using the physical buttons? Are you not able to set it to SBU using the uart communication? (I have the same problem although it seems I am misunderstanding how to send config updates to the inverter)

lufton commented 1 month ago

@G-Christ @aa755

Hello. Everything that you need to integrate with ESPHome is located in this repo. But I think there might be an issue with SBU mode with this inverter model. I remember others mentioned that, but I personally don’t use that mode. You are welcome to try using my custom integration, but I think it will work the same way as a setting through inverter’s front panel.

G-Christ commented 1 month ago

Hi,Until now I have only the physical button configuration.I do set SBU and it is saved, but the logic in the inverter doesn’t work. When I turn the AC input on, it switches to bypass mode and the output load is powered by Utility even though there is more than enough solar and power. I have been in contact with PowMr and they told me that this is a known issue and can not be fixed. They suggested that I use a time based ac input relay. But this is a no-go for me.My plan is to have AC input relay remotely controllable from Home assistant. Then if I can read the values from the inverter into Home assistant, I can do logic based on battery voltage or more advanced based on several values.Med venlig hilsenGhassan ChristensenDen 2. maj 2024 kl. 07.14 skrev Дубовик Максим @.***>: @G-Christ @aa755 Hello. Everything that you need to integrate with ESPHome is located in this repo. But I think there might be an issue with SBU mode with this inverter model. I remember others mentioned that, but I personally don’t use that mode. You are welcome to try using my custom integration, but I think it will work the same way as a setting through inverter’s front panel.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

G-Christ commented 1 month ago

This is great thanks.Could you please help me explaining the wiring and the whole HW setup from the rj45 port on the inverter and whole the way to for example an esp32 d1mini. Do i need any additional components like rs232-ttl or other. Please help me with these details.Med venlig hilsenGhassan ChristensenDen 2. maj 2024 kl. 07.14 skrev Дубовик Максим @.***>: @G-Christ @aa755 Hello. Everything that you need to integrate with ESPHome is located in this repo. But I think there might be an issue with SBU mode with this inverter model. I remember others mentioned that, but I personally don’t use that mode. You are welcome to try using my custom integration, but I think it will work the same way as a setting through inverter’s front panel.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

lufton commented 1 month ago

This is great thanks.Could you please help me explaining the wiring and the whole HW setup from the rj45 port on the inverter and whole the way to for example an esp32 d1mini. Do i need any additional components like rs232-ttl or other. Please help me with these details.Med venlig hilsenGhassan ChristensenDen 2. maj 2024 kl. 07.14 skrev Дубовик Максим @.>: @G-Christ @aa755 Hello. Everything that you need to integrate with ESPHome is located in this repo. But I think there might be an issue with SBU mode with this inverter model. I remember others mentioned that, but I personally don’t use that mode. You are welcome to try using my custom integration, but I think it will work the same way as a setting through inverter’s front panel. —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.>

Well, if you have original DTU from PowMr then you can use it, just flash it with ESPHome configuration from the repo I posted above. If not – than you will need any esp device (I have tested only ESP32, but ESP8266 should work too) and rs232-ttl (e.g. max232). I believe wiring is described in this repo. I’ll try to double check and update documentation of my repo eventually.

lufton commented 1 month ago

@G-Christ, here is my effort: simplified original DTU schematics. It should be pretty clear how to wire everything.

G-Christ commented 1 month ago

Hi,Thanks a lot. Looks like there is all what i need.Basically I will try the max3232 way first as i haven’t got the wifi module yetI will give it a try and get back to you if i need further help.Best regards,Ghassan ChristensenDen 2. maj 2024 kl. 14.12 skrev Дубовик Максим @.***>: @G-Christ, here is my effort: simplified original DTU schematics. It should be pretty clear how to wire everything.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

lufton commented 1 month ago

@G-Christ, you are welcome!

aa755 commented 1 month ago

SBU works for me: image

Above is a screenshot from the state obtained from uart via the algorithm described in this repo. The readings from my battery;s BMS app are consistent with these (e.g. battery charging current and voltage). Clearly, in this moment, the solar power is lower than the load power and the difference is almost entirely coming from the battery, not from utility. SBU has 2 additional parameters:

image

image

your values may be too high and that the inverter may be ignoring the batteries.

aa755 commented 1 month ago

@lufton : can you please confirm that you are able to change any config setting (need not be SBU/SUB) by serial communication from your ESP32 setup. if it works, can you describe the packet you send to change the config? is it just the result of tweaking the response of the config read (after updating the modbusCRC16)? do you send some packet before sending the updated state?

lufton commented 1 month ago

@aa755 yes I can change any config, currents / voltages / select options / etc image image image First I send read config package, then parse it and store in object. Then after any attribute change I calculate crc and write new packet. https://github.com/lufton/esphome-inv-8851/blob/6fe936116a7f1aaad270cd8a2af7b1e8a534f2fc/components/inv_8851/inv_8851.cpp#L374-L380

G-Christ commented 1 month ago

In my case it literally shifts to bypass mode which is shown on the inverter screen. On the following link you can see a video I made and sent to seller to proof itmp4: 2024-04-27_rq9pa3k4gyfiles.fmI am also measuring the loud directly on the input are you also doing that?Med venlig hilsenGhassan ChristensenDen 2. maj 2024 kl. 17.13 skrev Abhishek Anand @.***>: @lufton : can you please confirm that you are able to change any config setting (need not be SBU/SUB) by serial communication from your ESP32 setup. if it works, can you describe the packet you send to change the config? is it just the result of tweaking the response of the config read (after updating the modbusCRC16)? do you send some packet before sending the updated state?

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

lufton commented 1 month ago

In my case it literally shifts to bypass mode which is shown on the inverter screen. On the following link you can see a video I made and sent to seller to proof itmp4: 2024-04-27_rq9pa3k4gyfiles.fmI am also measuring the loud directly on the input are you also doing that?Med venlig hilsenGhassan ChristensenDen 2. maj 2024 kl. 17.13 skrev Abhishek Anand @.>: @lufton : can you please confirm that you are able to change any config setting (need not be SBU/SUB) by serial communication from your ESP32 setup. if it works, can you describe the packet you send to change the config? is it just the result of tweaking the response of the config read (after updating the modbusCRC16)? do you send some packet before sending the updated state? —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.>

Sorry, I don't know how to open your video.

G-Christ commented 1 month ago

Hello again,Now every thing done, HW and esphome using the online yaml version with a esp8266 d1miNo errirs but just don’t get any numbers. Do I need to do anything to trigger getting data first time?Med venlig hilsenGhassan ChristensenDen 2. maj 2024 kl. 19.54 skrev Nahhas @.>:I try to attach it hereMed venlig hilsenGhassan ChristensenDen 2. maj 2024 kl. 17.57 skrev Дубовик Максим @.>:

In my case it literally shifts to bypass mode which is shown on the inverter screen. On the following link you can see a video I made and sent to seller to proof itmp4: 2024-04-27_rq9pa3k4gyfiles.fmI am also measuring the loud directly on the input are you also doing that?Med venlig hilsenGhassan ChristensenDen 2. maj 2024 kl. 17.13 skrev Abhishek Anand @.>: @lufton : can you please confirm that you are able to change any config setting (need not be SBU/SUB) by serial communication from your ESP32 setup. if it works, can you describe the packet you send to change the config? is it just the result of tweaking the response of the config read (after updating the modbusCRC16)? do you send some packet before sending the updated state? —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.>

Sorry, I don't know how to open your video.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

G-Christ commented 1 month ago

I corrected wiring to gpio1 and gpio3 as in the code and not like the picture in the repo you sent me.Now i get this all the time and the sensor values are all still uknown. Any idea?Med venlig hilsenGhassan ChristensenDen 2. maj 2024 kl. 22.56 skrev Nahhas @.>:Hello again,Now every thing done, HW and esphome using the online yaml version with a esp8266 d1miNo errirs but just don’t get any numbers. Do I need to do anything to trigger getting data first time?Med venlig hilsenGhassan ChristensenDen 2. maj 2024 kl. 19.54 skrev Nahhas @.>:I try to attach it hereMed venlig hilsenGhassan ChristensenDen 2. maj 2024 kl. 17.57 skrev Дубовик Максим @.***>:

In my case it literally shifts to bypass mode which is shown on the inverter screen. On the following link you can see a video I made and sent to seller to proof itmp4: 2024-04-27_rq9pa3k4gyfiles.fmI am also measuring the loud directly on the input are you also doing that?Med venlig hilsenGhassan ChristensenDen 2. maj 2024 kl. 17.13 skrev Abhishek Anand @.>: @lufton : can you please confirm that you are able to change any config setting (need not be SBU/SUB) by serial communication from your ESP32 setup. if it works, can you describe the packet you send to change the config? is it just the result of tweaking the response of the config read (after updating the modbusCRC16)? do you send some packet before sending the updated state? —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.>

Sorry, I don't know how to open your video.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

G-Christ commented 1 month ago

I see in core.yaml you refer to

libraries:

And this is common for 4.5 amd 6.5 kW? or is it an error? It is the 6,5 kW i have.

Or is it something else I am missing?

Nahhas skrev den 02.05.2024 23:56:

I corrected wiring to gpio1 and gpio3 as in the code and not like the picture in the repo you sent me. Now i get this all the time and the sensor values are all still uknown. Any idea?

Med venlig hilsen Ghassan Christensen

Den 2. maj 2024 kl. 22.56 skrev Nahhas @.***>:

Hello again, Now every thing done, HW and esphome using the online yaml version with a esp8266 d1mi

No errirs but just don't get any numbers. Do I need to do anything to trigger getting data first time?

Med venlig hilsen Ghassan Christensen Den 2. maj 2024 kl. 19.54 skrev Nahhas ***@***.***>: I try to attach it here Med venlig hilsen Ghassan Christensen Den 2. maj 2024 kl. 17.57 skrev Дубовик Максим ***@***.***>: In my case it literally shifts to bypass mode which is shown on the inverter screen. On the following link you can see a video I made and sent to seller to proof itmp4: 2024-04-27_rq9pa3k4gyfiles.fmI am also measuring the loud directly on the input are you also doing that?Med venlig hilsenGhassan ChristensenDen 2. maj 2024 kl. 17.13 skrev Abhishek Anand _@_._>: @lufton [1] : can you please confirm that you are able to change any config setting (need not be SBU/SUB) by serial communication from your ESP32 setup. if it works, can you describe the packet you send to change the config? is it just the result of tweaking the response of the config read (after updating the modbusCRC16)? do you send some packet before sending the updated state? --Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @_.> Sorry, I don't know how to open your video. -- Reply to this email directly, view it on GitHub [2], or unsubscribe [3]. You are receiving this because you were mentioned.Message ID: ***@***.***>

Links:

[1] https://github.com/lufton [2] https://github.com/leodesigner/powmr4500_comm/issues/1#issuecomment-2090881604 [3] https://github.com/notifications/unsubscribe-auth/ALJMUFS2AKJT67ZRR7C7ATLZAJO75AVCNFSM6AAAAAA6EPJWLCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJQHA4DCNRQGQ --=_1f7ca7cde780d965d106a16e76da0f25 Content-Type: multipart/related; boundary="=_1d778c6be17340ffb1ce11adffe3d01a"

--=_1d778c6be17340ffb1ce11adffe3d01a Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=UTF-8

I see in core.yaml you refer to 

libraries:
    - leodesigner/PowMr_4500_regmap


And this is common for 4.5 amd 6.5 kW? or is it an error? It is the 6,5 = kW i have.

Or is it something else I am missing?



Nahhas skrev den 02.05.2024 23:56:

I corrected wiring to gpio1 and gpio3 as in the code and = not like the picture in the repo you sent me.
Now i get this all the time and the sensor values are all still uknown= =2E Any idea?
3D"ima=
Med venlig hilsen
Ghassan Christensen

Den 2. maj 2024 kl. 22.56 skrev Nahhas ***@***.***= has.dk>:

Hello again,
Now every thing done, HW and esphome using the online yaml version wit= h a esp8266 d1mi
 
No errirs but just don't get any numbers. Do I need to do anything to = trigger getting data first time?
 
3D"image0.jpeg"
<image0.jpeg>
<image1.jpeg>

Med venlig hilsen
Ghassan Christensen

Den 2. maj 2024 kl. 19.54 skrev Nahhas ***@***.***= has.dk>:

<Video.mov>
=  
= I try to attach it here
Med venlig hilsen
Ghassan Christensen

Den 2. maj 2024 kl. 17.57 skrev =D0=94=D1=83=D0=B1=D0= =BE=D0=B2=D0=B8=D0=BA =D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC <notification= ***@***.***>:


In my case it literally shifts to bypass mode which is show= n on the inverter screen. On the following link you can see a video I = made and sent to seller to proof itmp4: 2024-04-27_rq9pa3k4gyfiles.fmI am a= lso measuring the loud directly on the input are you also doing that?Med ve= nlig hilsenGhassan ChristensenDen 2. maj 2024 kl. 17.13 skrev Abhishek Anan= d @.>: : can you please confirm that you are able= to change any config setting (need not be SBU/SUB) by serial communication= from your ESP32 setup. if it works, can you describe the packet you send t= o change the config? is it just the result of tweaking the response of the = config read (after updating the modbusCRC16)? do you send some packet befor= e sending the updated state? —Reply to this email directly, view it o= n GitHub, or unsubscribe.You are receiving this because you were mentioned.= Message ID: @.>

Sorry, I don't know how to open your video.


Reply to this email directly,
view it on GitHub, or unsubscribe.
You ar= e receiving this because you were mentioned.Message ID: &= lt;leodesigner/powmr4500_comm/issues/1/2090881604@github.com>

--=_1d778c6be17340ffb1ce11adffe3d01a Content-Transfer-Encoding: base64 Content-ID: @.***> Content-Type: image/jpeg; name=image0.jpeg Content-Disposition: inline; filename=image0.jpeg; size=273247

/9j/4AAUSkZJRgABAQEBLAEsAABBTVBG/+EqNkV4aWYAAE1NACoAAAAIAAYBEgADAAAAAQAGAAAB GgAFAAAAAQAAAFYBGwAFAAAAAQAAAF4BKAADAAAAAQACAAACEwADAAAAAQABAACHaQAEAAAAAQAA AGYAAADAAAAASAAAAAEAAABIAAAAAQAHkAAABwAAAAQwMjIxkQEABwAAAAQBAgMAoAAABwAAAAQw MTAwoAEAAwAAAAEAAQAAoAIABAAAAAEAAAKAoAMABAAAAAEAAAHgpAYAAwAAAAEAAAAAAAAAAAAG AQMAAwAAAAEABgAAARoABQAAAAEAAAEOARsABQAAAAEAAAEWASgAAwAAAAEAAgAAAgEABAAAAAEA AAEeAgIABAAAAAEAACkOAAAAAAAAAEgAAAABAAAASAAAAAH/2P/AABEIAHgAoAMBIgACEQEDEQH/ xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMA BBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVG R0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0 tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEB AQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2Fx EyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZ WmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TF xsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2wBDAAICAgICAgMCAgMFAwMDBQYFBQUF BggGBgYGBggKCAgICAgICgoKCgoKCgoMDAwMDAwODg4ODg8PDw8PDw8PDw//2wBDAQICAgQEBAcE BAcQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/ 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 oKlq7/BrsNVqyvBYwP1qo/BE0SFqdvAt4UJqCe+T8N1qiPDv//9xHf//AABySf//GX1ziP//K1p0 +P//PE12ff//TKR4B///XI5zr///ZMVuVP//buduPv//f6tuJv//kE9uCv//oNxt6P//sVdtw/// wcZtnP//0iptcf//4oZtQf//8ttsdf////9bpwULAABdwQAADHtdmwAAHtZdYAAAL9JdFQAAQFFc vgAAUIVcXwAAYINcAAAAcFZbowAAgAlbSwAAj6Na+wAAnypasgAArqVacwAAvhpaXQAAzdJagwAA 3gpbAAAA7x1cjgAA//9b7BM9AABaiRUYEjNbFRRMIFVbEBQ3L8tbCRQcP2Za/hP5TxBa7xPQXsFa 3BOjbnFaxhNyfh5arRNAjcZakxMNnWladxLbrQVaXBKrvJ5aZBKIzHdaohJ43NBbMRKD7f9czBLk //9cXSG1AABbKyKmEqRahiMpIZdamCMYMDpaniMQP1VapCMETqdaqyL0XhharyLgbZ1asiLJfS9a siKvjMharyKTnGVaqSJ2rANaoiJYu6RauiJKy4dbByJU2+pboiKE7SNdRyMv//9dAjECAABcFTF1 EzRbfjHAIlZbTzHZMO9bTzHZP8tbTzHZTuxbTzHZXjFbTzHZbYxbTzHZfPZbUTHVjG9bVDHOm/Nb VTHEq39bVzG5uxRbdzHAyvBbzDHm201cbzI77IBeGjMw//9d3EChAABdO0DME9JcyEDtIytcgUEE MeFcgEEEQIJcgEEET3tcgEEEXqVcgEEEbexcgEEEfUdcgEEEjK5cgEEEnB1cgEEEq5RcgUEFuxFc okEdytRc+EFb2xtdnUHS7DlfSUML//9e71BmAABel1BnFHBeU1BqJANeHVBuMuxeD1BwQXJeD1Bw UDdeD1BwXz5eD1BwbmxeD1BwfbNeD1BwjQteD1BwnG9eD1Bwq9xeEFBxu1JeMVCNywtehlDX20Jf KlFn7Epg01La//9gPWA9AABgJ2AnFQhgFWAVJNVgBmAGM/Nf/l/+Qplf/l/+USNf/l/+X/5f/l/+ bwxf/l/+fjxf/l/+jYFf/l/+nNdf/l/+rDhf/1//u6RgH2Afy1FgcmBy23phE2ET7HBit2K3//9h ynAgAABh7G/7FZViCm/cJZ1iKG++NO5iQ2+oQ8NiTW+hUkFiTW+hYOhiTW+hb9BiTW+hfuJiTW+h jhJiTW+hnVViTW+hrKhiT2+jvAhibG/Ey6hivXAe279jW3DP7J5k9nKb//9jl4AIAABj6X/cFhlk Mn+0Jllkfn+LNdxkxH9pRN9k9H9UU4Nk+n9SYftk+n9ScLdk+n9Sf6hk+n9Sjr1k+n9Snexk+n9S rS5k+39TvH9lF391zA9lZH/U3BFl/ICQ7NdniYJ8//9lo4/1AABmHI/FFpVmjY+XJwlnBI9nNrtn do87Retn1I8ZVLloAI8LYzloAI8LccNn/48LgI1n/o8Lj4Vn+48Lnp5n948MrdFn8Y8NvRpoAo8u zKFoQI+O3Jtox5BQ7VNqOpJQ//9n7Z/lAABoiJ+yFwppG5+BJ6xpuZ9MN45qVJ8ZRuhq357uVd5r RJ7QZIRrHp7ZcsVrF57ZgXlrDp7ZkGNrA57Zn3Vq9p7ZrqVq6J7Yve5q7Z72zXFrHJ9S3WBrkqAV 7gRs6KIe//9qdK/WAABrKq+jF3Br2q9wKEdsnK84OFRtXq8AR9duEq7NVvNuqa6lZb5uH67Ec4Nu E67DgjpuBa7BkSlt9a6/oEBt4668r3dtzq65vshtya7Qzktt668l3jFuT6/j7sBviLHn//9tNr/K AABuAr+XF9Zuy79jKNdvrL8oOQ5wkL7tSLhxa761V/lyLr6FZuhxA77Ec/Bw9L7Cgrpw5L6+kbtw 0L66oORwur60sCtwoL6uv4lwkr68zxBwpr8F3u9w+r+372lyEMGq//9wPs/XAABxG8+kGEFx+c9w KWdy9M81OcZz+M73SZd09s67WP114M6EaA5z2M7tdBBzyM7pgv5zts7jkh5zn87doWNzh87WsMNz a87NwDhzRs63z7BzTM7v34pzjc+P7+90ftFh//9zkeAUAAB0e9/iGJJ1bd+uKft2f99yOoJ3n98y Snt4vN7zWgh5yt65aT53Lt84dHJ2m99Mgwp2h99Fkld2cN89ocN2Vt8zsUV2Od8pwNl2Gd8d0Ht1 297f3/Z2CN9l8Ed2z+EG//93PPCgAAB4MPBwGPN5MvA8KpF6We//O0p7ke+/S258yu9+WyR9+O8/ aoJ64u/PdPx5e/AHgud5Zu/+km55T+/1og55Ne/qsb55Fu/ewXt49e/Q0UN40e/B4RF4aO818Gp5 AvCT//97if//AAB8h///GXt9lv//K1h+0P//PEqAHf//TKKBcf//XI2Cu///bB5/PP//dfJ8uf// gt98pf//krp8jP//oqF8cP//spN8Uv//wox8Mf//0ot8DP//4o175P//8pJ7Fv////9rBgb7AABt dQAACpZtVQAAHf1tIwAAL1ds4AAAQBBskQAAUHNsNwAAYJtr2QAAcJZreQAAgGxrGwAAkCRqwgAA n8VqbgAAr1RqIgAAvthqBAAAzplqKgAA3tZqsQAA7+tsbwAA//9rQBRwAABp4RaOEqBquBUpIEJq sBUVL+JqoxT6P5pqkxTXT1tqfxStXxxqZhR+bttqShRLfpRqKxQVjkdqChPenfJp6BOmrZZpxxNw vTZpyxNGzRRqDhMu3W9qrRMy7p9sfROM//9rnyJuAABqZiOYEvtpoCRTIhtp1iQZMI5p2iQMP6xp 3iP7TwJp4iPmXndp5CPNbgBp5COxfZVp4SORjTJp2yNvnNJp0yNLrHRpySMnvBdp4yMRy/1qOCMV 3GFq5yM+7ZlswyPi//9sLjF8AABrKzIcE3ZqdjKMIrxqGzLHMWlqGzLHQCZqHDLGTzNqHjLEXm1q IjK/bcRqJzK3fTBqLDKtjKxqMDKgnDNqMzKQq8NqNjJ/u1tqWzKAyzhquzKg25drczLv7MltVjPe //9s60D2AABsJkFFFAFrkkGBI3drJkGvMklrGUG1QNxrGUG1T8FrGUG1Xt5rGUG1bhxrGUG1fW9r GUG1jNFrGUG1nDxrGUG1q69rG0G1uyxrQUHJyvJro0ID2ztsXUJ27FpuQEOq//9t1lClAABtUVDB FJFs5lDZJDtsjFDvMzpsZ1D6QcpsZ1D6UH1sZ1D6X3ZsZ1D6bptsZ1D6fdtsZ1D6jS5sZ1D6nI5s Z1D6q/dsaVD7u2psjVEXyyBs7FFh21JtpFHw7FVvgVNi//9u9GBuAABuqmBsFR5ubGBrJP5uM2Br NC1uDWBtQuRuCWBuUWhuCWBuYDZuCWBubztuCWBufmRuCWBujaRuCWBunPVuCWBurFNuCmBvu7xu LWCOy2ZuiWDg24tvPmGB7HtxEmMi//9wR3BHAABwMnAyFaZwH3AgJbtwDnAPNRpwAnACQ/1v/m/+ UoRv/m/+YR9v/m/+b/5v/m/+fwpv/m/+jjRv/m/+nXRv/m/+rMNwAG//vCBwIHAgy7xweXB529Bx KXEp7Kly8nLy//9xz4AoAABx6YAIFiVyAH/qJm9yGH/NNf1yMX+zRQxyRH+jU7tyR3+gYjJyR3+g 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 N9SSGZ/OR0iSKZ+3VleSOJ+mZRaSP5+fc5WSP5+fgh6SP5+fkOKSP5+fn8+SP5+frtuSQJ+gvf+S W5+9zVmSrqAX3RmTX6DW7YWVM6LS//+TjLAhAACTt7ABF3+T4a/hKGuUEa+9OIyUQq+aSCSUca95 V1WUnK9eZjWUu69OdNKUwq9Kg0OUwq9KkeKUwq9KoLGUwq9Kr6SUwq9LvrSU169kzfWVIK+43ZSV wrB07deXc7Js//+VaMALAACVrL/oF+iV8b/DKPaWPr+bOTuWjr9xSPeW3b9JWEqXJr8mZ0mXYr8L dgWXhL7+hIiXhb7+kwCXhb7+oa6Xhb7+sIaXhb79v36Xk78PzqKX0L9a3h6YX8AM7jOZ6MHz//+X fdAJAACX1s/kGD6YMs+9KXqYm8+QOeiZCc9hSceZds8zWTyZ3s8JaFyaOc7ndzeafc7Phdeak87H lEeak87HotOak87HsY6ak87HwG+ajM6/z2Oaus773rebNM+c7picjNFi//+Z1+AvAACaQ+AJGI+a tN/fKgebNt+wOpmbv999SpycSt9LWjSc0N8baXadSt7yeHGdsN7RhzCd796+lbyd4t7BpByd3t7C sr+d2t7CwY2d1N7D0H6ds96f32aeD98o7xefLOC9//+chvCaAACdAfBzGO+dhvBJKpOeHvAXO1Oe wu/iS3+faO+sWz2gC+94aqOgo+9JecChKe8giKKhke8Dl0+hS+8UpWOhQ+8UtAKhOu8VwtChMO8U 0cKhJe8U4NOg1e6y75qhsvAF//+f2v//AACgZP//GXCg+v//K0+hp///PDyiY///TJqjI///XIaj 4v//bBukmP//e2alPf//inOlyf//mUulHv//pvKlE///taOlB///xIWk+v//04yk6///4rKk2v// 8fGkHP83//+ZIQ6NAACcjAAAAeicdwAAGgucVQAALQqcJwAAPpab7AAAT4qbpgAAYCmbVwAAcI6b AAAAgMeapAAAkNuaRQAAoNCZ5QAAsKuZiAAAwHGZXwAA0GaZjAAA4MqaOAAA8fecggAA//+ZRxj1 AACYBxuGE7iZ4BdwHsOZ0xdfLzqZwRdHP3WZqRcpT5OZjBcEX52ZaRbYb5mZQhaof4eZFxZyj2iY 6RY6nz2YuBX9rweYhxXAvsiYhxWMzsCY2BVp3y2ZpBVg8GacBxWv//+ZhyVaAACYWicDE+2XaChL I4aYWSbrMOSYVCbbQD6YTibGT8OYRiarX2CYPCaMbwmYLyZpfrmYICZBjmyYDiYWniCX+iXnrdOX 5iW3vYaX/yWVzXeYaSWK3eGZSiWk7xibviY6//+Z6jN9AACY2DSNFDiX9jVoI+qXMTYmMvmXhjXM QTWXiTXBUDSXjTWyX2yXkDWgbseXlDWLfjuXljVzjb6XljVYnU2XlTU6rOSXlDUbvIKXwDUNzGOY OjUd3MCZKzVd7eybqDY7//+ab0JpAACZgEMVFJeYtEOmJGiX+UQsM5GXg0SCQkqXjUR6UOCXkUR2 X8yXlkRwbuqXnERofiqXokRfjYKXqURTnOyXr0RFrGSXtkQ2u+mX6kQ7y7OYa0Rl2/uZYkTJ7RKb 3kXs//+bFlG8AACaTVImFQKZnVKCJPeY9FLbND+YdVMiQxKYVVM0UZ+YVVM0YGOYVVM0b2GYVVM0 foSYVVM0jcCYVVM0nQ6YVVMzrGmYWVMzu9KYiVNJy4CZB1OL26uZ+lQP7KScbVVx//+b3WFHAACb PWGEFXOarWG6JY+aHWHyNPqZpGIjQ+yZZ2I+UoaZZmI+YSGZZmI+cACZZmI+fwuZZmI+jjWZZmI+ nXWZZmI+rMSZaGI/vCCZlGJcy72aCmKr29Ca82NI7KqdUmTf//+cx3D0AACcT3ESFeSb4HEuJiqb bXFLNbubB3FnRM+av3F8U4aasnGBYgeasnGBcMGasnGBf7CasnGBjsSasnGBnfKasnGBrTOas3GC vISa3HGhzBObTHH23BWcLXKg7NieeHRb//+d1YC3AACdg4DAFlKdNIDHJsSc4oDQNnyclIDaRbOc V4DjVIqcOYDpYxacOYDpcaacOYDpgHScOYDpj2+cOYDpnoicOYDprbicO4DrvPucYIEKzHmcyYFi 3GadoIIX7Q6f0oPv//+fCJCIAACe2JCCFsKeqpB7J1ued5B0NzqeR5BvRpSeHpBsVYyeA5BrZDad /ZBrcq+d/ZBrgVid/ZBrkDWd/ZBrnzed/ZBrrlSd/pBsvYaeH5CKzPGegZDk3MafS5Ge7U6hYJOJ //+gYqBiAACgUaBSFySgQaBBJ+2gLqAuN/KgHKAcR2+gDqAOVomgA6ADZVKf/5//c9uf/5//glyf /5//kRif/5//n/+f/5//rwWf/5//viWgG6AbzXqgcqBy3TOhLqEu7ZejIaMh//+h47BDAACh77Ar F4eh+bATKHmiBa/4OKOiEq/cSESiIK/EV36iLa+vZmeiOa+idQ2iPK+fg4GiPK+fkheiPK+foOCi PK+fr8+iPa+fvtqiUq+3zhWinrAI3a6jSbDA7emlFbKu//+jjcApAACjscAMF/Kj1b/vKQKj/r/N OU+kKL+qSRGkU7+JWGykfL9sZ3Okn79WdjaktL9KhMGktr9JkzWktr9Jod2ktr9JsLCktr9Jv6Sk xL9ZzsOlA7+h3jilmsBO7kSnOMIr//+latAgAAClo9AAGD2l3s/fKYSmIs+4Ofmmac+PSd2msc9o WVem9s9DaH2nM88ld16nY88QhgWnds8IlHmnds8Iov+nds8IsbWnds8IwJGncM8Bz4Onns863tCo H8/W7qipitGR//+nh+A8AACn0+AaGI+oJN/1KgqogN/LOqSo49+eSqupRt9xWkepp99HaY6qAN8h eI2qTN8Dh1Kqft7xleOqh97upFOqh97usuyqh97uwbCqh97u0Jaqb97Q33eq1d9T7xWsCODc//+p 9/CYAACqU/B1GO6qt/BOKpSrKvAhO1erpu/xS4esJO/AW0esoO+QarCtFe9ledKtfu9AiLat0O8l l2et+u8Ypeqt+O8YtGWt9u8ZwxOt9O8Z0eat8e8Z4Nitru7F746unfAM//+tCP//AACtc///GWyt 6f//K0uucP//PDavBP//TJevnP//XISwM///bBmww///e2WxSf//inSxuv//mU2yC///p/ix5v// tkWx4f//xPCx2v//08Wx0///4r2xyv//8dGxGv8m//+ogBEuAACr3gHgAACsKwAAGCCsDQAAK/ar 4wAAPd6rrgAATwqrbgAAX9KrJAAAcFiq0gAAgK+qegAAkOCqHQAAoPCpvgAAsOSpYAAAwMGpOAAA 0MupawAA4UCqJgAA8nisnQAA//+ooRq3AACnbh1ZFAmpoBgaHcmpkxgKLq+pgBf1PyepaBfZT22p She1X5apJheNb6mo/hdff6yo0Rcqj6CooBb0n4aobRa4r1+oORZ8vy+oOBZHzzOojxYj36ipaRYb 8OWr+hZk//+o2yaPAACntShWFDWmvynCI/On/ifJMLqn+Ce4QDin7yejT9in5CeJX4in1ydqb0Kn xydGfwCntCcejr+nnibynn6nhibDrjqnbiaSvfanhyZtze2n9SZf3lqo5iZ375GrhicK//+pNDRY AACoJTWGFHenPTaBJEqmZjdnM3im8DbGQW2m8ja5UHWm8zapX7am9DaVbxmm9DZ+fpOm8zZjjh2m 8DZGnbGm7DYlrUym6DYDvO+nFDXxzNKnlTX+3S6olTY57lerPzcT//+prUMMAACoukPTFMun5kR+ JLmnGkUiM/6mhEWdQtGmpUV+UUOmqkV3YCimsEVub0OmtkVjfoKmvUVVjdqmw0VFnUWmyEUzrL+m z0UgvEWnBUUhzA+njkVH3FWolUWl7WerP0bC//+qRFI4AACpclK6FSyotlMsJTmn/FOeNJqnZFP9 Q4WnJFQmUhynJFQmYMmnJFQmb7anJVQmfs2nJ1QkjgGnKlQhnUqnLlQcrKSnNVQWvA+nalQoy72n 8lRk2+ao91Tj7NqrllY9//+q+WGpAACqS2H6FZGpq2JDJcSpCGKPNUWoeWLTREyoH2MAUvmoF2MF YYaoF2MFcFWoF2MFf1SoF2MFjnSoF2MFnayoF2MFrPWoGGMGvEyoRmMiy+OoxGNw2+6pvWQK7L6s R2Wb//+rznFEAACrQ3FyFf2qwXGeJlSqOXHMNfepu3H4RR2pXHIbU+WpPnIoYmupPnIocRWpPnIo f/mpPnIojwOpPnIoniqpPnIorWSpP3IpvLCpanJGzDmp4XKa3DOq0XNB7OytQnT3//+swoD4AACs WoEPFmWr9oEkJueri4E7Nq2rJYFTRfOq0IFoVNmqnoF3Y3Sqm4F4cfmqm4F4gLyqm4F4j62qm4F4 nr+qm4F4remqnIF5vSeqw4GXzJ+rMoHt3ISsFoKe7SKubIRv//+t2JC/AACtkJDEFtCtSZDJJ3es /JDON2GssZDVRsisbpDcVc2sPpDjZIWsL5DmcwKsL5DmgZ+sL5DmkHOsL5Dmn22sL5DmroSsMJDn vbKsUpEEzRasuJFb3OOtjpIS7WKvxJP0//+vEKCRAACu5qCKFy2uu6CDKASujKB7OBKuXaBzR5uu MqBuVr+uEKBrZZOt/KBrdCit+6BrgqOt+6BrkVWt+6BroDWt+6Brrzat/KBrvlGuGKCFzZ+uc6Da 3VCvOaGS7aqxSKN7//+wa7BsAACwXLBcF5KwS7BLKIqwObA5OL+wJ7AnSGiwF7AXV6uwCbAKZp2w AbABdU2v/6//g8av/6//klSv/6//oRav/6//r/+v/6//vwWwFbAVzjqwY7Bj3cuxFrEW7fyy+rL6 //+x68BMAACx9MA2F/Wx/MAgKQ6yBcAFOWSyD7/qSS+yGr/RWJKyJb+7Z6GyML+qdmyyOb+ghP+y Or+fk3GyOr+fohKyOr+fsN+yOr+fv8+ySL+tzuiyh7/x3lWzJcCa7le018Jq//+zmNA7AACzttAh GD6z1dAFKY+z+M/lOge0Hc/DSfO0Q8+jWXW0ac+EaKK0i89rd4m0p89Zhja0tc9RlLK0tc9RozC0 tc9RseG0tc9RwLi0sM9Mz6i038+B3u21Y9AY7ru23tHG//+1geBLAAC1seAuGI+15eAOKg62IN/p Oq62YN/CSru2od+cWly24N93aai3HN9WeK23T988h3e3dN8rlg23fN8opH63fN8osxG3fN8owc+3 fN8o0LC3aN8Q35O30N+M7yi5DeEJ//+3t/CWAAC3+fB3GO24P/BVKpe4kfAtO1246vABS4+5RO/W W1K5nu+rasC58++FeeW6QO9jiM26fu9Kl4K6oe89pgm6o+89tIK6o+89wym6o+890fa6o+894OK6 au717567YvAu//+6if//AAC62v//GWe7Mv//K0S7mP//PDC8CP//TJG8fP//XIG87///bBe9Xv// e2S9xf//inS+Hv//mU++X///p/u+dv//tn++dv//xRS+dv//09W+dv//4ri+df//8be92f8y//+3 5BPRAAC64AYNAAC74wAAFcu7yAAAKre7owAAPQu7cgAATnS7NwAAX2e68wAAcBG6pgAAgIa6UgAA kNK5+QAAoPy5nAAAsQm5OgAAwPm5FAAA0Re5TQAA4Zy6FwAA8uC8uQAA//+4AhyVAAC22h9BFFW5 Zxi8HIm5WRiuLfq5RhiaPrq5Lhh/Ty25EBhdX3i47Bg4b6a4wxgNf7+4lhfaj8e4ZBeln8C4Lhdu r6m38xcvv4O38xb8z5S4Thba4BG5NxbN8VS78hcY//+4NSfiAAC3GSnAFHu2IitMJFy3siidMGq3 qiiNQBW3nyh5T9W3kihfX563gihBb2u3bygdfzq3WSf2jwe3QSfKntK3Jiearpq3BSdnvlq3HSdB zli3kCcy3sm4jidI8AG7WSfY//+4hjVOAAC3fDaUFLS2kTetJKe1rTi3M/S2dTe7QY22dDetUKW2 czecX/O2cTeHb2K2bjdvfua2ajdSjni2ZTcznhO2XTcRrbW2UTbrvVm2fTbXzT63Ajbg3Zu4EDcY 7sG65Dft//+480PEAAC4AUSjFQC3J0VnJQm2T0YpNGq1n0bHQ1e15UaDUZ216UZ5YIG17kZtb521 80Zfft21+EZPjji1/UY8naa2AUYnrSK2AkYPvKe2OUYMzHG2x0Yt3LS33kaH7cG6sUee//+5flLH AAC4p1NeFVS341PmJX23G1RwNPa2b1TpQ/m2CVUyUqW2EFUtYTm2FFUpcBe2GFUlfyW2HVUfjlS2 I1UYnZu2KVUPrPW2LVUDvFu2ZVUQzAi29VVH3C64ClXA7Ry60lcS//+6JGIbAAC5bGJ/Fba4wGLb Jfy4DWM7NZK3bGOTRK6292PVU3C23WPkYfq23WPkcLe23WPkf6i23WPkjr623WPkne623WPkrTC2 22PjvH63C2P+zA63kWRI3BS4m2Tc7N+7TWZj//+653GhAAC6TnHfFhW5vXIbJoK5I3JaNji4kXKX RXC4HXLKVEq35nLkYt235nLkcXa35nLkgEy35nLkj0235nLknmu35nLkrZ+343LjvOG4EHL/zGO4 jHNR3FW5iXP17QK8HnWk//+7xoFFAAC7TIFqFn261oGNJwu6V4GzNuK524HZRji5cYH7VS25KoIV Y9i5H4IZclm5H4IZgQ+5H4IZj/a5H4IZnv+5H4IZriO5HYIYvVi5RYI0zMm5uYKJ3Ka6qYM27Tm9 H4T+//+8wpD/AAC8Z5ERFty8DJEhJ5O7qJEzN4y7RpFGRwK67ZFZVhS6qJFqZNm6ipFyc2C6ipFy gfG6ipFykLq6ipFyn626ipFyrr26iZFxveK6q5GNzUC7FZHh3QW79pKU7Xi+SJRs//+93qDIAAC9 nqDLFzq9XqDOKBu9FqDRODa8zqDUR8q8i6DZVvq8U6DfZdq8LqDkdHq8KKDlgvO8KKDlkZu8KKDl oHO8KKDlr268J6DkvoG8RKD9zcm8oqFO3XG9caIB7cC/maPg//+/GbCbAAC+87CTF5++zLCMKJ++ n7CDONq+crB6SI++R7BzV92+IrBuZtm+BrBrdZK9+rBrhBW9+rBrkpm9+rBroVO9+rBrsDW9+bBq vzW+DrB+zmS+X7DJ3ey/GbF37hLBErNP///AdcB1AADAZsBmF/XAVsBWKRzARMBEOXvAMsAySU/A IMAgWLvAEsASZ9LABsAGdqbAAMAAhUK//7//k7S//7//ok6//7//sRW//7//v//AC8ALzxHAS8BL 3nbA7sDu7mzCscKx///B+NBbAADB/tBGGD/CBNAxKZ3CC9AYOhnCE8/9Sg3CG8/kWZXCJM/MaMnC Ls+5d7jCN8+qhm3CPM+klO/CPc+jo2jCPc+jshLCPc+jwOPCOs+hz9HCaM/R3w3C79Bh7tDEd9IC ///DseBdAADDyuBEGJDD5eAqKhTEA+AMOrnEJN/rSszERt/LWnTEaN+sacXEiN+ReNDEpd97h5/E u99sljzEwt9opK7Ewt9oszrEwt9owfLEwt9o0M7Es99X37TFHN/N7z3GYOE7///FtPCUAADF3vB6 GO3GC/BcKpnGQPA5O2TGePAUS5bGs+/uW1/G7e/JatDHJe+nefnHWe+KiObHhO90l57Hnu9opirH oe9mtJ/Hoe9mwz/Hoe9m0gbHoe9m4OzHce8u77PIbPBX///ISf//AADIgv//GWLIwP//KznJCf// PCnJWf//TIrJq///XHvJ/v//bBPKTv//e2LKmv//inPK3P//mVDLDv//p/3LI///toLLI///xRDL I///08jLI///4qTLI///8ZzKmf9U///H0xaLAADKggq0AADMKQAAEv7MEQAAKWnL7wAAPEjLwgAA TgPLjAAAXzDLTAAAcAjLBAAAgKbKtQAAkRjKXwAAoWbKBQAAsZXJpwAAwarI8AAA0UzJMAAA4eDK CQAA8y/M0wAA///H7R6mAADG0CFXFLLJuRluGxPJrBliLT3JmRlPPlzJgRk1Tw7JZBkWX4jJQBjy b97JFxjJgBrI6BidkEDIthhnoFbIgBgwsFzIRhf3wFPHsxerz+LIFBeG4GrJCxd88bHL7RfJ///I GilyAADHBitkFNTGDi0MJN/H9CmMMBnH6yl9QAXH3ylpT/TH0SlPX+LHvykyb9DHqikPf7vHkSjo j6LHdii9n4XHWCiOr2THNyhcvz3GvygRzrjHNigB3y3IQSgW8GXLMiii///IYDaFAADHWzfiFQXG bjkWJSHFgTpENJXGjzjVQcTGjDjHUPrGiTi0YGPGhDifb+rGfziFf4PGeDhpjynGbzhJntjGZDgl rozGWDf+vkPF9je6zabGfzfB3gPHmjf27ybKkzjG///IwUTCAADH0EW3FUbG8kaTJXfGEEdxNP3F TUgyRA3FwEe3UiDFw0esYRHFxkefcDvFykePf4rFzUd8jvPF0Ednnm/F0kdPrfjF00c1vYzFgkb5 zNXGFUcW3RbHOEds7h3KMEh7///JOlOfAADIYVRKFZbHllTnJd7Gw1WJNXnGBlYcRJ3FgVaFU2fF nFZtYeTFoVZocMLFp1Zgf9TFrVZXjwnFs1ZNnljFulZArbvFwFYyvS7FeVX+zF3GDlYw3H/HMVaj 7WbKHVft///JzGLYAADJDmNOFenIWGO8JlHHmWQwNgXG5mSeRT/GW2T1VB3GJGUZYrfGJGUZcWjG JGUZgFPGJWUZj2XGJmUYnpTGKGUWrdnGLGUSvS/F52TmzEnGdWUq3EvHjmW47Q7KZGc1///KdnJJ AADJ03KYFkTJNnLjJszIjXMzNpzH63OCRe/HYnPGVOLHEHPxY47HCnP1ciHHCnP1gPDHCnP1j+zH CnP1nwnHCnP1rj3HCnP1vYPGx3PMzJLHSXQb3HrIUXS87RvLBnZj///LOIHdAADKsYIPFqPKLYI/ J0rJnYJ0NzjJD4KpRqXIkYLaVbHINYMAZHLIG4MMcv3IG4MMgavIG4MMkI3IG4MMn5TIG4MMrrfI G4MMve/H3oLjzPjIVoM03MvJUYPe7VLL5IWd///ME5GGAADLqJGjFvnLPJG/J8jKxpHeN9XKT5H/ R17J4ZIeVoXJiZI5ZV3JWJJKc/fJVpJLgoPJVpJLkUfJVpJLoDbJVpJLr0XJVpJLvmvJIpIkzW/J j5J13SrKeZMj7ZHM5ZTx///NBqE9AADMtaFKF1XMY6FXKETMBqFlOHHLqKF0SBfLT6GEV1jLA6GT ZknKzaGgdPnKvqGkg3nKvqGkkhvKvqGkoO/KvqGkr+fKvqGkvvrKlKGBzfjK9KHP3ZbLyqJ97dnO CaRP///OFLD7AADN27D9F7fNoLD9KMDNXrD/OQrNGbEASMzM17EDWCjMm7EGZzLMbbELdfrMVLEO hIrMUrEOkwrMUrEOob/MUrEOsJ3MUrEOv5vMNLDzzpLMhbE63hHNRbHi7irPULOs///PPMC9AADP GcC1F/zO9cCtKTPOzMCkOZ/OoMCaSX3OdsCSWPPOT8CLaBbOL8CGdvbOGcCEhZzOE8CElBTOE8CE oqfOE8CEsWnOE8CEwE7OAsB0zz/OQsCw3prO6MFM7oTQucMA///QftB+AADQcNBwGEHQYdBhKajQ T9BPOi3QPdA9SifQK9ArWbjQG9AbaPTQDdANd+rQBNAEhqfP/8//lTHP/8//o6bP/8//skjP/8// wRTP/8//z//QKtAq3zHQtNCz7ujSRNJE///SDOBxAADSEOBeGJLSFeBJKhrSGuAxOsXSIOAYSt/S Jt/+WozSLd/maeTSNd/RePXSPd+/h8rSRN+0lm3SR9+wpOPSR9+ws2jSR9+wwhnSR9+w0O/SP9+n 39fSp+AV71TT8OFy///T3vCTAADT8/B8GO3UCvBkKp3UJfBHO2bUQvAnS5/UYPAHW2zUfu/pauLU nO/Meg/UuO+0iQDU0O+hl7zU4e+WpkzU5O+VtL/U5O+Vw1fU5O+V0hjU5O+V4PjUwO9t78rVu/CF ///WNv//AADWW///GV3Wgv//Ky3Wsf//PCLW5P//TIPXGf//XHXXTv//bA/Xg///e1/Xtf//inLX 4f//mVDYBP//p//YFv//tobYFv//xQrYFv//07rYFv//4o7YFv//8X7Xo/95///YyhlzAADbOw8/ AADdfQAAD4HdZgAAKBndRwAAO7HdHgAATdnc6wAAX1bcsAAAcHHcbAAAgUvcIAAAkfTbzgAAonfb dwAAstnbGwAAwyDavQAA007ZEgAA4g7Z+QAA82fc6QAA///Y3yD+AADXzCOzFTDa6RrYGf7bCRo3 LIra9homPira3hoQTzXawRnzX/TanhnQcIXadRmogPbaRxl8kU7aFBlMoZLZ3RkZscXZoxjewejZ ZRih0f3X3hgu4LDY4Bgo8fvb5xhu///ZBCtYAADX+C1aFUzXAC8fJZTZQSquL93ZNyqfQCTZKiqM UFnZGip0YILZBypXcKPY8Co1gL3Y1ioQkNHYuSnkoN7YmCm2sOXYdSmEwOXYTylP0N/W5CjK34PX +yjd8LzbDylo///ZPjgcAADYPjmOFXnXUDrcJczWWzwrNXfXtToyQjHXsTojUZrXqzoSYTHXpTn7 cOLXnDnigKTXkznEkHDXhzmkoEPXeTl/sBvXajlXv/TXWDktz8/WCjif3mPXLzjR74LaSjmd///Z jEYoAADYnUcyFbTXvUgmJhjW0kkhNdHV/koDRRLWqUk/UvLWq0kzYgTWrEkkcU7WrkkTgL3Wr0j/ kEXWr0jon+DWr0jOr4jWrUiyvzrWqkiUzvTVdEf/3XbWokhR7njZu0la///Z71ToAADZFVWmFfXY RFZYJnPXaFcSNj7WnFfARZDV/VhIVIfWOFgSYvTWPFgKcebWQlgAgQ3WR1f1kFrWTVfnn8HWU1fY rz7WWVfHvsrWXle0zmPVPFcc3NbWaleK7bXZd1jL///aZWQOAADZoWSVFkLY5WUVJtjYGmWeNrrX WWYiRh/WuWaQVSfWYGbQY+jWZWbMcpjWaGbJgYrWbGbGkKnWcGbBn+nWdWa8r0HWe2a1vqzWgWas zifVb2YT3I7WlGaa7UjZimgN///a7XNxAADaQXPPFpnZm3QpJ0XY5XSMNz/YNHTtRrrXmXVEVdXX LnWCZKbXGHWPc0rXGHWPgh3XGHWPkSLXGHWPoEnXGHWPr4rXGHWPvt/XGHWPzkLWEnT43KTXJXWU 7TnZ+Xcw///bhoL3AADa9YM2FuTaZIN0J7XZxYO5N8nZJ4P+R1vYl4Q+VozYJ4RyZW/X9oSLdBfX 9oSLgsjX9oSLkbDX9oSLoMHX9oSLr+/X9oSLvzTX9oSLzonXBYPx3PXYCISX7W3atYZL///cMZKR AADbuZK5FzbbQJLhKCjauJMOOFbaMJM8R//ZsJNpV0bZRZOQZj7ZAJOrdPbY95Ovg43Y95OvklbY 95OvoU3Y95OvsGXY95Ovv5bY95OvztvYH5MY3VPZEJPB7azbk5WD///c7aIzAADcjaJKF43cK6Jh KJbbvaJ7ON/bS6KXSKLa3qKyV//af6LMZwzaN6LhddfaG6LqhG3aG6LqkxLaG6LqoevaG6LqsOra G6LqwAbaG6LqzzjZYaJd3b/aPqMF7fTcj6TK///durHWAADdcbHgF9zdJrHqKQHc0LH1OWbcdrIB SUHcH7IOWLTb0LIbZ9bbj7IodrXbZ7IxhVzbYbIyk+XbYbIyopzbYbIysX/bYbIywIPbYbIyz6Da zLG33jrbkLJY7kXdqrQU///emcF0AADeZsF0GBjeL8FzKWrd8cFzOefdsMFySdndb8FzWWPdM8F0 aJrdAMF3d4zc2sF7hkXcysF9lM7cysF9o2DcysF9siTcysF9wQzcysF90BLcX8Ee3sLdCMGz7p/e 5MNX///fiNEGAADfadD+GFXfR9D2KcrfINDsOmPe9tDiSmvezdDYWgreptDPaVXeg9DJeFreaNDF hyTeV9DDlb3eVdDDpDfeVdDDstfeVdDDwaLeVdDD0I7eG9CN31nepNEO7wLgO9KN///gh+CHAADg euB6GJTga+BrKiPgWuBaOtPgSOBISvPgNeA2WqfgJOAkagTgFuAWeRzgCuAKh/jgAuAClqHf/9// pR7f/9//s5rf/9//wkTf/9//0RPf/9//3//gZeBl727hr+Gv///iK/CRAADiLvCAGO3iMfBsKqLi NfBVO2riOfA8S6riPfAjW3riQvALavPiSO/0eiXiTu/hiRviVe/Sl9ziW+/JpnDiXO/ItOLiXO/I w3LiXO/I0iviXO/I4QXiSO+z7+PjP/C3///kRP//AADkVv//GVnkav//KyHkgf//PBvkmv//THzk tf//XG/k0P//bAnk6///e1vlBv//im/lHv//mU7lMv//qADlPv//tojlPv//xQTlPv//06rlPv// 4nXlP///8V3k6v+i///riByoAADtyBOZAADwnwAACsvwigAAJtXwbQAAO2jwRwAATifwFwAAYBfv 3wAAcZTvnwAAgsXvVwAAk8LvCAAApJTuswAAtUTuWQAAxdft/AAA1lHtnAAA5rPp5QAA84ns9wAA ///rlyO/AADqiSZ7FenthR3NGkfuLxtIK/nuHRs4PkzuBhsjT9Tt6BsIYPjtxRrqceLtnBrHgqXt bhqak0rtPBpqo9ntBRo2tFTsyRoAxL7sihnI1RjsSBmN5WPouBjF8jTr3xkN///rsC24AADqqi/N FgDpsjGqJpnsVCwnL9PsSSwZQJ7sPCwGUTrsKyvuYbzsFivSci3r/iuxgpLr4iuMku3rwytio0Dr oCs1s4rreysDw8zrUyrO1AfrKCqY5DrnuSmg8QTq7Coo///r2Do+AADq3TvFFiPp7T0tJsno8T6d NsLqnzv/Qv3qmjvwUrnqkjveYpvqijvIcpPqfzuugpjqczuQkqXqZTtvorjqVDtKss3qQjsiwuTq LTr20vvqFzrJ4xHmzTmp79XqBTpv///sDkgqAADrIUlIFlPqPUpUJwnpS0tsNw7oaUxvRpnpVEtP VEfpVEtCY5XpVEsycxrpU0sggsTpUksKkobpUEryolrpTUrXsjvpSUq5wiXpQ0qZ0hbpPUp24gzm GUk17s7pTUo2///sUFbcAADrdVesFo/qoFhzJ1fpu1lHN2vo4VoQRwPoLFq4Vj7okFpUZKTolFpK c8TomFo/gxzonVoxkprooloiojTop1oQsePoq1n9waHor1nn0W3oslnP4ULltFhz7gbo3Fmq///s nmX9AADr1maWFtbrFGcoJ67qP2fGN9XpcGhhR3zovWjoVsXoRWlEZcXoXGkxdIToYWksg5noZmkm kt7oa2kfokfocWkWscroeGkMwWLof2kA0QrohWjz4MDlrWeC7YvovWjp///s9XVeAADsRHXLFxfr lHY2KAzq03arOEbqE3cgR//pZ3eKV1jo5XfcZmTotXf8dTfotXf8hCLotXf8k0PotXf8oonotnf7 sezouHf6wWbou3f30PDovnfz4IrmC3Z17WPo+HgD///tVIThAADsuoUtF1zsH4V6KG3rc4XOOLvq xYYkSIfqJYZ1V/Hpooa5ZwzpVobidenpUYblhLTpUYblk7bpUYblouPpUYblsjDpUYblwZXpUYbl 0QzpUYbl4JLmyoVf7YvpjIcI///tu5RyAADtOJSmF6bss5TaKMzsHZUVOTHrhJVSSRDq85WMWIvq dpXBZ7bqHZXodqDqBZXzhVzqBZXzlDvqBZXzo0vqBZXzsn/qBZXzwc3qBZXz0THqBZXz4Kbnt5Rt 7crqS5Yh///uKKQDAADtu6QkF/XtTKRGKSzszqRsOaTsS6SUSZfrzKS8WSLrWqThaF3rAKUAd1bq 0qUShhjq0KUSlNHq0KUSo8Dq0KUSstbq0KUSwgzq0KUS0Vnq0KUS4LnoxaOa7hLrJaVP///umrOJ AADuRLOcGCrt6rOvKYHtg7PFOhHtF7PcShbsrLPzWbPsSrQLaP7r+LQgeATrv7QwhtPrsrQ0lXjr srQ0pEHrsrQ0szjrsrQ0wlHrsrQ00YTrsrQ04M7p9LLa7mLsGbSF///vE8L8AADu0sMDGFvui8ML KdruO8MTOnft5sMdSo/tkcMnWjvtQsMyaZTs/MM9eKnsxsNGh4TsqsNNli7sqcNNpM/sqcNNs6Hs qcNNwpvsqcNN0bLsqcNN4OLrRcIk7rztKMO3///vj9JTAADvYdJSGIzvL9JQKh7u9dJOOtXut9JN SvzueNJLWrjuPNJLah/uBtJMeUDt2tJOiCbtvNJRltvttNJSpWjttNJStBPttNJSwunttNJS0eLt tNJS4PXsuNFx7x/uUdLd///wD+GHAADv8uF/GL3v0+F2KmPvruFsOyrvhuFhS17vXuFXWyfvN+FN apvvE+FFecfu9eE/iLju3uE8l3bu0uE7pgju0eE6tIvu0eE6wzvu0eE60hHu0eE64QXuS+C774rv k+Hy///wkPCRAADwhPCEGO7wdvB2KqLwZfBlO2/wU/BTS7PwQPBAW4nwL/AvawfwH/Afej3wEfAR iTbwB/AHl/3wAfABppbv/+//tQjv/+//w4/v/+//0kDv/+//4RLv/+//7//w7vDu///yaP//AADy av//GVTybP//KxXybv//PBPycf//THTydP//XGfyd///bALye///e1XygP//imvyhv//mUzyi/// p/7yj///tojykP//xP3ykP//05nykP//4lrykP//8TnyYv/O/////yENAAD//xitAAD//wAABIf/ /wAAJnP//wAAPLP//wAAUJL//wAAY2///wAAdcD//wAAh7r//wAAmXb//wAAqwP//wAAvGv//wAA zbP//wAA3t///wAA7/P//wAA///8/AAA/////yfiAAD//yqvF3v//yIFG5f//x1jLIf//x1SQBr/ /x08Upr//x0hZJb//x0Bdkf//xzch8j//xyzmSX//xyGqmf//xxWu5P//xwjzKr//xvl3bL//xul 7qn//xtl/5H70Bmn/////zG2AAD//zPkF43//zXlKOT//y8KMQn//y77QtP//y7oVEf//y7RZY7/ /y61drr//y6Vh9P//y5wmN3//y5Fqdz//y4YutD//y3oy7r//y2x3Jv//y147XT//y0//kP6xyrh /////z49AAD//z/gF6r//0FpKQj//0MCObD//z+RRZP//z+DVgn//z9xZpv//z9Zdz7//z8/h+v/ /z8hmJ7//z7+qVT//z7Yugv//z6vysL//z6C23j//z5S7C3//z4g/N75wjs9/////0xKAAD//02C F9L//06rKTf//0/mOef//1ERShf//093V83//09pZ7b//09Yd9f//09EiBv//08tmHf//08TqOT/ /072uV3//07Wyd///0602mf//06P6vT//05n+4T45ksQ/////1ssAAD//1wUGAD//1zzKXD//13k Oin//17OSmH//1+ZWjj//171aNr//17qeIP//17diGb//17NmHD//168qJj//16ouNT//16SySH/ /1552Xv//15f6d///15C+kv4SVqJ/////2p/AAD//2sqGCz//2vSKa7//2yKOnL//20/SrL//23i WpD//25eaiH//24weTj//24piMf//24gmIn//24WqHL//24LuHf//23+yJL//23v2L///23f6Pn/ /23N+UD3+2nG/////3oIAAD//3qGGFv//3sDKe///3uNOr3//3wZSwj//3yaWu3//30DaoT//30+ edz//306iSn//304mLP//301qGn//30xuD///30tyC///30n2DP//30g6Ef//30X+Gn4BXjb//// /4mjAAD//4n+GI7//4paKi3//4rAOwj//4spS1z//4uNW0j//4vjauX//4wfekH//4wriXb//4wr mNj//4wrqGr//4wruB7//4wrx+3//4wr19H//4wr58X//4wr98X4Z4fU/////5k0AAD//5l1GMP/ /5m3Kmv//5oAO07//5pNS6r//5qYW57//5rca0D//5sSep///5spicn//5spmP///5spqGr//5sp t/z//5spx6v//5sp13L//5sp50r//5sp9zH5CpbN/////6irAAD//6jXGOv//6kEKp7//6k3O4z/ /6ltS/D//6miW+n//6nVa5D//6oAevP//6ocih3//6ogmSz//6ogqGv//6ogt9X//6ogx2D//6og 1wb//6og5r///6og9oj5xaXg/////7f3AAD//7gTGQL//7gvKsz//7hQO8H//7hzTCn//7iXXCj/ /7i6a9L//7jZezf//7jyimL//7j8mV3//7j8qGv//7j8t6r//7j8xw3//7j81o3//7j85iT//7j8 9c36lrT//////8cNAAD//8ccGRb//8csKu///8c/O+r//8dSTFX//8dnXFf//8d7bAL//8ePe2j/ /8ehipL//8etmYv//8euqGz//8eut3r//8euxrH//8eu1gj//8eu5Xn//8eu9P77fsQe/////9Xj AAD//9XpGSf//9XvKwX//9X1PAT//9X8THP//9YEXHT//9YNbCD//9YWe4T//9Yfiqz//9YnmaL/ /9YqqG3//9Yqt0b//9Yqxk3//9Yq1Xj//9Yq5L///9Yq9Bz8ftM0/////+RxAAD//+RwGTf//+Rt Kxj//+RqPBT//+RnTID//+RlXID//+RjbCn//+Rie4r//+Rjiq7//+RkmZ///+RmqGP//+Rntw// /+RnxeL//+Rn1Nz//+Rm4/b//+Rm8yn9k+I6//////KwAAD///KpGUT///KgKxj///KWPBL///KK THz///J/XHj///J0bBz///Jre3j///Jjipf///JemYH///JbqD7///JattP///JaxW////Ja1Db/ //Ja4yD///Ja8iX+v/Eq////////AAD/////GVD/////Kwj/////PAX/////TGj/////XF3///// a/v/////e0//////imX/////mUf/////p/v/////tob/////xPb/////04f/////4j3/////8RH/ //////8AAGN1cnYAAAAAAAAAAgAA//9jdXJ2AAAAAAAAAAIAAP//Y3VydgAAAAAAAAACAAD//21C QSAAAAAAAwMAAAAAACAAAACYAAAAyAAAAUAAAHR8cGFyYQAAAAAABAAAAAEAAAABAAAAAAAAAAEA AAAAAAAAAAAAAAAAAHBhcmEAAAAAAAQAAAABAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAABwYXJh AAAAAAAEAAAAAQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAATOsP/+BU///zRw//5QyAADmQEA AAg3AAAYrf//ziIAAowxAAAAAAAAAAAAAAAAcGFyYQAAAAAABAAAAABqqwABDhQAAAAAAAzrhQAA AMf///HsAAAAAHBhcmEAAAAAAAQAAAAAaqsAAQ4UAAAAAAAM64UAAADH///x7AAAAABwYXJhAAAA AAAEAAAAAGqrAAEOFAAAAAAADOuFAAAAx///8ewAAAAAERERAAAAAAAAAAAAAAAAAAIAAAAAAAAA AAAAAAAAETAAAAAAIdMAAAAAMncAAAAAQxoAAAAAU70AAAAAZGAAAAAAdQMAAAAAhaYAAAABlkoA AAABpu0AAAABt5AAAAAByBgAAAAB2C4AAAAC56YAAAAC9iMAAAAC//8AAA9yAdoAAA/FD4wAABA2 Hp4AABCzLq4AABEhP04AABF2UDIAABG1YS0AABHhcigAABIBgx0AABIYlAcAABIopOgAABI1tb8A ABI7xnsAABIw1sQAABIR5mwAABHY9R4AABE1//8AAB8nBScAAB9YEbgAAB+mH08AACATLioAACCP PcoAACEMTfUAACF/XoAAACHib0YAACI1gC4AACJ5kSYAACKwoiQAACLbsyAAACL8xAsAACMA1I4A ACLk5HUAACKf83AAACH0//8AAC7dCogAAC7+FRMAAC81IT4AAC+ILxIAAC/xPdAAADBqTS4AADDo XQUAADFkbTwAADHafbsAADJEjmwAADKin0EAADL0sCsAADM5wR0AADNc0cIAADNT4dsAADMT8SEA ADJu/qEAAD6TEOAAAD6qGUQAAD7UJAsAAD8UMOEAAD9qPtYAAD/RTYEAAEBGXLMAAEDCbFAAAEFB fEYAAEG9jIQAAEI0nPsAAEKirZ0AAEMGvmAAAENJzvoAAENZ3yIAAEMr7pUAAEKS/JwAAE5IFzgA AE5bHgwAAE57J4kAAE6uM2AAAE70QJEAAE9LTpkAAE+yXTgAAFAkbEsAAFCee70AAFEci4EAAFGa m4kAAFIWq8sAAFKNvD0AAFLozKUAAFMO3LUAAFLy7DEAAFJq+oUAAF3+HZAAAF4NIzwAAF4nK5QA AF5QNnEAAF6KQt4AAF7UUEcAAF8tXlwAAF+SbPIAAGACe+4AAGB6i0AAAGD2mtwAAGF

lufton commented 1 month ago

@G-Christ, yes it is common for both models and potentially for other models of that series if any exists.

G-Christ commented 1 month ago

@lufton you do have the 6.5 Kw model and every thing is running as it should?Please share details on your set up, this can help identify what is wrong/different on my side:- Batteries ( kind and number and connection) , are you running several batteries in parallel/series- are you using esp8266 or esp32 and which pins/gpios? In my case i tried so far the esp8266 d1mini, and the tx/rx pins gpio1 and gpio3. I have also tried D1 and D2 (gpio5 and gpio4) but no difference- where do you switch connecting TX to RX or you connect RX-RX and TX-TX all the way? I do a switch between inverter and  rs232 as illustrated hereBy the way i guess there is an error in the  esp8266 files as you writeesp32:   board: d1_miniThis gives error and should be changed to:esp8266:   board: d1_miniSo I guess you are using the esp32 and therefor you didn't discover this.So the current error example: “there was a message with length 32, that can’t be parsed” And in the log CRC error:could it be a difference between esp32 and esp8266?Any other things I should look after?Best regards,Ghassan ChristensenDen 3. maj 2024 kl. 07.37 skrev Дубовик Максим @.***>: @G-Christ, yes it is common for both models and potentially for other models of that series if any exists.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

lufton commented 1 month ago

@G-Christ My setup:

So I wasn’t really playing with wiring ESP32 to COM port. But it should be straightforward as I provided RJ45 pinout of COM port. There is 12V, GND, TX and RX. In general you should connect crisscross: RX->TX, TX-RX between units. So RX of max3232 to TX of ESP32 and TX of max3232 to RX of ESP32. Regarding using of ESP8266, I didn’t try that. But it should work with some minor changes.

G-Christ commented 1 month ago

Hello again @lufton,

Now I managed to compile the esp32 version but I still get no data back at all. When i try to change values , It sends the request but times out.

image

Same behavior for esp8266 (d1_mini) and esp32 (wemos_d1_mini32 and esp32dev)

I have check the wiring again ang again and I discovered that I earlier made worng connection on the rs232 port based on male jack while it is a femal jack so I had to mirror it. I think this is correct now, like shown in the pictures here but still no response. Could I have damaged it? The 12V from the inverter is not connected, right?

Is it possible to make a simple hole-through-test just to verifiy connection/wiring is correct and hw is functioning as it should?

Any suggestion what to do?

Best regards, Ghassan

lufton commented 1 month ago

@G-Christ please refer to image in my repo for pinout. It is different from the repo you mention. If you are unsure about pin orientation just check voltage between 3rd/4th (green-white/blue) and 7th/8th brown-white, brown) it should be +12 and GND respectively. In my case it reads around 18V without load. Also don’t forget that you need to supply power to max3232. I think it should be between 3.3 and 5.5 volts do not use voltage from inverter to supply it as is too high.

lufton commented 1 month ago

I take it back, it looks like wiring is the same.

lufton commented 1 month ago

I would suggest buying original DTU, make sure inverter is communicating with DTU and then flash it with custom firmware. As original DTU uses Chinese servers and pretty unreliable. I wasn’t even able to sign up because there was no my country in the list to receive confirmation SMS.

G-Christ commented 1 month ago

I have the exact same wiring as in the picture. And the max 3232 is powered by 3,3 volts from the esp32/esp8266What else can i check?Med venlig hilsenGhassan ChristensenDen 6. maj 2024 kl. 08.42 skrev Дубовик Максим @.***>: I take it back, it looks like wiring is the same.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

lufton commented 1 month ago

Frankly speaking I was in the same situation. Was trying to connect bare max3232 and esp32 with no luck. Until I purchased an original DTU. No idea. Everything looks pretty straightforward. Make sure you connected output RT/TX of max3232 to pins of esp32 that are configured in firmware. Try swapping them.

G-Christ commented 1 month ago

@lufton Still not much progress but I just enabled debugging and like you did at one moment, I can see the state and config requests are sent every 5 sec but no reponse recieved. image

What did you do from there to get the responses?

When using esp32. I tried all combinations of switching RX/Rx but no difference.

For esp8266, I just did some measurements with an oscilloscope it seems like you need to connect RX to RX and TX to TX no switching. and I get many reposnses that cannot be deoceded and only a single one that is displayed in the debug log, but not decoded

image

I remember you answered me once that the esp8266 might need some minor modifications. Right? If so, how can I identify what is needed to be modified? is there a possibility for more logging and see what cannot be decoded?

Hope you have some ideas that can bring me further.

Thanks/Ghassan