UtilitechAS / amsreader-firmware

ESP8266 and ESP32 compatible firmware to read, interpret and publish data to MQTT from smart electrical meters, both DLMS and DSMR is supported
Other
386 stars 73 forks source link

custom hourly price-points #252

Closed jonaslevring closed 7 months ago

jonaslevring commented 2 years ago

Is your feature request related to a problem? Please describe. I would like to expose the final electricity price for endusers. Final price that is based on various elements like. Baseprice, Distribution cost, PSO fee, Taxes, VAT. Most public endpoints like eg. Nordpool only provice the baseprice, where the additional elements are more local to the specific installation.

Describe the solution you'd like I would like the possibility to poll a endpoint every hour and get the next XX hours of prices seperated into the resolution available by the source. The source would most likely be provided by a webserver or similar with custom integration and pricepoints. So overall a bit more advanced solution to setup. In the proposed format I have made it HH:MM, to be able to support any higher resolution in future.

Describe alternatives you've considered Cant really see many alternatives than educating my family in adding distibutioncost, fees, taxes and finally add VAT :-) i think the actual calculation would be more relevant.

Additional context I have attached an example of how the json format could look like. Example.json.txt

gskjold commented 2 years ago

Thank you for your input. I agree that this would be a nice feature, but it has some challenges. Seeing that this firmware is used throughout Europe, there are many many different compositions of electricity tariffs. For example there are countries that have different tariff during night time, which adds another level of complexity. I am open for input on this matter, preferably from more countries. I assume your are from Denmark?

If we avoid including fixed monthly costs, Something like this might cut it: screenshot

jonaslevring commented 2 years ago

Yes.. from Denmark.. Your proposed solution could be a very good starting point.. I have a few additional inputs:

ArnieO commented 2 years ago

Thank you @jonaslevring for many good ideas. 👍 Such a formula interpreter could be a nice thing to have! Probably better to use letters as identifiers for each parameter; but that is an easy detail compared to coding the formula interpreter...

nvanggaard commented 1 year ago

@gskjold i think your idea using with lines where you can define for different timeslots. I agree that it only solves the problem "per day", so if the price changes during summer/winther time, or weekday / weekends, that isn't solved using this method.

I think it could be solved by using crontab expressions instead of Hour start and Hour End. How ever, that increases the complexity of the user interface

gskjold commented 1 year ago

Thanks for the input. This is something that needs a bit of planning. Unless a reasonable and almost finished implementation is presented, it is unlikely I will get around to this any time soon unfortunately...

svendhoest commented 1 year ago

I would like to add that, in DK the time based tariffs are different for summer and winter.

edit: It get's even worse, they also differentiate on week days and week ends. https://radiuselnet.dk/elnetkunder/tariffer-og-netabonnement/prisaendringer/?_gl=1*3ike7y*_up*MQ..*_ga*MTczMzIxMTIxMy4xNjY0NDYyNDI1*_ga_TRQXB95J5R*MTY2NDQ2MjQyMC4xLjAuMTY2NDQ2MjQyMC4wLjAuMA..

gskjold commented 10 months ago

Its taken a while, but here is my proposed solution, which I believe will work for most cases: Screenshot from 2023-12-25 18-37-22

You can find it via the the "Configure price" link in config: Screenshot from 2023-12-25 14-49-46

If you want to test this, here is a build of v2.3 branch. WARNING, this is a development build, please make sure you are able to re-flash stable firmware via USB if necessary. Also, back up your config before flashing.

esp32.zip esp32c3.zip esp32s2.zip esp32solo.zip esp8266.zip

jonaslevring commented 10 months ago

Looks promising @gskjold

Can you describe how calculation is done? And can the equation be customized?

MrAdam commented 10 months ago

That looks really good @gskjold!

I just installed the firmware and tried setting up the custom pricing matching my provider, and have a few comments.

  1. I'd like to have more than two decimals of precision for the prices, as e.g. the government tariff for me is 0.697. After adding a several tariffs, and taxes, the number can vary quite a bit depending on how careful one does the rounding.
  2. It doesn't seem like the "Future energy prices" on the dashboard reflects the custom price - looks like it shows the price without the configuration
  3. Would it be possible to allow reordering the lines? For example, I add a "tax" configuration at the end, and would like it to always be the last. But as it is now, I would have to delete and readd it, before adding any new configuration lines.
  4. Would it be possible to have configuration line "per month", as some tariffs vary during the year.
gskjold commented 10 months ago

I forgot to say that the value is given in 1/100th of the currency, thats why I kept the two decimal precision.

Good point regarding tariff changing through the year, I will have to think about that one...

MrAdam commented 10 months ago

I forgot to say that the value is given in 1/100th of the currency, thats why I kept the two decimal precision.

Good point regarding tariff changing through the year, I will have to think about that one...

Right, I'll try fixing my numbers then - maybe it should be more clear, or maybe the units should match what is used elsewhere to avoid potential mistakes?

Feel free to write if you have a new version you need tested, I'm more than happy to test it out.

ClausMelander commented 10 months ago

Just tried the esp32s2 firmware 9ff6cf3 and trying to set up more correct prices. The firmware seams stable and functioning as planned :) Just 2 points... Is it possible to subtract from export price? it's not possible to insert negative numbers... Maximum value seams to be 65.53 units, but between 17-20 the fixed add is 98.00 units (Denmark)

gskjold commented 10 months ago

Can you describe how calculation is done? And can the equation be customized?

I have not added support for equations, only additions. I understand that this would add flexibility to the solution, but it would also significantly increase code complexity, and I am just not going there.

maybe it should be more clear, or maybe the units should match what is used elsewhere to avoid potential mistakes?

Fair point, I have changed this to 1/1 currency instead, makes more sense.

Is it possible to subtract from export price?

Can you please explain the use case?

Maximum value seams to be 65.53 units, but between 17-20 the fixed add is 98.00 units (Denmark)

I have changed this to max 99.9999 (DKK, not øre), which should be more than enough.

Attached is a new build, where start and end day/month is possible, as well as changes outlined above. Please note that I have not taken into account existing data, so your price config will get messed up when installing this version, forcing you to setup everything from scratch.

EDIT: Replaced zip files because of code error in first post. New version: d497aa9 esp32.zip esp32c3.zip esp32s2.zip esp32solo.zip esp8266.zip

Screenshot from 2024-01-06 18-58-32

ClausMelander commented 10 months ago

Is it possible to subtract from export price?

Can you please explain the use case? Yes... the company that buys my export uses the below subtractions to the market price: Vindstød (example): Børsens spotpris (*) 125,0000 øre/kWh Energinets indfødningstarif -0,3750 øre/kWh Energinets balancetarif -0,1600 øre/kWh Netselskabets indfødningstarif -5,20 øre/kWh Vindstøds balancetarif -1,0000 øre/kWh Din kWh pris 118,265 øre/kWh So I would like to subtract 6,735 øre/kWh to make the export price correct.

GaupeLnx commented 10 months ago

Got pointed to this thread. when i mentioned the government support that is in Norway and already there for the 3rd year. So as for its temporary, that is just how one looks at it. I predict this will continue for more years to come. I still would like to plea for a possibility to, instead of putting in a multiplier (like for vat), make it possible for a formula. Even if it would require for the user to give the input in code.

haldi4803 commented 9 months ago

Attached is a new build, where start and end day/month is possible, as well as changes outlined above. Please note that I have not taken into account existing data, so your price config will get messed up when installing this version, forcing you to setup everything from scratch.

Uhm... Seeing as this has bootloader.bin boot_app0.bin firmware.bin flash.sh and partitions.bin included. Is the Firmware.bin OTA compatible with v2.2.28 ? Can i just press the "select Firmware file for Upgrade" Button in the web interface and flash this test version?

P.S Here is a bill from Switzerland, CKW. 20240122_134322

ArnieO commented 9 months ago

Is the Firmware.bin OTA compatible with v2.2.28 ?

Yes, that is the one. The others are included by default in case someone needs to flash a "virgin" ESP32.

Can i just press the "select Firmware file for Upgrade" Button in the web interface and flash this test version?

Yes

haldi4803 commented 9 months ago

@ArnieO

Price Config is not Saved. Not sure if i'm doing something wrong or what. Activated Verbose logging, here is the Telnet Log: i click on Configure price, get to the new Homepage. Press the Blue add Button. Name it, press on Save and get thrown back into the default configuration page. Price not saved.

image

``` *** Remote debug - over telnet - for ESP32 - version 3.0.5 * Host name: ams-9686 IP:192.168.1.118 Mac address:D4:F9:8D:6E:86:96 * Free Heap RAM: 118956 * ESP SDK version: 4.4.5.230722 ****************************************************** * Commands: ? or help -> display these help of commands q -> quit (close this connection) m -> display memory available v -> set debug level to verbose d -> set debug level to debug i -> set debug level to info w -> set debug level to warning e -> set debug level to errors s -> set debug silence on/off l -> show debug level t -> show time (millis) profiler: p -> show time between actual and last message (in millis) p min -> show only if time is this minimal P time -> set debug level to profiler c -> show colors filter: filter -> show only debugs with this nofilter -> disable the filter * Please type the command and press enter to execute.(? or h for this help) *** (D) Serving /data.json over http... (V) HDLC frame: (V) 7E A1 CB 2B 21 13 57 E7 E6 E7 00 0F 00 00 00 00 (V) 0C 07 E8 01 16 01 0F 0E 00 FF 80 00 00 02 41 0A (V) 0E 4B 61 6D 73 74 72 75 70 5F 56 30 30 30 31 09 (V) 06 01 01 01 08 00 FF 06 00 01 3D 0F 09 06 01 01 (V) 02 08 00 FF 06 00 00 00 00 09 06 01 01 03 08 00 (V) FF 06 00 00 00 04 09 06 01 01 04 08 00 FF 06 00 (V) 00 E3 47 09 06 01 01 00 00 01 FF 06 02 03 C3 6C (V) 09 06 01 01 01 07 00 FF 06 00 00 01 84 09 06 01 (V) 01 02 07 00 FF 06 00 00 00 00 09 06 01 01 03 07 (V) 00 FF 06 00 00 00 00 09 06 01 01 04 07 00 FF 06 (V) 00 00 01 10 09 06 00 01 01 00 00 FF 09 0C 07 E8 (V) 01 16 01 0F 0E 00 FF 80 00 00 09 06 01 01 20 07 (V) 00 FF 12 00 F0 09 06 01 01 34 07 00 FF 12 00 EF (V) 09 06 01 01 48 07 00 FF 12 00 F0 09 06 01 01 1F (V) 07 00 FF 06 00 00 00 B9 09 06 01 01 33 07 00 FF (V) 06 00 00 00 05 09 06 01 01 47 07 00 FF 06 00 00 (V) 00 18 09 06 01 01 15 07 00 FF 06 00 00 01 77 09 (V) 06 01 01 29 07 00 FF 06 00 00 00 07 09 06 01 01 (V) 3D 07 00 FF 06 00 00 00 06 09 06 01 01 21 07 00 (V) FF 12 00 57 09 06 01 01 35 07 00 FF 12 00 3F 09 (V) 06 01 01 49 07 00 FF 12 00 0B 09 06 01 01 0D 07 (V) 00 FF 12 00 51 09 06 01 01 16 07 00 FF 06 00 00 (V) 00 00 09 06 01 01 2A 07 00 FF 06 00 00 00 00 09 (V) 06 01 01 3E 07 00 FF 06 00 00 00 00 09 06 01 01 (V) 16 08 00 FF 06 00 00 00 00 09 06 01 01 2A 08 00 (V) FF 06 00 00 00 00 09 06 01 01 3E 08 00 FF 06 00 (V) 00 00 00 09 06 01 01 15 08 00 FF 06 00 01 18 E9 (V) 09 06 01 01 29 08 00 FF 06 00 00 0A BC 09 06 01 (V) 01 3D 08 00 FF 06 00 00 19 69 21 0F 7E (V) LLC frame: (V) E6 E7 00 0F 00 00 00 00 0C 07 E8 01 16 01 0F 0E (V) 00 FF 80 00 00 02 41 0A 0E 4B 61 6D 73 74 72 75 (V) 70 5F 56 30 30 30 31 09 06 01 01 01 08 00 FF 06 (V) 00 01 3D 0F 09 06 01 01 02 08 00 FF 06 00 00 00 (V) 00 09 06 01 01 03 08 00 FF 06 00 00 00 04 09 06 (V) 01 01 04 08 00 FF 06 00 00 E3 47 09 06 01 01 00 (V) 00 01 FF 06 02 03 C3 6C 09 06 01 01 01 07 00 FF (V) 06 00 00 01 84 09 06 01 01 02 07 00 FF 06 00 00 (V) 00 00 09 06 01 01 03 07 00 FF 06 00 00 00 00 09 (V) 06 01 01 04 07 00 FF 06 00 00 01 10 09 06 00 01 (V) 01 00 00 FF 09 0C 07 E8 01 16 01 0F 0E 00 FF 80 (V) 00 00 09 06 01 01 20 07 00 FF 12 00 F0 09 06 01 (V) 01 34 07 00 FF 12 00 EF 09 06 01 01 48 07 00 FF (V) 12 00 F0 09 06 01 01 1F 07 00 FF 06 00 00 00 B9 (V) 09 06 01 01 33 07 00 FF 06 00 00 00 05 09 06 01 (V) 01 47 07 00 FF 06 00 00 00 18 09 06 01 01 15 07 (V) 00 FF 06 00 00 01 77 09 06 01 01 29 07 00 FF 06 (V) 00 00 00 07 09 06 01 01 3D 07 00 FF 06 00 00 00 (V) 06 09 06 01 01 21 07 00 FF 12 00 57 09 06 01 01 (V) 35 07 00 FF 12 00 3F 09 06 01 01 49 07 00 FF 12 (V) 00 0B 09 06 01 01 0D 07 00 FF 12 00 51 09 06 01 (V) 01 16 07 00 FF 06 00 00 00 00 09 06 01 01 2A 07 (V) 00 FF 06 00 00 00 00 09 06 01 01 3E 07 00 FF 06 (V) 00 00 00 00 09 06 01 01 16 08 00 FF 06 00 00 00 (V) 00 09 06 01 01 2A 08 00 FF 06 00 00 00 00 09 06 (V) 01 01 3E 08 00 FF 06 00 00 00 00 09 06 01 01 15 (V) 08 00 FF 06 00 01 18 E9 09 06 01 01 29 08 00 FF (V) 06 00 00 0A BC 09 06 01 01 3D 08 00 FF 06 00 00 (V) 19 69 (V) DLMS frame: (V) 0F 00 00 00 00 0C 07 E8 01 16 01 0F 0E 00 FF 80 (V) 00 00 02 41 0A 0E 4B 61 6D 73 74 72 75 70 5F 56 (V) 30 30 30 31 09 06 01 01 01 08 00 FF 06 00 01 3D (V) 0F 09 06 01 01 02 08 00 FF 06 00 00 00 00 09 06 (V) 01 01 03 08 00 FF 06 00 00 00 04 09 06 01 01 04 (V) 08 00 FF 06 00 00 E3 47 09 06 01 01 00 00 01 FF (V) 06 02 03 C3 6C 09 06 01 01 01 07 00 FF 06 00 00 (V) 01 84 09 06 01 01 02 07 00 FF 06 00 00 00 00 09 (V) 06 01 01 03 07 00 FF 06 00 00 00 00 09 06 01 01 (V) 04 07 00 FF 06 00 00 01 10 09 06 00 01 01 00 00 (V) FF 09 0C 07 E8 01 16 01 0F 0E 00 FF 80 00 00 09 (V) 06 01 01 20 07 00 FF 12 00 F0 09 06 01 01 34 07 (V) 00 FF 12 00 EF 09 06 01 01 48 07 00 FF 12 00 F0 (V) 09 06 01 01 1F 07 00 FF 06 00 00 00 B9 09 06 01 (V) 01 33 07 00 FF 06 00 00 00 05 09 06 01 01 47 07 (V) 00 FF 06 00 00 00 18 09 06 01 01 15 07 00 FF 06 (V) 00 00 01 77 09 06 01 01 29 07 00 FF 06 00 00 00 (V) 07 09 06 01 01 3D 07 00 FF 06 00 00 00 06 09 06 (V) 01 01 21 07 00 FF 12 00 57 09 06 01 01 35 07 00 (V) FF 12 00 3F 09 06 01 01 49 07 00 FF 12 00 0B 09 (V) 06 01 01 0D 07 00 FF 12 00 51 09 06 01 01 16 07 (V) 00 FF 06 00 00 00 00 09 06 01 01 2A 07 00 FF 06 (V) 00 00 00 00 09 06 01 01 3E 07 00 FF 06 00 00 00 (V) 00 09 06 01 01 16 08 00 FF 06 00 00 00 00 09 06 (V) 01 01 2A 08 00 FF 06 00 00 00 00 09 06 01 01 3E (V) 08 00 FF 06 00 00 00 00 09 06 01 01 15 08 00 FF (V) 06 00 01 18 E9 09 06 01 01 29 08 00 FF 06 00 00 (V) 0A BC 09 06 01 01 3D 08 00 FF 06 00 00 19 69 (D) Received valid DLMS at 29 (V) Using application data: (V) 02 41 0A 0E 4B 61 6D 73 74 72 75 70 5F 56 30 30 (V) 30 31 09 06 01 01 01 08 00 FF 06 00 01 3D 0F 09 (V) 06 01 01 02 08 00 FF 06 00 00 00 00 09 06 01 01 (V) 03 08 00 FF 06 00 00 00 04 09 06 01 01 04 08 00 (V) FF 06 00 00 E3 47 09 06 01 01 00 00 01 FF 06 02 (V) 03 C3 6C 09 06 01 01 01 07 00 FF 06 00 00 01 84 (V) 09 06 01 01 02 07 00 FF 06 00 00 00 00 09 06 01 (V) 01 03 07 00 FF 06 00 00 00 00 09 06 01 01 04 07 (V) 00 FF 06 00 00 01 10 09 06 00 01 01 00 00 FF 09 (V) 0C 07 E8 01 16 01 0F 0E 00 FF 80 00 00 09 06 01 (V) 01 20 07 00 FF 12 00 F0 09 06 01 01 34 07 00 FF (V) 12 00 EF 09 06 01 01 48 07 00 FF 12 00 F0 09 06 (V) 01 01 1F 07 00 FF 06 00 00 00 B9 09 06 01 01 33 (V) 07 00 FF 06 00 00 00 05 09 06 01 01 47 07 00 FF (V) 06 00 00 00 18 09 06 01 01 15 07 00 FF 06 00 00 (V) 01 77 09 06 01 01 29 07 00 FF 06 00 00 00 07 09 (V) 06 01 01 3D 07 00 FF 06 00 00 00 06 09 06 01 01 (V) 21 07 00 FF 12 00 57 09 06 01 01 35 07 00 FF 12 (V) 00 3F 09 06 01 01 49 07 00 FF 12 00 0B 09 06 01 (V) 01 0D 07 00 FF 12 00 51 09 06 01 01 16 07 00 FF (V) 06 00 00 00 00 09 06 01 01 2A 07 00 FF 06 00 00 (V) 00 00 09 06 01 01 3E 07 00 FF 06 00 00 00 00 09 (V) 06 01 01 16 08 00 FF 06 00 00 00 00 09 06 01 01 (V) 2A 08 00 FF 06 00 00 00 00 09 06 01 01 3E 08 00 (V) FF 06 00 00 00 00 09 06 01 01 15 08 00 FF 06 00 (V) 01 18 E9 09 06 01 01 29 08 00 FF 06 00 00 0A BC (V) 09 06 01 01 3D 08 00 FF 06 00 00 19 69 (V) DLMS (V) (EnergyAccounting) Adding 0.0011 kWh import (V) (EnergyAccounting) calculating threshold, currently at 0 (V) (EnergyAccounting) new threshold 0 (I) Had to reset DNS server (D) Serving /data.json over http... (D) Serving /data.json over http... (D) Serving /configuration.json over http... (V) HDLC frame: (V) 7E A1 CB 2B 21 13 57 E7 E6 E7 00 0F 00 00 00 00 (V) 0C 07 E8 01 16 01 0F 0E 0A FF 80 00 00 02 41 0A (V) 0E 4B 61 6D 73 74 72 75 70 5F 56 30 30 30 31 09 (V) 06 01 01 01 08 00 FF 06 00 01 3D 10 09 06 01 01 (V) 02 08 00 FF 06 00 00 00 00 09 06 01 01 03 08 00 (V) FF 06 00 00 00 04 09 06 01 01 04 08 00 FF 06 00 (V) 00 E3 48 09 06 01 01 00 00 01 FF 06 02 03 C3 6C (V) 09 06 01 01 01 07 00 FF 06 00 00 01 79 09 06 01 (V) 01 02 07 00 FF 06 00 00 00 00 09 06 01 01 03 07 (V) 00 FF 06 00 00 00 00 09 06 01 01 04 07 00 FF 06 (V) 00 00 01 0F 09 06 00 01 01 00 00 FF 09 0C 07 E8 (V) 01 16 01 0F 0E 0A FF 80 00 00 09 06 01 01 20 07 (V) 00 FF 12 00 F0 09 06 01 01 34 07 00 FF 12 00 EF (V) 09 06 01 01 48 07 00 FF 12 00 F0 09 06 01 01 1F (V) 07 00 FF 06 00 00 00 B6 09 06 01 01 33 07 00 FF (V) 06 00 00 00 05 09 06 01 01 47 07 00 FF 06 00 00 (V) 00 18 09 06 01 01 15 07 00 FF 06 00 00 01 6C 09 (V) 06 01 01 29 07 00 FF 06 00 00 00 07 09 06 01 01 (V) 3D 07 00 FF 06 00 00 00 06 09 06 01 01 21 07 00 (V) FF 12 00 56 09 06 01 01 35 07 00 FF 12 00 3E 09 (V) 06 01 01 49 07 00 FF 12 00 0B 09 06 01 01 0D 07 (V) 00 FF 12 00 51 09 06 01 01 16 07 00 FF 06 00 00 (V) 00 00 09 06 01 01 2A 07 00 FF 06 00 00 00 00 09 (V) 06 01 01 3E 07 00 FF 06 00 00 00 00 09 06 01 01 (V) 16 08 00 FF 06 00 00 00 00 09 06 01 01 2A 08 00 (V) FF 06 00 00 00 00 09 06 01 01 3E 08 00 FF 06 00 (V) 00 00 00 09 06 01 01 15 08 00 FF 06 00 01 18 EA (V) 09 06 01 01 29 08 00 FF 06 00 00 0A BC 09 06 01 (V) 01 3D 08 00 FF 06 00 00 19 69 45 2E 7E (V) LLC frame: (V) E6 E7 00 0F 00 00 00 00 0C 07 E8 01 16 01 0F 0E (V) 0A FF 80 00 00 02 41 0A 0E 4B 61 6D 73 74 72 75 (V) 70 5F 56 30 30 30 31 09 06 01 01 01 08 00 FF 06 (V) 00 01 3D 10 09 06 01 01 02 08 00 FF 06 00 00 00 (V) 00 09 06 01 01 03 08 00 FF 06 00 00 00 04 09 06 (V) 01 01 04 08 00 FF 06 00 00 E3 48 09 06 01 01 00 (V) 00 01 FF 06 02 03 C3 6C 09 06 01 01 01 07 00 FF (V) 06 00 00 01 79 09 06 01 01 02 07 00 FF 06 00 00 (V) 00 00 09 06 01 01 03 07 00 FF 06 00 00 00 00 09 (V) 06 01 01 04 07 00 FF 06 00 00 01 0F 09 06 00 01 (V) 01 00 00 FF 09 0C 07 E8 01 16 01 0F 0E 0A FF 80 (V) 00 00 09 06 01 01 20 07 00 FF 12 00 F0 09 06 01 (V) 01 34 07 00 FF 12 00 EF 09 06 01 01 48 07 00 FF (V) 12 00 F0 09 06 01 01 1F 07 00 FF 06 00 00 00 B6 (V) 09 06 01 01 33 07 00 FF 06 00 00 00 05 09 06 01 (V) 01 47 07 00 FF 06 00 00 00 18 09 06 01 01 15 07 (V) 00 FF 06 00 00 01 6C 09 06 01 01 29 07 00 FF 06 (V) 00 00 00 07 09 06 01 01 3D 07 00 FF 06 00 00 00 (V) 06 09 06 01 01 21 07 00 FF 12 00 56 09 06 01 01 (V) 35 07 00 FF 12 00 3E 09 06 01 01 49 07 00 FF 12 (V) 00 0B 09 06 01 01 0D 07 00 FF 12 00 51 09 06 01 (V) 01 16 07 00 FF 06 00 00 00 00 09 06 01 01 2A 07 (V) 00 FF 06 00 00 00 00 09 06 01 01 3E 07 00 FF 06 (V) 00 00 00 00 09 06 01 01 16 08 00 FF 06 00 00 00 (V) 00 09 06 01 01 2A 08 00 FF 06 00 00 00 00 09 06 (V) 01 01 3E 08 00 FF 06 00 00 00 00 09 06 01 01 15 (V) 08 00 FF 06 00 01 18 EA 09 06 01 01 29 08 00 FF (V) 06 00 00 0A BC 09 06 01 01 3D 08 00 FF 06 00 00 (V) 19 69 (V) DLMS frame: (V) 0F 00 00 00 00 0C 07 E8 01 16 01 0F 0E 0A FF 80 (V) 00 00 02 41 0A 0E 4B 61 6D 73 74 72 75 70 5F 56 (V) 30 30 30 31 09 06 01 01 01 08 00 FF 06 00 01 3D (V) 10 09 06 01 01 02 08 00 FF 06 00 00 00 00 09 06 (V) 01 01 03 08 00 FF 06 00 00 00 04 09 06 01 01 04 (V) 08 00 FF 06 00 00 E3 48 09 06 01 01 00 00 01 FF (V) 06 02 03 C3 6C 09 06 01 01 01 07 00 FF 06 00 00 (V) 01 79 09 06 01 01 02 07 00 FF 06 00 00 00 00 09 (V) 06 01 01 03 07 00 FF 06 00 00 00 00 09 06 01 01 (V) 04 07 00 FF 06 00 00 01 0F 09 06 00 01 01 00 00 (V) FF 09 0C 07 E8 01 16 01 0F 0E 0A FF 80 00 00 09 (V) 06 01 01 20 07 00 FF 12 00 F0 09 06 01 01 34 07 (V) 00 FF 12 00 EF 09 06 01 01 48 07 00 FF 12 00 F0 (V) 09 06 01 01 1F 07 00 FF 06 00 00 00 B6 09 06 01 (V) 01 33 07 00 FF 06 00 00 00 05 09 06 01 01 47 07 (V) 00 FF 06 00 00 00 18 09 06 01 01 15 07 00 FF 06 (V) 00 00 01 6C 09 06 01 01 29 07 00 FF 06 00 00 00 (V) 07 09 06 01 01 3D 07 00 FF 06 00 00 00 06 09 06 (V) 01 01 21 07 00 FF 12 00 56 09 06 01 01 35 07 00 (V) FF 12 00 3E 09 06 01 01 49 07 00 FF 12 00 0B 09 (V) 06 01 01 0D 07 00 FF 12 00 51 09 06 01 01 16 07 (V) 00 FF 06 00 00 00 00 09 06 01 01 2A 07 00 FF 06 (V) 00 00 00 00 09 06 01 01 3E 07 00 FF 06 00 00 00 (V) 00 09 06 01 01 16 08 00 FF 06 00 00 00 00 09 06 (V) 01 01 2A 08 00 FF 06 00 00 00 00 09 06 01 01 3E (V) 08 00 FF 06 00 00 00 00 09 06 01 01 15 08 00 FF (V) 06 00 01 18 EA 09 06 01 01 29 08 00 FF 06 00 00 (V) 0A BC 09 06 01 01 3D 08 00 FF 06 00 00 19 69 (D) Received valid DLMS at 29 (V) Using application data: (V) 02 41 0A 0E 4B 61 6D 73 74 72 75 70 5F 56 30 30 (V) 30 31 09 06 01 01 01 08 00 FF 06 00 01 3D 10 09 (V) 06 01 01 02 08 00 FF 06 00 00 00 00 09 06 01 01 (V) 03 08 00 FF 06 00 00 00 04 09 06 01 01 04 08 00 (V) FF 06 00 00 E3 48 09 06 01 01 00 00 01 FF 06 02 (V) 03 C3 6C 09 06 01 01 01 07 00 FF 06 00 00 01 79 (V) 09 06 01 01 02 07 00 FF 06 00 00 00 00 09 06 01 (V) 01 03 07 00 FF 06 00 00 00 00 09 06 01 01 04 07 (V) 00 FF 06 00 00 01 0F 09 06 00 01 01 00 00 FF 09 (V) 0C 07 E8 01 16 01 0F 0E 0A FF 80 00 00 09 06 01 (V) 01 20 07 00 FF 12 00 F0 09 06 01 01 34 07 00 FF (V) 12 00 EF 09 06 01 01 48 07 00 FF 12 00 F0 09 06 (V) 01 01 1F 07 00 FF 06 00 00 00 B6 09 06 01 01 33 (V) 07 00 FF 06 00 00 00 05 09 06 01 01 47 07 00 FF (V) 06 00 00 00 18 09 06 01 01 15 07 00 FF 06 00 00 (V) 01 6C 09 06 01 01 29 07 00 FF 06 00 00 00 07 09 (V) 06 01 01 3D 07 00 FF 06 00 00 00 06 09 06 01 01 (V) 21 07 00 FF 12 00 56 09 06 01 01 35 07 00 FF 12 (V) 00 3E 09 06 01 01 49 07 00 FF 12 00 0B 09 06 01 (V) 01 0D 07 00 FF 12 00 51 09 06 01 01 16 07 00 FF (V) 06 00 00 00 00 09 06 01 01 2A 07 00 FF 06 00 00 (V) 00 00 09 06 01 01 3E 07 00 FF 06 00 00 00 00 09 (V) 06 01 01 16 08 00 FF 06 00 00 00 00 09 06 01 01 (V) 2A 08 00 FF 06 00 00 00 00 09 06 01 01 3E 08 00 (V) FF 06 00 00 00 00 09 06 01 01 15 08 00 FF 06 00 (V) 01 18 EA 09 06 01 01 29 08 00 FF 06 00 00 0A BC (V) 09 06 01 01 3D 08 00 FF 06 00 00 19 69 (V) DLMS (V) (EnergyAccounting) Adding 0.0010 kWh import (V) (EnergyAccounting) calculating threshold, currently at 0 (V) (EnergyAccounting) new threshold 0 (D) Serving /priceconfig.json over http... (D) Serving /data.json over http... (D) Handling save method from http (D) Received price config (W) Price service missing... (I) Saving configuration now... (I) Successfully saved. (D) Serving /configuration.json over http... (D) Serving /data.json over http... (V) HDLC frame: (V) 7E A1 CB 2B 21 13 57 E7 E6 E7 00 0F 00 00 00 00 (V) 0C 07 E8 01 16 01 0F 0E 14 FF 80 00 00 02 41 0A (V) 0E 4B 61 6D 73 74 72 75 70 5F 56 30 30 30 31 09 (V) 06 01 01 01 08 00 FF 06 00 01 3D 12 09 06 01 01 (V) 02 08 00 FF 06 00 00 00 00 09 06 01 01 03 08 00 (V) FF 06 00 00 00 04 09 06 01 01 04 08 00 FF 06 00 (V) 00 E3 49 09 06 01 01 00 00 01 FF 06 02 03 C3 6C (V) 09 06 01 01 01 07 00 FF 06 00 00 01 83 09 06 01 (V) 01 02 07 00 FF 06 00 00 00 00 09 06 01 01 03 07 (V) 00 FF 06 00 00 00 00 09 06 01 01 04 07 00 FF 06 (V) 00 00 01 0F 09 06 00 01 01 00 00 FF 09 0C 07 E8 (V) 01 16 01 0F 0E 14 FF 80 00 00 09 06 01 01 20 07 (V) 00 FF 12 00 F0 09 06 01 01 34 07 00 FF 12 00 EF (V) 09 06 01 01 48 07 00 FF 12 00 F0 09 06 01 01 1F (V) 07 00 FF 06 00 00 00 B7 09 06 01 01 33 07 00 FF (V) 06 00 00 00 07 09 06 01 01 47 07 00 FF 06 00 00 (V) 00 18 09 06 01 01 15 07 00 FF 06 00 00 01 71 09 (V) 06 01 01 29 07 00 FF 06 00 00 00 0C 09 06 01 01 (V) 3D 07 00 FF 06 00 00 00 06 09 06 01 01 21 07 00 (V) FF 12 00 57 09 06 01 01 35 07 00 FF 12 00 51 09 (V) 06 01 01 49 07 00 FF 12 00 0B 09 06 01 01 0D 07 (V) 00 FF 12 00 51 09 06 01 01 16 07 00 FF 06 00 00 (V) 00 00 09 06 01 01 2A 07 00 FF 06 00 00 00 00 09 (V) 06 01 01 3E 07 00 FF 06 00 00 00 00 09 06 01 01 (V) 16 08 00 FF 06 00 00 00 00 09 06 01 01 2A 08 00 (V) FF 06 00 00 00 00 09 06 01 01 3E 08 00 FF 06 00 (V) 00 00 00 09 06 01 01 15 08 00 FF 06 00 01 18 EB (V) 09 06 01 01 29 08 00 FF 06 00 00 0A BD 09 06 01 (V) 01 3D 08 00 FF 06 00 00 19 69 B4 94 7E (V) LLC frame: (V) E6 E7 00 0F 00 00 00 00 0C 07 E8 01 16 01 0F 0E (V) 14 FF 80 00 00 02 41 0A 0E 4B 61 6D 73 74 72 75 (V) 70 5F 56 30 30 30 31 09 06 01 01 01 08 00 FF 06 (V) 00 01 3D 12 09 06 01 01 02 08 00 FF 06 00 00 00 (V) 00 09 06 01 01 03 08 00 FF 06 00 00 00 04 09 06 (V) 01 01 04 08 00 FF 06 00 00 E3 49 09 06 01 01 00 (V) 00 01 FF 06 02 03 C3 6C 09 06 01 01 01 07 00 FF (V) 06 00 00 01 83 09 06 01 01 02 07 00 FF 06 00 00 (V) 00 00 09 06 01 01 03 07 00 FF 06 00 00 00 00 09 (V) 06 01 01 04 07 00 FF 06 00 00 01 0F 09 06 00 01 (V) 01 00 00 FF 09 0C 07 E8 01 16 01 0F 0E 14 FF 80 (V) 00 00 09 06 01 01 20 07 00 FF 12 00 F0 09 06 01 (V) 01 34 07 00 FF 12 00 EF 09 06 01 01 48 07 00 FF (V) 12 00 F0 09 06 01 01 1F 07 00 FF 06 00 00 00 B7 (V) 09 06 01 01 33 07 00 FF 06 00 00 00 07 09 06 01 (V) 01 47 07 00 FF 06 00 00 00 18 09 06 01 01 15 07 (V) 00 FF 06 00 00 01 71 09 06 01 01 29 07 00 FF 06 (V) 00 00 00 0C 09 06 01 01 3D 07 00 FF 06 00 00 00 (V) 06 09 06 01 01 21 07 00 FF 12 00 57 09 06 01 01 (V) 35 07 00 FF 12 00 51 09 06 01 01 49 07 00 FF 12 (V) 00 0B 09 06 01 01 0D 07 00 FF 12 00 51 09 06 01 (V) 01 16 07 00 FF 06 00 00 00 00 09 06 01 01 2A 07 (V) 00 FF 06 00 00 00 00 09 06 01 01 3E 07 00 FF 06 (V) 00 00 00 00 09 06 01 01 16 08 00 FF 06 00 00 00 (V) 00 09 06 01 01 2A 08 00 FF 06 00 00 00 00 09 06 (V) 01 01 3E 08 00 FF 06 00 00 00 00 09 06 01 01 15 (V) 08 00 FF 06 00 01 18 EB 09 06 01 01 29 08 00 FF (V) 06 00 00 0A BD 09 06 01 01 3D 08 00 FF 06 00 00 (V) 19 69 (V) DLMS frame: (V) 0F 00 00 00 00 0C 07 E8 01 16 01 0F 0E 14 FF 80 (V) 00 00 02 41 0A 0E 4B 61 6D 73 74 72 75 70 5F 56 (V) 30 30 30 31 09 06 01 01 01 08 00 FF 06 00 01 3D (V) 12 09 06 01 01 02 08 00 FF 06 00 00 00 00 09 06 (V) 01 01 03 08 00 FF 06 00 00 00 04 09 06 01 01 04 (V) 08 00 FF 06 00 00 E3 49 09 06 01 01 00 00 01 FF (V) 06 02 03 C3 6C 09 06 01 01 01 07 00 FF 06 00 00 (V) 01 83 09 06 01 01 02 07 00 FF 06 00 00 00 00 09 (V) 06 01 01 03 07 00 FF 06 00 00 00 00 09 06 01 01 (V) 04 07 00 FF 06 00 00 01 0F 09 06 00 01 01 00 00 (V) FF 09 0C 07 E8 01 16 01 0F 0E 14 FF 80 00 00 09 (V) 06 01 01 20 07 00 FF 12 00 F0 09 06 01 01 34 07 (V) 00 FF 12 00 EF 09 06 01 01 48 07 00 FF 12 00 F0 (V) 09 06 01 01 1F 07 00 FF 06 00 00 00 B7 09 06 01 (V) 01 33 07 00 FF 06 00 00 00 07 09 06 01 01 47 07 (V) 00 FF 06 00 00 00 18 09 06 01 01 15 07 00 FF 06 (V) 00 00 01 71 09 06 01 01 29 07 00 FF 06 00 00 00 (V) 0C 09 06 01 01 3D 07 00 FF 06 00 00 00 06 09 06 (V) 01 01 21 07 00 FF 12 00 57 09 06 01 01 35 07 00 (V) FF 12 00 51 09 06 01 01 49 07 00 FF 12 00 0B 09 (V) 06 01 01 0D 07 00 FF 12 00 51 09 06 01 01 16 07 (V) 00 FF 06 00 00 00 00 09 06 01 01 2A 07 00 FF 06 (V) 00 00 00 00 09 06 01 01 3E 07 00 FF 06 00 00 00 (V) 00 09 06 01 01 16 08 00 FF 06 00 00 00 00 09 06 (V) 01 01 2A 08 00 FF 06 00 00 00 00 09 06 01 01 3E (V) 08 00 FF 06 00 00 00 00 09 06 01 01 15 08 00 FF (V) 06 00 01 18 EB 09 06 01 01 29 08 00 FF 06 00 00 (V) 0A BD 09 06 01 01 3D 08 00 FF 06 00 00 19 69 (D) Received valid DLMS at 29 (V) Using application data: (V) 02 41 0A 0E 4B 61 6D 73 74 72 75 70 5F 56 30 30 (V) 30 31 09 06 01 01 01 08 00 FF 06 00 01 3D 12 09 (V) 06 01 01 02 08 00 FF 06 00 00 00 00 09 06 01 01 (V) 03 08 00 FF 06 00 00 00 04 09 06 01 01 04 08 00 (V) FF 06 00 00 E3 49 09 06 01 01 00 00 01 FF 06 02 (V) 03 C3 6C 09 06 01 01 01 07 00 FF 06 00 00 01 83 (V) 09 06 01 01 02 07 00 FF 06 00 00 00 00 09 06 01 (V) 01 03 07 00 FF 06 00 00 00 00 09 06 01 01 04 07 (V) 00 FF 06 00 00 01 0F 09 06 00 01 01 00 00 FF 09 (V) 0C 07 E8 01 16 01 0F 0E 14 FF 80 00 00 09 06 01 (V) 01 20 07 00 FF 12 00 F0 09 06 01 01 34 07 00 FF (V) 12 00 EF 09 06 01 01 48 07 00 FF 12 00 F0 09 06 (V) 01 01 1F 07 00 FF 06 00 00 00 B7 09 06 01 01 33 (V) 07 00 FF 06 00 00 00 07 09 06 01 01 47 07 00 FF (V) 06 00 00 00 18 09 06 01 01 15 07 00 FF 06 00 00 (V) 01 71 09 06 01 01 29 07 00 FF 06 00 00 00 0C 09 (V) 06 01 01 3D 07 00 FF 06 00 00 00 06 09 06 01 01 (V) 21 07 00 FF 12 00 57 09 06 01 01 35 07 00 FF 12 (V) 00 51 09 06 01 01 49 07 00 FF 12 00 0B 09 06 01 (V) 01 0D 07 00 FF 12 00 51 09 06 01 01 16 07 00 FF (V) 06 00 00 00 00 09 06 01 01 2A 07 00 FF 06 00 00 (V) 00 00 09 06 01 01 3E 07 00 FF 06 00 00 00 00 09 (V) 06 01 01 16 08 00 FF 06 00 00 00 00 09 06 01 01 (V) 2A 08 00 FF 06 00 00 00 00 09 06 01 01 3E 08 00 (V) FF 06 00 00 00 00 09 06 01 01 15 08 00 FF 06 00 (V) 01 18 EB 09 06 01 01 29 08 00 FF 06 00 00 0A BD (V) 09 06 01 01 3D 08 00 FF 06 00 00 19 69 (V) DLMS (V) (EnergyAccounting) Adding 0.0011 kWh import (V) (EnergyAccounting) calculating threshold, currently at 0 (V) (EnergyAccounting) new threshold 0 (D) Serving /priceconfig.json over http... (D) Serving /data.json over http... (D) Serving /data.json over http... (V) HDLC frame: (V) 7E A1 CB 2B 21 13 57 E7 E6 E7 00 0F 00 00 00 00 (V) 0C 07 E8 01 16 01 0F 0E 1E FF 80 00 00 02 41 0A (V) 0E 4B 61 6D 73 74 72 75 70 5F 56 30 30 30 31 09 (V) 06 01 01 01 08 00 FF 06 00 01 3D 13 09 06 01 01 (V) 02 08 00 FF 06 00 00 00 00 09 06 01 01 03 08 00 (V) FF 06 00 00 00 04 09 06 01 01 04 08 00 FF 06 00 (V) 00 E3 4A 09 06 01 01 00 00 01 FF 06 02 03 C3 6C (V) 09 06 01 01 01 07 00 FF 06 00 00 01 77 09 06 01 (V) 01 02 07 00 FF 06 00 00 00 00 09 06 01 01 03 07 (V) 00 FF 06 00 00 00 00 09 06 01 01 04 07 00 FF 06 (V) 00 00 01 0F 09 06 00 01 01 00 00 FF 09 0C 07 E8 (V) 01 16 01 0F 0E 1E FF 80 00 00 09 06 01 01 20 07 (V) 00 FF 12 00 EF 09 06 01 01 34 07 00 FF 12 00 EF (V) 09 06 01 01 48 07 00 FF 12 00 F0 09 06 01 01 1F (V) 07 00 FF 06 00 00 00 B3 09 06 01 01 33 07 00 FF (V) 06 00 00 00 06 09 06 01 01 47 07 00 FF 06 00 00 (V) 00 18 09 06 01 01 15 07 00 FF 06 00 00 01 66 09 (V) 06 01 01 29 07 00 FF 06 00 00 00 0B 09 06 01 01 (V) 3D 07 00 FF 06 00 00 00 06 09 06 01 01 21 07 00 (V) FF 12 00 56 09 06 01 01 35 07 00 FF 12 00 4E 09 (V) 06 01 01 49 07 00 FF 12 00 0B 09 06 01 01 0D 07 (V) 00 FF 12 00 51 09 06 01 01 16 07 00 FF 06 00 00 (V) 00 00 09 06 01 01 2A 07 00 FF 06 00 00 00 00 09 (V) 06 01 01 3E 07 00 FF 06 00 00 00 00 09 06 01 01 (V) 16 08 00 FF 06 00 00 00 00 09 06 01 01 2A 08 00 (V) FF 06 00 00 00 00 09 06 01 01 3E 08 00 FF 06 00 (V) 00 00 00 09 06 01 01 15 08 00 FF 06 00 01 18 EC (V) 09 06 01 01 29 08 00 FF 06 00 00 0A BD 09 06 01 (V) 01 3D 08 00 FF 06 00 00 19 69 42 B4 7E (V) LLC frame: (V) E6 E7 00 0F 00 00 00 00 0C 07 E8 01 16 01 0F 0E (V) 1E FF 80 00 00 02 41 0A 0E 4B 61 6D 73 74 72 75 (V) 70 5F 56 30 30 30 31 09 06 01 01 01 08 00 FF 06 (V) 00 01 3D 13 09 06 01 01 02 08 00 FF 06 00 00 00 (V) 00 09 06 01 01 03 08 00 FF 06 00 00 00 04 09 06 (V) 01 01 04 08 00 FF 06 00 00 E3 4A 09 06 01 01 00 (V) 00 01 FF 06 02 03 C3 6C 09 06 01 01 01 07 00 FF (V) 06 00 00 01 77 09 06 01 01 02 07 00 FF 06 00 00 (V) 00 00 09 06 01 01 03 07 00 FF 06 00 00 00 00 09 (V) 06 01 01 04 07 00 FF 06 00 00 01 0F 09 06 00 01 (V) 01 00 00 FF 09 0C 07 E8 01 16 01 0F 0E 1E FF 80 (V) 00 00 09 06 01 01 20 07 00 FF 12 00 EF 09 06 01 (V) 01 34 07 00 FF 12 00 EF 09 06 01 01 48 07 00 FF (V) 12 00 F0 09 06 01 01 1F 07 00 FF 06 00 00 00 B3 (V) 09 06 01 01 33 07 00 FF 06 00 00 00 06 09 06 01 (V) 01 47 07 00 FF 06 00 00 00 18 09 06 01 01 15 07 (V) 00 FF 06 00 00 01 66 09 06 01 01 29 07 00 FF 06 (V) 00 00 00 0B 09 06 01 01 3D 07 00 FF 06 00 00 00 (V) 06 09 06 01 01 21 07 00 FF 12 00 56 09 06 01 01 (V) 35 07 00 FF 12 00 4E 09 06 01 01 49 07 00 FF 12 (V) 00 0B 09 06 01 01 0D 07 00 FF 12 00 51 09 06 01 (V) 01 16 07 00 FF 06 00 00 00 00 09 06 01 01 2A 07 (V) 00 FF 06 00 00 00 00 09 06 01 01 3E 07 00 FF 06 (V) 00 00 00 00 09 06 01 01 16 08 00 FF 06 00 00 00 (V) 00 09 06 01 01 2A 08 00 FF 06 00 00 00 00 09 06 (V) 01 01 3E 08 00 FF 06 00 00 00 00 09 06 01 01 15 (V) 08 00 FF 06 00 01 18 EC 09 06 01 01 29 08 00 FF (V) 06 00 00 0A BD 09 06 01 01 3D 08 00 FF 06 00 00 (V) 19 69 (V) DLMS frame: (V) 0F 00 00 00 00 0C 07 E8 01 16 01 0F 0E 1E FF 80 (V) 00 00 02 41 0A 0E 4B 61 6D 73 74 72 75 70 5F 56 (V) 30 30 30 31 09 06 01 01 01 08 00 FF 06 00 01 3D (V) 13 09 06 01 01 02 08 00 FF 06 00 00 00 00 09 06 (V) 01 01 03 08 00 FF 06 00 00 00 04 09 06 01 01 04 (V) 08 00 FF 06 00 00 E3 4A 09 06 01 01 00 00 01 FF (V) 06 02 03 C3 6C 09 06 01 01 01 07 00 FF 06 00 00 (V) 01 77 09 06 01 01 02 07 00 FF 06 00 00 00 00 09 (V) 06 01 01 03 07 00 FF 06 00 00 00 00 09 06 01 01 (V) 04 07 00 FF 06 00 00 01 0F 09 06 00 01 01 00 00 (V) FF 09 0C 07 E8 01 16 01 0F 0E 1E FF 80 00 00 09 (V) 06 01 01 20 07 00 FF 12 00 EF 09 06 01 01 34 07 (V) 00 FF 12 00 EF 09 06 01 01 48 07 00 FF 12 00 F0 (V) 09 06 01 01 1F 07 00 FF 06 00 00 00 B3 09 06 01 (V) 01 33 07 00 FF 06 00 00 00 06 09 06 01 01 47 07 (V) 00 FF 06 00 00 00 18 09 06 01 01 15 07 00 FF 06 (V) 00 00 01 66 09 06 01 01 29 07 00 FF 06 00 00 00 (V) 0B 09 06 01 01 3D 07 00 FF 06 00 00 00 06 09 06 (V) 01 01 21 07 00 FF 12 00 56 09 06 01 01 35 07 00 (V) FF 12 00 4E 09 06 01 01 49 07 00 FF 12 00 0B 09 (V) 06 01 01 0D 07 00 FF 12 00 51 09 06 01 01 16 07 (V) 00 FF 06 00 00 00 00 09 06 01 01 2A 07 00 FF 06 (V) 00 00 00 00 09 06 01 01 3E 07 00 FF 06 00 00 00 (V) 00 09 06 01 01 16 08 00 FF 06 00 00 00 00 09 06 (V) 01 01 2A 08 00 FF 06 00 00 00 00 09 06 01 01 3E (V) 08 00 FF 06 00 00 00 00 09 06 01 01 15 08 00 FF (V) 06 00 01 18 EC 09 06 01 01 29 08 00 FF 06 00 00 (V) 0A BD 09 06 01 01 3D 08 00 FF 06 00 00 19 69 (D) Received valid DLMS at 29 (V) Using application data: (V) 02 41 0A 0E 4B 61 6D 73 74 72 75 70 5F 56 30 30 (V) 30 31 09 06 01 01 01 08 00 FF 06 00 01 3D 13 09 (V) 06 01 01 02 08 00 FF 06 00 00 00 00 09 06 01 01 (V) 03 08 00 FF 06 00 00 00 04 09 06 01 01 04 08 00 (V) FF 06 00 00 E3 4A 09 06 01 01 00 00 01 FF 06 02 (V) 03 C3 6C 09 06 01 01 01 07 00 FF 06 00 00 01 77 (V) 09 06 01 01 02 07 00 FF 06 00 00 00 00 09 06 01 (V) 01 03 07 00 FF 06 00 00 00 00 09 06 01 01 04 07 (V) 00 FF 06 00 00 01 0F 09 06 00 01 01 00 00 FF 09 (V) 0C 07 E8 01 16 01 0F 0E 1E FF 80 00 00 09 06 01 (V) 01 20 07 00 FF 12 00 EF 09 06 01 01 34 07 00 FF (V) 12 00 EF 09 06 01 01 48 07 00 FF 12 00 F0 09 06 (V) 01 01 1F 07 00 FF 06 00 00 00 B3 09 06 01 01 33 (V) 07 00 FF 06 00 00 00 06 09 06 01 01 47 07 00 FF (V) 06 00 00 00 18 09 06 01 01 15 07 00 FF 06 00 00 (V) 01 66 09 06 01 01 29 07 00 FF 06 00 00 00 0B 09 (V) 06 01 01 3D 07 00 FF 06 00 00 00 06 09 06 01 01 (V) 21 07 00 FF 12 00 56 09 06 01 01 35 07 00 FF 12 (V) 00 4E 09 06 01 01 49 07 00 FF 12 00 0B 09 06 01 (V) 01 0D 07 00 FF 12 00 51 09 06 01 01 16 07 00 FF (V) 06 00 00 00 00 09 06 01 01 2A 07 00 FF 06 00 00 (V) 00 00 09 06 01 01 3E 07 00 FF 06 00 00 00 00 09 (V) 06 01 01 16 08 00 FF 06 00 00 00 00 09 06 01 01 (V) 2A 08 00 FF 06 00 00 00 00 09 06 01 01 3E 08 00 (V) FF 06 00 00 00 00 09 06 01 01 15 08 00 FF 06 00 (V) 01 18 EC 09 06 01 01 29 08 00 FF 06 00 00 0A BD (V) 09 06 01 01 3D 08 00 FF 06 00 00 19 69 (V) DLMS (V) (EnergyAccounting) Adding 0.0010 kWh import (V) (EnergyAccounting) calculating threshold, currently at 0 (V) (EnergyAccounting) new threshold 0 ```
ArnieO commented 9 months ago

Price Config is not Saved.

OK, this is a test version - there might be a bug. @gskjold , can you look into this?

@haldi4803 : All frames in that debug log are valid,

gskjold commented 9 months ago

I am unable to reproduce problem with prices not being saved. @haldi4803 please provide what data you enter into the fields before saving.

New firmware, subtraction now available: Screenshot from 2024-01-25 12-32-35

esp32solo.zip esp32.zip esp8266.zip esp32c3.zip esp32s2.zip

ClausMelander commented 9 months ago

I am unable to reproduce problem with prices not being saved. @haldi4803 please provide what data you enter into the fields before saving.

New firmware, subtraction now available: Screenshot from 2024-01-25 12-32-35

esp32solo.zip esp32.zip esp8266.zip esp32c3.zip esp32s2.zip

Trying the new firmware cfa4502 (esp32s2) on top of 9ff6cf3 and get the following issues:

  1. Price-config page stock on Loading
  2. Month display on start page says "28. Undefined 17:03"
  3. bottom of Amp and Phase displays a lot of overlying text image
ClausMelander commented 9 months ago

I am unable to reproduce problem with prices not being saved. @haldi4803 please provide what data you enter into the fields before saving. New firmware, subtraction now available: Screenshot from 2024-01-25 12-32-35 esp32solo.zip esp32.zip esp8266.zip esp32c3.zip esp32s2.zip

Trying the new firmware cfa4502 (esp32s2) on top of 9ff6cf3 and get the following issues:

  1. Price-config page stock on Loading
  2. Month display on start page says "28. Undefined 17:03"
  3. bottom of Amp and Phase displays a lot of overlying text image

Ok... unit was "reset" when reverting to firmware 2.2.28 (because of the issues) so having to setup AP again. After this I updated with old config backup and everything was back to "normal" Then trying again the new cfa4502 (esp32s2) and now it looks much better :) Still a few issues though:

  1. bottom of Amp and Phase still displays a lot of overlying text.
  2. export price are not shown on export meter (only import price on import meter).
  3. I had also the issue with prices not saved, but it's only the first time for some reason, thereafter it's saved :)
  4. After each setup save, it's like the unit reloads the home page 2 times... minor bug though.
  5. Not really a bug I think, but had to figure out a new value for Meter Buffer size (512kB) as the 128kB didn't work.
  6. Could use one more digit on the export price calculation 0,00375 but 0,0038 is so close I almost forgot to mention ;)

image image

Anyway, great work with the calculations! Now the Import price is exactly following the price shown in the power company app :) Not sure about the export price yet, but the price settings page looks good :)

haldi4803 commented 9 months ago

i guess switching from d497aa9 to cfa4502 does cause some issues. because i'm stuck at a "loading" window in the configuration. So Factory Reset and Restoring Data helps.

But still it wont save Prices.

Here is a quick video. https://github.com/UtilitechAS/amsreader-firmware/assets/17104473/0a69e0e5-0c6b-4f3c-8b8c-bf592b4bdbeb

P.S Months are undefined?

ArnieO commented 9 months ago

Thank you for feedback! Apparently there are several unsolved issues in this test version, it will surely be fixed when @gskjold finds time to work on it.

gskjold commented 8 months ago

I found the problem, fixed it in this version: esp32s2.zip esp8266.zip esp32solo.zip esp32c3.zip esp32.zip

haldi4803 commented 8 months ago

I can confirm adding Prices works.

haldi4803 commented 8 months ago

Price is Calucalted ON Usage and not retrospectively? image

Or what is that graph supposed to Display? Price (HF/100) How much you pay /get per kWh in this certain Hour if you have Solar on the roof?

image P.S top right, 15. Undefined 20:34 ^^ still same issues with the months right?

haldi4803 commented 8 months ago

oh btw @gskjold your Power Values are okay? Because if you take a look at my Screenshot you can see the 1.3kW Actual usage (that's correct). If that goes on for 1hour that would be 1.3kW used right? But in the 24h graph there is a 9.3kW (that seems to be wrong). Multipliers are not activated in settings (contrary to screenshot)... so that should be default? image

If you check the 31 days graph you can see that this issue has persisted since 22 january when i first flashed the Test Build.

image

these are the official values from my provider. image

seems like it's off by factor 10. Should i simply change settings to 0.1? or is there some mistake?

gskjold commented 8 months ago

You most likely need multiplier on kwh set to 0.1 (not uncommon on Kamstrup)

Price graph shows price you pay per imported kwh in the upcoming hours.

Regarding undefined month, go to config and choose a language. Device then needs internet access to download the language file.

haldi4803 commented 8 months ago

You most likely need multiplier on kwh set to 0.1 (not uncommon on Kamstrup)

Like that? image

Doesn't seem to work. image I've downloaded the "meter" file, edited it, and reuploaded it again. So past data is now correct. but it doesn't seem to apply the 0.1x correction.

ArnieO commented 8 months ago

I've downloaded the "meter" file, edited it, and reuploaded it again. So past data is now correct. but it doesn't seem to apply the 0.1x correction.

Strange. @gskjold is on vacation this week, he'll have to look into this when he is back. Does it behave as expected if you revert back to v2.2.28? (make a new config file first, to save your historic values).

haldi4803 commented 8 months ago

Okay... it's strange... setting it to 0.011 image seems to work. image

dayplot 5 1708358402 48075 0 0 22 19 21 20 21 24 22 22 21 20 20 20 20 21 24 5750 9360 13660 13650 13200 13540 6770 5320

Do you need a reboot after setting/changing the Value? Because it doesn't automatically.

ArnieO commented 8 months ago

Okay... it's strange... setting it to 0.011 seems to work.

Setting it to 0.011 works, but not 0.01?

haldi4803 commented 8 months ago

I've set it to 0.1 and rebooted, it seems to work now! Does it need a reboot to actually accept the value?

ArnieO commented 8 months ago

I've set it to 0.1 and rebooted, it seems to work now! Does it need a reboot to actually accept the value?

Good question - and if needed, the firmware should do it. @gskjold will have to look into this before we release v2.3.

Thank you for contributing to the testing! 👍