helgeerbe / OpenDTU-OnBattery

Software for ESP32 to talk to Hoymiles Inverters and Victrons MPPT battery chargers (Ve.Direct)
GNU General Public License v2.0
298 stars 63 forks source link

IR Reader directly At ESP32(OpenDTUonBattery) SML , Easymeter #498

Closed newt32 closed 11 months ago

newt32 commented 11 months ago

What happened?

I installed OpenDTUonBattery at my ESP32. Connection with inverter HM1500 works fine and Open DTU shows the inverter infos and panel infos. I connected an 4 PIN UART IR reader for mit smart meter (Easymeter Q3AA2054 , it has SML) directly to the OpenDTU (using 3,3V->3,3V , GND->GND, RX->GPIO35 , TX port on ir reader stay unused) I set the powermeter "active" at openDTU an choose SML (Obis 16.7.0) ->now i can see the power of my Powermeter in my OpenDTUStarting-WebPage so the direct connection of IR Reader sems to work I like this direct Connection because no Tasmota(ESP8266) needed, no wlan http(s) json request needed to transfer the power value from the ir-reader to the open DTU

BUT "dynamic power limiter" doesn't work correcty now! ->If i use IR->Tasmota with http(s) json request dynamic power limiter works fine ->but with directly connected IR reader to open dtu und SML choosen for smart meter it doesn't work. it sets the Hoymiles to 1% 9w and never changes again

I don't think my power limiter settings are wrong (?) because with tasmota dynamic limiting works fine but with direct IR by SML it doesnt

So i think there must be a software problem. Open DTU is able to show the right power value of the powermeter on the screen but is it internally working with the right value? setting the hoymiles to 1% 9w seems it's working with a wrong value? Will anybody test it. Will anybodes read the source and perhaps find a mistrake?


same in german: ich habe den 4 poligen UART IR Reader direkt an die Open DTU angeschlossen (3,3v auf 3,3v , GND auf GND, RX auf GPIO35, TX bleibt frei)....feine Sache den Tasmota(esp8266) einzusparen, ein gerät weniger am strom vor allem aber brauch ich die stromzählerwerte nicht mehr per http json request abfragen lassen sondern der stromzähler liefert sie direkt alle 1 oder 2 sekunden per kabel. funktverbindung zum hoymiles recht bei mir offenbar auch aus ->stell ich bei power meter SML (OBIS...) ein kann ich auf der Open DTU Startseite meinen Stromverbrauch laut stromzähler korrekt sehen. Macht also den Eindruck als funktioniert es

ABER: ->dynamic Power limiter funktioniert nicht kofferekt. schalt ich das ein geht der hoymiles auf 1% 9w und verharrt dann da ->schließ ich den stromzähler dagegen an einem tasmota(esp8266) an und übertrage per https json die werte an die Open DTU zeigt er mir in der dtu genauso die spannung an und hier funktioniert dynamic power limiter korrekt

somit würde ich annehmen es liegt nicht an meinen dynamic power limiter settings? er zeigt wie gesagt mit beiden auslesemethoden den wert in der weboberfläche der open dtu korrekt an. es macht den Eindruck als rechnet er im falle der direkten übertragung per SML vielleicht mit einem falschem wert? (also nicht mit dem angezeigtem?) Wär schön wenn jemand sich das ganze im Sourcecode mal anschaut vielleicht ist dort irgendwo ein Fehler.

To Reproduce Bug

ir reader for powermeter directy connected to opendtu(esp32) ->powermeter sml(obis)->shows correct power value BUT dynamic limiter doesnt work correctly (it sets hm1500 inverter to 1% 9w and never changes)

(with tasmota http json dynamic limiter works fine)

Expected Behavior

dynamic limiter doesnt work correctly (it sets hm1500 inverter to 1% 9w and never changes) ->perhaps the limiter works with a wront power value?

Install Method

Pre-Compiled binary from GitHub

What git-hash/version of OpenDTU?

4324ae3

Relevant log/trace output

No response

Anything else?

No response

schlimmchen commented 11 months ago

Please post the verbose logging output of the dynamic power limiter from the (web) console while the problem occurs.

newt32 commented 11 months ago

here the consol messages after i switch dynamic power limiter on. ->it seems inverter is set to the lower limit(1% 9W if lower limit is 10, 3%30w if lower limit is 30, 9% 100W if lower limit is 100w) ->some seconds after this the inverter is "shut down by remote control" (i see thos message in open dtu) an in console "14:26:10.192 > [DPL::commitPowerLimit] Stopping inverter..."

->i guess the DPL Message 'power meter readings are outdated' shows the problem? but whats the reason DPL message is to be found in PowerLimiter.cpp : https://github.com/helgeerbe/OpenDTU-OnBattery/blob/b461aff622355379b6020011fe89afcb9600a884/src/PowerLimiter.cpp#L33C26-L33C26

whats the reason that the inverter switches off? i have no battery in the system yet so the inverter is just sourced by 4 solar panels - with tasmota this dynamic limitig in working (with same dynamic limiter settings) but with directly IR-Reader at open DTU it doesn't work

if i restart the inverter manuelly he is working for a few seconds and then switches of again.

- 14:25:58.936 > TX PowerControl Channel: 75 --> 51 83 30 63 02 80 16 52 68 81 02 00 D0 00 7C 14:26:00.269 > PowerMeterClass: TotalPower: 43.60 14:26:00.552 > RX Period End 14:26:00.619 > All missing 14:26:00.682 > Nothing received, resend whole request 14:26:00.738 > TX PowerControl Channel: 3 --> 51 83 30 63 02 80 16 52 68 81 02 00 D0 00 7C 14:26:02.058 > [ 845.812] DPL: waiting for a start/stop/restart command to complete 14:26:02.596 > RX Period End 14:26:02.650 > All missing 14:26:02.705 > Nothing received, resend whole request 14:26:02.767 > TX PowerControl Channel: 23 --> 51 83 30 63 02 80 16 52 68 81 02 00 D0 00 7C 14:26:04.645 > RX Period End 14:26:04.700 > All missing 14:26:04.764 > Nothing received, resend whole request 14:26:04.917 > TX PowerControl Channel: 40 --> 51 83 30 63 02 80 16 52 68 81 02 00 D0 00 7C 14:26:05.583 > Interrupt received 14:26:05.732 > RX Channel: 61 --> D1 83 30 63 02 83 30 63 02 81 00 00 02 00 44 01 17 | -80 dBm 14:26:06.658 > RX Period End 14:26:06.761 > Success 14:26:06.827 > Fetch inverter: 116183306302 14:26:06.964 > [ 850.425] DPL: power meter readings are outdated 14:26:07.020 > TX RealTimeRunData Channel: 61 --> 15 83 30 63 02 80 16 52 68 80 0B 00 65 2A 88 DE 00 00 00 00 00 00 00 00 F9 F0 F0 14:26:07.283 > RX Period End 14:26:07.340 > All missing 14:26:07.480 > Nothing received, resend whole request 14:26:07.540 > TX RealTimeRunData Channel: 75 --> 15 83 30 63 02 80 16 52 68 80 0B 00 65 2A 88 DE 00 00 00 00 00 00 00 00 F9 F0 F0 14:26:07.848 > RX Period End 14:26:07.911 > All missing 14:26:08.090 > Nothing received, resend whole request 14:26:08.140 > TX RealTimeRunData Channel: 3 --> 15 83 30 63 02 80 16 52 68 80 0B 00 65 2A 88 DE 00 00 00 00 00 00 00 00 F9 F0 F0 14:26:08.404 > RX Period End 14:26:08.472 > All missing 14:26:08.523 > Nothing received, resend whole request 14:26:08.604 > TX RealTimeRunData Channel: 23 --> 15 83 30 63 02 80 16 52 68 80 0B 00 65 2A 88 DE 00 00 00 00 00 00 00 00 F9 F0 F0 14:26:08.967 > RX Period End 14:26:09.029 > All missing 14:26:09.112 > Nothing received, resend whole request 14:26:09.217 > TX RealTimeRunData Channel: 40 --> 15 83 30 63 02 80 16 52 68 80 0B 00 65 2A 88 DE 00 00 00 00 00 00 00 00 F9 F0 F0 14:26:09.280 > Interrupt received 14:26:09.348 > RX Channel: 23 --> 95 83 30 63 02 83 30 63 02 01 00 01 01 5C 00 E6 00 F9 03 1B 03 5B 00 03 A6 A1 93 | -80 dBm 14:26:09.628 > Interrupt received 14:26:09.676 > RX Channel: 3 --> 95 83 30 63 02 83 30 63 02 02 00 03 B1 8B 00 00 00 00 01 46 00 F4 00 F2 03 0A E6 | -80 dBm 14:26:09.735 > Interrupt received 14:26:09.800 > RX Channel: 75 --> 95 83 30 63 02 83 30 63 02 03 03 04 00 03 79 87 00 03 59 02 00 00 00 00 09 4C 71 | -80 dBm 14:26:09.941 > Interrupt received 14:26:09.993 > RX Channel: 75 --> 95 83 30 63 02 83 30 63 02 84 13 88 0B E3 00 DF 00 80 03 E5 01 05 00 01 0E AA 7A | -80 dBm 14:26:10.046 > RX Period End 14:26:10.140 > Success 14:26:10.192 > [DPL::commitPowerLimit] Stopping inverter... 14:26:10.248 > TX PowerControl Channel: 61 --> 51 83 30 63 02 80 16 52 68 81 01 00 20 00 8F 14:26:11.576 > RX Period End 14:26:11.677 > All missing 14:26:11.739 > Nothing received, resend whole request 14:26:11.801 > TX PowerControl Channel: 75 --> 51 83 30 63 02 80 16 52 68 81 01 00 20 00 8F 14:26:11.855 > Interrupt received 14:26:11.984 > RX Channel: 40 --> D1 83 30 63 02 83 30 63 02 81 00 00 01 00 B4 01 E4 | -80 dBm 14:26:13.586 > RX Period End 14:26:13.656 > Success 14:26:13.718 > TX ActivePowerControl Channel: 3 --> 51 83 30 63 02 80 16 52 68 81 0B 00 03 E8 00 00 10 81 DF 14:26:13.825 > Interrupt received 14:26:13.889 > RX Channel: 61 --> D1 83 30 63 02 83 30 63 02 81 00 00 0B 00 14 07 48 | -80 dBm 14:26:14.276 > PowerMeterClass: TotalPower: -49.69 14:26:15.662 > RX Period End 14:26:15.720 > Success 14:26:15.777 > Fetch inverter: 116182805316 14:26:15.875 > Request SystemConfigPara 14:26:15.979 > [DPL::commitPowerLimit] Stopping inverter... 14:26:16.076 > TX RealTimeRunData Channel: 23 --> 15 82 80 53 16 80 16 52 68 80 0B 00 65 2A 88 E7 00 00 00 00 00 00 00 00 A8 CE 33 14:26:16.280 > RX Period End 14:26:16.382 > All missing 14:26:16.486 > Nothing received, resend whole request 14:26:16.589 > TX RealTimeRunData Channel: 40 --> 15 82 80 53 16 80 16 52 68 80 0B 00 65 2A 88 E7 00 00 00 00 00 00 00 00 A8 CE 33 14:26:16.684 > [ 860.432] DPL: power meter readings are outdated 14:26:16.835 > RX Period End 14:26:16.898 > All missing 14:26:16.998 > Nothing received, resend whole request 14:26:17.109 > TX RealTimeRunData Channel: 61 --> 15 82 80 53 16 80 16 52 68 80 0B 00 65 2A 88 E7 00 00 00 00 00 00 00 00 A8 CE 33 14:26:17.405 > RX Period End 14:26:17.470 > All missing 14:26:17.528 > Nothing received, resend whole request 14:26:17.579 > TX RealTimeRunData Channel: 75 --> 15 82 80 53 16 80 16 52 68 80 0B 00 65 2A 88 E7 00 00 00 00 00 00 00 00 A8 CE 33 14:26:17.958 > RX Period End 14:26:18.014 > All missing 14:26:18.066 > Nothing received, resend whole request 14:26:18.230 > TX RealTimeRunData Channel: 3 --> 15 82 80 53 16 80 16 52 68 80 0B 00 65 2A 88 E7 00 00 00 00 00 00 00 00 A8 CE 33 14:26:18.471 > RX Period End 14:26:18.527 > All missing 14:26:18.582 > Nothing received, resend count exeeded 14:26:18.739 > TX AlarmData Channel: 23 --> 15 82 80 53 16 80 16 52 68 80 11 00 65 2A 88 E7 00 00 00 00 00 00 00 00 72 D5 E8 14:26:19.342 > RX Period End 14:26:19.454 > All missing 14:26:19.559 > Nothing received, resend whole request 14:26:19.623 > TX AlarmData Channel: 40 --> 15 82 80 53 16 80 16 52 68 80 11 00 65 2A 88 E7 00 00 00 00 00 00 00 00 72 D5 E8 14:26:19.672 > [ 863.239] DPL: waiting for a power limit command to complete 14:26:20.144 > RX Period End 14:26:20.275 > All missing 14:26:20.377 > Nothing received, resend whole request 14:26:20.480 > TX AlarmData Channel: 61 --> 15 82 80 53 16 80 16 52 68 80 11 00 65 2A 88 E7 00 00 00 00 00 00 00 00 72 D5 E8 14:26:20.964 > RX Period End 14:26:21.032 > All missing 14:26:21.199 > Nothing received, resend whole request 14:26:21.299 > TX AlarmData Channel: 75 --> 15 82 80 53 16 80 16 52 68 80 11 00 65 2A 88 E7 00 00 00 00 00 00 00 00 72 D5 E8 14:26:21.767 > RX Period End 14:26:21.917 > All missing 14:26:21.965 > Nothing received, resend whole request 14:26:22.120 > TX AlarmData Channel: 3 --> 15 82 80 53 16 80 16 52 68 80 11 00 65 2A 88 E7 00 00 00 00 00 00 00 00 72 D5 E8 14:26:22.531 > RX Period End 14:26:22.585 > All missing 14:26:22.732 > Nothing received, resend count exeeded 14:26:22.785 > TX SystemConfigPara Channel: 23 --> 15 82 80 53 16 80 16 52 68 80 05 00 65 2A 88 E7 00 00 00 00 00 00 00 00 66 C1 FC 14:26:22.844 > RX Period End 14:26:22.909 > All missing 14:26:23.041 > Nothing received, resend whole request 14:26:23.141 > TX SystemConfigPara Channel: 40 --> 15 82 80 53 16 80 16 52 68 80 05 00 65 2A 88 E7 00 00 00 00 00 00 00 00 66 C1 FC 14:26:23.247 > RX Period End 14:26:23.314 > All missing 14:26:23.382 > Nothing received, resend whole request 14:26:23.442 > TX SystemConfigPara Channel: 61 --> 15 82 80 53 16 80 16 52 68 80 05 00 65 2A 88 E7 00 00 00 00 00 00 00 00 66 C1 FC 14:26:23.496 > RX Period End 14:26:23.666 > All missing 14:26:23.719 > Nothing received, resend whole request 14:26:23.774 > TX SystemConfigPara Channel: 75 --> 15 82 80 53 16 80 16 52 68 80 05 00 65 2A 88 E7 00 00 00 00 00 00 00 00 66 C1 FC 14:26:23.860 > RX Period End 14:26:23.966 > All missing 14:26:24.020 > Nothing received, resend whole request 14:26:24.074 > TX SystemConfigPara Channel: 3 --> 15 82 80 53 16 80 16 52 68 80 05 00 65 2A 88 E7 00 00 00 00 00 00 00 00 66 C1 FC 14:26:24.170 > RX Period End 14:26:24.219 > All missing 14:26:24.285 > Nothing received, resend count exeeded 14:26:24.342 > TX PowerControl Channel: 23 --> 51 83 30 63 02 80 16 52 68 81 01 00 20 00 8F 14:26:24.393 > Interrupt received 14:26:24.479 > RX Channel: 3 --> D1 83 30 63 02 83 30 63 02 81 00 00 01 00 B4 01 E4 | -80 dBm 14:26:25.899 > RX Period End 14:26:26.008 > Success 14:26:26.060 > TX ActivePowerControl Channel: 40 --> 51 83 30 63 02 80 16 52 68 81 0B 00 03 E8 00 00 10 81 DF 14:26:26.114 > Interrupt received 14:26:26.219 > RX Channel: 3 --> D1 83 30 63 02 83 30 63 02 81 00 00 0B 00 14 07 48 | -80 dBm 14:26:27.959 > RX Period End 14:26:28.017 > Success 14:26:28.071 > Fetch inverter: 116183306302 14:26:28.125 > [ 871.725] DPL: power meter readings are outdated 14:26:28.263 > [DPL::commitPowerLimit] Stopping inverter... 14:26:28.374 > TX RealTimeRunData Channel: 61 --> 15 83 30 63 02 80 16 52 68 80 0B 00 65 2A 88 F3 00 00 00 00 00 00 00 00 A8 31 4D 14:26:28.425 > Interrupt received 14:26:28.607 > RX Channel: 23 --> 95 83 30 63 02 83 30 63 02 01 00 01 01 63 00 01 00 0D 00 03 00 30 00 03 A6 A1 CC | -80 dBm 14:26:28.659 > Interrupt received 14:26:28.712 > RX Channel: 23 --> 95 83 30 63 02 83 30 63 02 02 00 03 B1 8B 00 00 00 00 01 62 00 09 00 01 00 22 E7 | -80 dBm 14:26:28.877 > Interrupt received 14:26:28.931 > RX Channel: 23 --> 95 83 30 63 02 83 30 63 02 03 00 03 00 03 79 87 00 03 59 02 00 00 00 00 09 45 7C | -80 dBm 14:26:29.080 > Interrupt received 14:26:29.183 > RX Channel: 23 --> 95 83 30 63 02 83 30 63 02 84 13 88 00 00 00 DB 00 00 00 00 01 05 00 02 96 66 A7 | -80 dBm 14:26:29.287 > RX Period End 14:26:29.353 > Success 14:26:29.420 > TX AlarmData Channel: 75 --> 15 83 30 63 02 80 16 52 68 80 11 00 65 2A 88 F3 00 00 00 00 00 00 00 00 72 2A 96 14:26:29.474 > [ 872.350] DPL: waiting for a power limit command to complete 14:26:29.530 > Interrupt received 14:26:29.694 > RX Channel: 40 --> 95 83 30 63 02 83 30 63 02 01 00 01 B0 01 00 01 06 1B 06 1B 00 00 00 00 20 7C 79 | -80 dBm 14:26:29.745 > Interrupt received 14:26:29.797 > RX Channel: 40 --> 95 83 30 63 02 83 30 63 02 82 00 02 06 21 00 00 00 00 00 00 DA 14 FC | -80 dBm 14:26:29.864 > PowerMeterClass: TotalPower: 40.57 14:26:29.914 > RX Period End 14:26:30.006 > Success 14:26:30.061 > TX PowerControl Channel: 3 --> 51 83 30 63 02 80 16 52 68 81 01 00 20 00 8F 14:26:31.447 > RX Period End 14:26:31.509 > All missing 14:26:31.570 > Nothing received, resend whole request 14:26:31.633 > TX PowerControl Channel: 23 --> 51 83 30 63 02 80 16 52 68 81 01 00 20 00 8F 14:26:33.490 > RX Period End 14:26:33.539 > All missing 14:26:33.692 > Nothing received, resend whole request 14:26:33.748 > TX PowerControl Channel: 40 --> 51 83 30 63 02 80 16 52 68 81 01 00 20 00 8F 14:26:33.893 > Interrupt received 14:26:33.953 > RX Channel: 75 --> D1 83 30 63 02 83 30 63 02 81 00 00 01 00 B4 01 E4 | -80 dBm 14:26:35.502 > RX Period End 14:26:35.567 > Success 14:26:35.633 > TX ActivePowerControl Channel: 61 --> 51 83 30 63 02 80 16 52 68 81 0B 00 03 E8 00 00 10 81 DF 14:26:37.608 > RX Period End 14:26:37.675 > All missing 14:26:37.801 > Nothing received, resend whole request 14:26:37.851 > TX ActivePowerControl Channel: 75 --> 51 83 30 63 02 80 16 52 68 81 0B 00 03 E8 00 00 10 81 DF 14:26:38.607 > [ 882.356] DPL: waiting for a power limit command to complete 14:26:39.662 > RX Period End 14:26:39.833 > All missing 14:26:39.893 > Nothing received, resend whole request 14:26:39.944 > TX ActivePowerControl Channel: 3 --> 51 83 30 63 02 80 16 52 68 81 0B 00 03 E8 00 00 10 81 DF 14:26:40.041 > Interrupt received 14:26:40.091 > RX Channel: 61 --> D1 83 30 63 02 83 30 63 02 81 00 00 0B 00 14 07 48 | -80 dBm 14:26:41.676 > RX Period End 14:26:41.749 > Success 14:26:41.808 > Fetch inverter: 116182805316 14:26:41.986 > Request SystemConfigPara 14:26:42.093 > [ 885.442] DPL: power meter readings are outdated 14:26:42.394 > TX RealTimeRunData Channel: 23 --> 15 82 80 53 16 80 16 52 68 80 0B 00 65 2A 89 01 00 00 00 00 00 00 00 00 09 7D C6 14:26:42.499 > RX Period End 14:26:42.564 > All missing 14:26:42.619 > Nothing received, resend whole request 14:26:42.678 > TX RealTimeRunData Channel: 40 --> 15 82 80 53 16 80 16 52 68 80 0B 00 65 2A 89 01 00 00 00 00 00 00 00 00 09 7D C6 14:26:42.860 > RX Period End 14:26:42.926 > All missing 14:26:43.001 > Nothing received, resend whole request 14:26:43.057 > TX RealTimeRunData Channel: 61 --> 15 82 80 53 16 80 16 52 68 80 0B 00 65 2A 89 01 00 00 00 00 00 00 00 00 09 7D C6 14:26:43.421 > RX Period End 14:26:43.476 > All missing 14:26:43.629 > Nothing received, resend whole request 14:26:43.703 > TX RealTimeRunData Channel: 75 --> 15 82 80 53 16 80 16 52 68 80 0B 00 65 2A 89 01 00 00 00 00 00 00 00 00 09 7D C6 14:26:43.977 > RX Period End 14:26:44.040 > All missing 14:26:44.092 > Nothing received, resend whole request 14:26:44.168 > TX RealTimeRunData Channel: 3 --> 15 82 80 53 16 80 16 52 68 80 0B 00 65 2A 89 01 00 00 00 00 00 00 00 00 09 7D C6 14:26:44.493 > RX Period End 14:26:44.650 > All missing 14:26:44.749 > Nothing received, resend count exeeded 14:26:44.822 > TX AlarmData Channel: 23 --> 15 82 80 53 16 80 16 52 68 80 11 00 65 2A 89 01 00 00 00 00 00 00 00 00 D3 66 1D 14:26:45.362 > RX Period End 14:26:45.414 > All missing 14:26:45.476 > Nothing received, resend whole request 14:26:45.534 > TX AlarmData Channel: 40 --> 15 82 80 53 16 80 16 52 68 80 11 00 65 2A 89 01 00 00 00 00 00 00 00 00 D3 66 1D 14:26:46.176 > RX Period End 14:26:46.239 > All missing 14:26:46.303 > Nothing received, resend whole request 14:26:46.367 > TX AlarmData Channel: 61 --> 15 82 80 53 16 80 16 52 68 80 11 00 65 2A 89 01 00 00 00 00 00 00 00 00 D3 66 1D 14:26:46.993 > RX Period End 14:26:47.060 > All missing 14:26:47.121 > Nothing received, resend whole request 14:26:47.179 > TX AlarmData Channel: 75 --> 15 82 80 53 16 80 16 52 68 80 11 00 65 2A 89 01 00 00 00 00 00 00 00 00 D3 66 1D 14:26:47.787 > RX Period End 14:26:47.841 > All missing 14:26:47.899 > Nothing received, resend whole request 14:26:47.957 > TX AlarmData Channel: 3 --> 15 82 80 53 16 80 16 52 68 80 11 00 65 2A 89 01 00 00 00 00 00 00 00 00 D3 66 1D 14:26:48.552 > RX Period End 14:26:48.637 > All missing 14:26:48.710 > Nothing received, resend count exeeded 14:26:48.781 > TX SystemConfigPara Channel: 23 --> 15 82 80 53 16 80 16 52 68 80 05 00 65 2A 89 01 00 00 00 00 00 00 00 00 C7 72 09 14:26:48.946 > RX Period End 14:26:48.999 > All missing 14:26:49.158 > Nothing received, resend whole request 14:26:49.228 > TX SystemConfigPara Channel: 40 --> 15 82 80 53 16 80 16 52 68 80 05 00 65 2A 89 01 00 00 00 00 00 00 00 00 C7 72 09 14:26:49.284 > RX Period End 14:26:49.466 > All missing 14:26:49.518 > Nothing received, resend whole request 14:26:49.667 > TX SystemConfigPara Channel: 61 --> 15 82 80 53 16 80 16 52 68 80 05 00 65 2A 89 01 00 00 00 00 00 00 00 00 C7 72 09 14:26:49.718 > RX Period End 14:26:49.870 > All missing 14:26:49.977 > Nothing received, resend whole request 14:26:50.032 > TX SystemConfigPara Channel: 75 --> 15 82 80 53 16 80 16 52 68 80 05 00 65 2A 89 01 00 00 00 00 00 00 00 00 C7 72 09 14:26:50.086 > RX Period End 14:26:50.153 > All missing 14:26:50.207 > Nothing received, resend whole request 14:26:50.273 > TX SystemConfigPara Channel: 3 --> 15 82 80 53 16 80 16 52 68 80 05 00 65 2A 89 01 00 00 00 00 00 00 00 00 C7 72 09 14:26:50.384 > RX Period End 14:26:50.434 > All missing 14:26:50.488 > Nothing received, resend count exeeded 14:26:50.690 > Fetch inverter: 116183306302 14:26:50.798 > TX RealTimeRunData Channel: 23 --> 15 83 30 63 02 80 16 52 68 80 0B 00 65 2A 89 09 00 00 00 00 00 00 00 00 C9 1A FC 14:26:50.854 > RX Period End 14:26:50.909 > All missing 14:26:50.969 > Nothing received, resend whole request 14:26:51.025 > TX RealTimeRunData Channel: 40 --> 15 83 30 63 02 80 16 52 68 80 0B 00 65 2A 89 09 00 00 00 00 00 00 00 00 C9 1A FC 14:26:51.202 > Interrupt received 14:26:51.254 > RX Channel: 3 --> 95 83 30 63 02 83 30 63 02 01 00 01 01 63 00 01 00 11 00 03 00 3D 00 03 A6 A1 DD | -80 dBm 14:26:51.306 > Interrupt received 14:26:51.376 > RX Channel: 75 --> 95 83 30 63 02 83 30 63 02 02 00 03 B1 8B 00 00 00 00 01 62 00 09 00 01 00 21 E4 | -80 dBm 14:26:51.507 > Interrupt received 14:26:51.616 > RX Channel: 61 --> 95 83 30 63 02 83 30 63 02 03 00 03 00 03 79 87 00 03 59 02 00 00 00 00 09 3D 04 | -80 dBm 14:26:51.634 > Interrupt received 14:26:51.713 > RX Channel: 75 --> 95 83 30 63 02 83 30 63 02 84 13 88 00 00 00 DA 00 00 00 00 01 04 00 02 B8 E2 0D | -80 dBm 14:26:51.768 > RX Period End 14:26:51.820 > Success 14:26:51.927 > TX AlarmData Channel: 61 --> 15 83 30 63 02 80 16 52 68 80 11 00 65 2A 89 09 00 00 00 00 00 00 00 00 13 01 27 14:26:52.018 > [ 895.448] DPL: power meter readings are outdated 14:26:52.078 > RX Period End 14:26:52.153 > All missing 14:26:52.214 > Nothing received, resend whole request 14:26:52.276 > TX AlarmData Channel: 75 --> 15 83 30 63 02 80 16 52 68 80 11 00 65 2A 89 09 00 00 00 00 00 00 00 00 13 01 27 14:26:52.437 > Interrupt received 14:26:52.505 > RX Channel: 40 --> 95 83 30 63 02 83 30 63 02 01 00 01 B0 01 00 01 06 1B 06 1B 00 00 00 00 20 7C 79 | -80 dBm 14:26:52.558 > Interrupt received 14:26:52.608 > RX Channel: 40 --> 95 83 30 63 02 83 30 63 02 82 00 02 06 21 00 00 00 00 00 00 DA 14 FC | -80 dBm 14:26:52.742 > RX Period End 14:26:52.794 > Success 14:26:54.868 > Fetch inverter: 116182805316 14:26:54.923 > Request SystemConfigPara 14:26:55.002 > TX RealTimeRunData Channel: 3 --> 15 82 80 53 16 80 16 52 68 80 0B 00 65 2A 89 0E 00 00 00 00 00 00 00 00 F9 3C 78 14:26:55.502 > RX Period End 14:26:55.555 > All missing 14:26:55.610 > Nothing received, resend whole request 14:26:55.673 > TX RealTimeRunData Channel: 23 --> 15 82 80 53 16 80 16 52 68 80 0B 00 65 2A 89 0E 00 00 00 00 00 00 00 00 F9 3C 78 14:26:56.058 > RX Period End 14:26:56.112 > All missing 14:26:56.184 > Nothing received, resend whole request 14:26:56.244 > TX RealTimeRunData Channel: 40 --> 15 82 80 53 16 80 16 52 68 80 0B 00 65 2A 89 0E 00 00 00 00 00 00 00 00 F9 3C 78 14:26:56.606 > RX Period End 14:26:56.666 > All missing 14:26:56.832 > Nothing received, resend whole request 14:26:56.924 > TX RealTimeRunData Channel: 61 --> 15 82 80 53 16 80 16 52 68 80 0B 00 65 2A 89 0E 00 00 00 00 00 00 00 00 F9 3C 78 14:26:57.172 > RX Period End 14:26:57.345 > All missing 14:26:57.395 > Nothing received, resend whole request 14:26:57.449 > TX RealTimeRunData Channel: 75 --> 15 82 80 53 16 80 16 52 68 80 0B 00 65 2A 89 0E 00 00 00 00 00 00 00 00 F9 3C 78 14:26:57.686 > RX Period End 14:26:57.856 > All missing 14:26:57.960 > Nothing received, resend count exeeded 14:26:58.029 > TX AlarmData Channel: 3 --> 15 82 80 53 16 80 16 52 68 80 11 00 65 2A 89 0E 00 00 00 00 00 00 00 00 23 27 A3 14:26:58.551 > RX Period End 14:26:58.680 > All missing 14:26:58.748 > Nothing received, resend whole request 14:26:58.799 > TX AlarmData Channel: 23 --> 15 82 80 53 16 80 16 52 68 80 11 00 65 2A 89 0E 00 00 00 00 00 00 00 00 23 27 A3 14:26:59.357 > RX Period End 14:26:59.494 > All missing 14:26:59.595 > Nothing received, resend whole request 14:26:59.663 > TX AlarmData Channel: 40 --> 15 82 80 53 16 80 16 52 68 80 11 00 65 2A 89 0E 00 00 00 00 00 00 00 00 23 27 A3

schlimmchen commented 11 months ago

[ 850.425] DPL: power meter readings are outdated

It seems the piece of code that reads the power meter using that interface does not set the "last update" timestamp when a new reading was completed. This suspicion is confirmed after reading the source code. The respective variable is never updated if the SML interface is used.

Please test this, I think there is a good chance that it fixes your issue: https://github.com/schlimmchen/OpenDTU-OnBattery/releases/tag/2023.10.16-sml-powermeter-timestamp

It would be nice if you could edit your comment such that the log is inclosed in three backticks ``` before and after. That will format the log as code, improving readability.

newt32 commented 11 months ago

Hi, very big thanks!!! , but: i tried to test your release but i can't get it runnig because in your release the NRF24 settings are off? so the dtu did not communicate with my hm1500 inverter.

settings/device/Nrf24 clk |   | 18 cs |   | 5 en |   | 4 irq |   | 16 miso |   | 19 mosi |   | 23

in your release i have a -1 value at all the six nrf24 settings. it would be nice if you compile it again with the right nrf24 settings und send it to me.

bye stephan ps: do you speak german? (would be easierr my english is a little bit sleepy...) German: Vielen Dank schonmal, dass du dich Sache mit dem SML angenommen hast. Ich habe deine Version probiert aber dort spricht die DTU aktuell leider nicht mit meinem HM1500 Wechselrichter (online ist er). Schau ich unter Hardware Settings ist unter NRF24 überall eine -1 eingetragen (anstelle von clk 18 ; cs 5 ; en 4 ; irq 16 ; miso 19; mosi 23 ). Deine Version spricht also meinen Wechselrichter nicht an, weil die NRF24 einstellungen fehlen?

Wär schön, wenn du die Version nochmal mit den richtigen NRF24 Einstellungen compilierst. mein Programmieren ist schon eine Weile her, so dass ich das complilieren leider nicht hinbekomme.

Vielen Dank, Gruß Stephan

newt32 commented 11 months ago

I uploaded a pinmapping.json by myself to have correct nrf24 settings. With the correct nrf24 settings sml + power limiter function seems to run fine with your release, so Great Work!!! Thanks!

it would be fine if you compile it with these standart(?) settings.


german: ich habe jetzt von Hand eine pin mapping.json datei in meine DTU hochgeladen um die richtigen nrf24 Einstellungen zu haben. Es sieht so aus als funktioniert deine Anpassung bezüglich des SML Auslesens für die Nulleinspeisung! ->Es wäre toll, wenn du diese Anpassung nochmal mit den richtigen (standard?) NRF24 Einstellungen compilierst so, dass sie direkt verwendbar ist (also ohne diesen Umweg der manuellen Einstellungen) ->natürlich wäre es auch hilfreich, wenn diese Änderung generell in die Open DTU On Battery einfließt, eben damit die SML Funktion mit direkter Verkablung dann läuft für den der diesen Weg gehen möchte.

War das jetzt ein allgemeiner "Fehler" den du dort ausgemerzt hast oder hängt es vom konkretrem Stromzählertyp und dessen SML Übermittlung ab ob das Problem was ich hatte auftritt oder nicht?

schlimmchen commented 11 months ago

Schön, dass du es getestet hast und es hinbekommen hast! Danke.

Es wäre toll, wenn du diese Anpassung nochmal mit den richtigen (standard?) NRF24 Einstellungen compilierst

Da muss ich dir eine Absage machen. Ich weiß nicht, was ich dafür bauen muss. Außerdem ist es der ritchtige und gewollte Weg, dass jeder eine pin_mapping.json für sein Gerät erstellen und hochladen muss. Ggf. gibt es für beliebte Boards Beispiele oder vollständige JSON-Dateien, die man nur noch hochladen muss. Dass zuvor Standard-Pins festgelegt waren, ist nach allem was ich verstanden habe aus dem Ruder gelaufen und wird zurückgebaut. Bitte pflege deine pin_mapping.json.

natürlich wäre es auch hilfreich, wenn diese Änderung generell in die Open DTU On Battery einfließt

Ja, natürlich. Das sollte kein exklusiver Fix für dich werden :wink: Aber ich musste das jemanden testen lassen, bevor ich einen pull request erstelle.

War das jetzt ein allgemeiner "Fehler"

Der Fehler tritt immer auf, wenn jemand per SML einen PowerMeter lesen will. MQTT, HTTP+JSON und SDM waren davon nicht betroffen.

newt32 commented 11 months ago

Hallo, alles klar, vielen Dank schonmal - Respekt und vor allem Danke für den ganzen Aufwand.

Etwas überrascht bin ich ja, dass die SML Funktion schon auswählbar war aber diese direkte Verkablung offenbar noch kaum jemand(keiner?) umgsetzt hat (sonst wäre der Fehler sicherlich schon wem aufgefallen, wobei das ja nicht heißt dass jeder ihn hier meldet).

Was das Pin Mapping angeht: Ich wußte natürlich erstmal gar nicht wie ich das verändere. Habs dann mit etwas Suchen gefunden. Das Hochladen der json Datei ist natürlich auch etwas versteckt in der Listbox "Wiederherstellen: Wiederherstellen der Konfigurationsdatei" ->hier wäre unter "Hardware Einstellungen" eine kleiner Infotext hilfreich wie man diese verändern kann und in welchem Menü man die entsprechende .json datei hochladen kann ->unter Konfiguration: Wiederherstellen der Konfigurationsdatei(en) ....(das en fehlt) muss man dann erstmal drauf kommen, dass hier in der Listbox neben "Main konfig" noch ein "Pin Mappig" ausgewählt werden kann. Lieber keine Listbox sondern eine zweite Datei Uploadzeile wäre hier in meinne Augen einfacher zu finden. ->unter Sicherung der Konfigurationsdatei kann ich nur die 'Main konfig' json sichern aber nicht die 'Pin Mapping' json. Klar letzteres kann ich ja von Hand in der DTU gar nicht verändern, sondern nur per Datei Upload. Dennoch wäre es ja sinnvoll, wenn ich von dem Firmware Build welches ich gerade installiert habe auch das Pin Mappig sichern kann um beide .json dateien miteinander vergleichen zu können.


Davon unabhäng zwei kleinere Bugs (oder evtl auch Feature?) : a) Schalte ich die PowerLimiter Funktion ab würde ich - aktuell keine Batterie am laufen - erwarten, dass der Wechserichter wieder in seine "vorherige Einstellung" geht (bei mir wären das 100% also keinerlei Drosslung). Das macht er aber nicht. Ganz offensichtlich regelt er sich runter auf 1% 9w (niedrigstes Limit) und geht dann in den Shutdown ->nun könnte man denken dass er nicht einfach wieder auf 100% geht ist ein Feature, eben für den Fall dass ein Akku dahinterhängt der bei 100% ja mit 100% Wechselrichterleistung leergesaugt wird ->schlauer wärs eigentlich der geht nach abschalten der Limiter funktion in das Limit was vor einschalten des Limiters eingestellt war (in meinem Fall halt 100%). Nun weiß ich nicht ob die DTU bei längerem Betrieb diesen Wert überhaupt irgendwo speichern kann? Zweite Sache die in diesem Zusammenhang auffällt: ->Starte ich den Inverter (nach runterfahren durch ausschalten des powerlimiters) anschließend neu (HM1500) läuft er auch wieder auf 100%. Allerdings zeigt er mir bei aktuelles Limit den letzten Wert nämlich 1% 9W an. Die Anzeige im Statursfeld des Inverters zeigt also dann einen falschen Wert.

b)Nehme ich meinen IR Lesekopf vom Stromzähler (so dass die DTU quasi keine SML Daten mehr bekommt) verharrt der Leistungswert der in der OpenDTU angezeigt wird beim letztgelesenem Wert. ->ich würde erwarten, dass dann 0 angezeigt wird oder als Anzeige "ERROR no SML Data from Powermeter" (ich denke mal bei http json abfrage passiert das gleiche also alter wert angezeigt aber kein error "no http .json data from powermeter") ->der Limiter geht auf 1% 9w und der Inverter dann in den Standby, was vermutlich auch sinnvoll ist(im einen Akku zu schützen oder eben einfach NULLeinzuspeisen). Er scheint also immerhin nicht mit dem alten - in der DTU angezeigten - Wert weiterzurechnen (bei 0 wäre das nicht schlimm. bei 2000w weil grad der herd mit 2200w läuft und der wechselrichter 200 zusteuer schon) also ist der Fehler hier wohl nur im "angezeigtem Wert".

github-actions[bot] commented 5 months ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new discussion or issue for related concerns.