ksheumaker / homeassistant-apsystems_ecur

Home Assistant custom component for local querying of APSystems ECU-R Solar System
Apache License 2.0
166 stars 42 forks source link

Add consumption sensor #157

Open commonslibs opened 1 year ago

commonslibs commented 1 year ago

Hi,

Ecu-c have two clamp meters. One that measures the generation of the solar panels and another that measures the consumption of the house.

It would be nice if the sensor that measures the consumption of the house could be included. Would it be possible to include that sensor?

If I need to become a tester, no problem.

Thank you so much

HAEdwin commented 1 year ago

If the data can be called with an APS command I could add it, even without owning an ECU-C myself testers could confirm all is good when implementing. At the moment it is unknown with which APS command this data can be called.

commonslibs commented 1 year ago

If the data can be called with an APS command I could add it, even without owning an ECU-C myself testers could confirm all is good when implementing. At the moment it is unknown with which APS command this data can be called.

Is there a website where I can research/get information about APS commands?

I am a computer programmer and I would like to be able to investigate the subject.

Greetings and thank you.

tediroca commented 1 year ago

Just dropping a note that I'd be happy to help with the testing too as I own an ECU-C.

tediroca commented 1 year ago

I've tried the steps from https://github.com/ksheumaker/homeassistant-apsystems_ecur/discussions/91 to grab the data from my ECU-C, and command 53 does not seem to include the consumed power (only produced):

image

image

I guess the key thing would be to find which command retrieves the consumed energy.

tediroca commented 1 year ago

This could also be useful: http:///index.php/hidden/ . It list a set of internal URLs which provide additional info.

This is quite interesting as it seems to display a record of all the internal transmissions: http:///index.php/display/record

The latest record seems to match what the ECU graph is showing for production and injection:

image

image image image

There is no consumption reported, as it's logically derived from the production minus export.

tediroca commented 1 year ago

Actually the response already includes the Produced and Exported values:

Exported: image

Produced: image

Consumed: image

And the response:

{
    "APS": "ANSWER",
    "VERSION": "1.1",
    "error": 0,
    "ECUID": "<my-ecu-id>",
    "Command_Id": "53",
    "Command": "1",
    "meter_data": {
        "subtitle": "",
        "power1": [
            {
                "time": "20230213000011",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213000511",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213001011",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213001511",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213002011",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213002511",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213003011",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213003511",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213004011",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213004511",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213005013",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213005513",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213010013",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213010513",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213011013",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213011513",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213011943",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213012443",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213012943",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213013443",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213013943",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213014443",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213014943",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213015443",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213015943",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213020443",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213020943",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213021443",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213021943",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213022443",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213022945",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213023445",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213023945",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213024447",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213024947",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213025447",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213025947",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213030447",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213030947",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213031448",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213031949",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213032449",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213032949",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213033450",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213033951",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213034451",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213034953",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213035453",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213035953",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213040453",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213040955",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213041455",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213041955",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213042459",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213042959",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213043459",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213044001",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213044501",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213045003",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213045503",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213050003",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213050503",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213051005",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213051507",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213052009",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213052509",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213053009",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213053509",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213054009",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213054509",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213055009",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213055509",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213060009",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213060511",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213061011",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213061511",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213062011",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213062513",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213063013",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213063513",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213064013",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213064513",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213065013",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213065515",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213070015",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213070515",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213071017",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213071517",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213072017",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213072517",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213073017",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213073519",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213074019",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213074519",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213075021",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213075521",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213080021",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213080521",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213081021",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213081523",
                "powerA": 0,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213082029",
                "powerA": 30,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213082531",
                "powerA": 43,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213083031",
                "powerA": 53,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213083533",
                "powerA": 65,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213084033",
                "powerA": 69,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213084533",
                "powerA": 67,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213085033",
                "powerA": 79,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213085535",
                "powerA": 86,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213090035",
                "powerA": 92,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213090535",
                "powerA": 98,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213091035",
                "powerA": 105,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213091535",
                "powerA": 112,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213092037",
                "powerA": 118,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213092537",
                "powerA": 123,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213093037",
                "powerA": 128,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213093537",
                "powerA": 136,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213094037",
                "powerA": 141,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213094537",
                "powerA": 147,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213095037",
                "powerA": 156,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213095537",
                "powerA": 163,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213100039",
                "powerA": 366,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213100539",
                "powerA": 523,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213101039",
                "powerA": 645,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213101539",
                "powerA": 936,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213102041",
                "powerA": 1073,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213102541",
                "powerA": 1480,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213103043",
                "powerA": 1712,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213103543",
                "powerA": 1780,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213104045",
                "powerA": 2069,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213104545",
                "powerA": 2219,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213105045",
                "powerA": 2270,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213105547",
                "powerA": 2263,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213110051",
                "powerA": 2260,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213110551",
                "powerA": 2252,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213111051",
                "powerA": 2211,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213111551",
                "powerA": 2238,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213112051",
                "powerA": 2290,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213112551",
                "powerA": 2319,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213113051",
                "powerA": 2271,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213113551",
                "powerA": 2253,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213114051",
                "powerA": 2304,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213114551",
                "powerA": 2315,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213115051",
                "powerA": 2163,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213115553",
                "powerA": 2159,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213120053",
                "powerA": 2098,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213120553",
                "powerA": 2225,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213121055",
                "powerA": 2200,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213121555",
                "powerA": 2377,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213122055",
                "powerA": 2424,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213122555",
                "powerA": 2408,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213123055",
                "powerA": 2374,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213123555",
                "powerA": 2310,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213124055",
                "powerA": 2272,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213124555",
                "powerA": 2156,
                "powerB": 0,
                "powerC": 0
            }
        ],
        "power2": [
            {
                "time": "20230213000011",
                "powerA": 107,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213000511",
                "powerA": 107,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213001011",
                "powerA": 103,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213001511",
                "powerA": 69,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213002011",
                "powerA": 68,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213002511",
                "powerA": 69,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213003011",
                "powerA": 68,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213003511",
                "powerA": 69,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213004011",
                "powerA": 89,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213004511",
                "powerA": 123,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213005013",
                "powerA": 83,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213005513",
                "powerA": 80,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213010013",
                "powerA": 79,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213010513",
                "powerA": 71,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213011013",
                "powerA": 71,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213011513",
                "powerA": 70,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213011943",
                "powerA": 105,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213012443",
                "powerA": 106,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213012943",
                "powerA": 106,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213013443",
                "powerA": 105,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213013943",
                "powerA": 89,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213014443",
                "powerA": 68,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213014943",
                "powerA": 69,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213015443",
                "powerA": 69,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213015943",
                "powerA": 68,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213020443",
                "powerA": 69,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213020943",
                "powerA": 69,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213021443",
                "powerA": 78,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213021943",
                "powerA": 104,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213022443",
                "powerA": 103,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213022945",
                "powerA": 102,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213023445",
                "powerA": 71,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213023945",
                "powerA": 71,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213024447",
                "powerA": 71,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213024947",
                "powerA": 90,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213025447",
                "powerA": 88,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213025947",
                "powerA": 83,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213030447",
                "powerA": 81,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213030947",
                "powerA": 90,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213031448",
                "powerA": 107,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213031949",
                "powerA": 105,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213032449",
                "powerA": 105,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213032949",
                "powerA": 71,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213033450",
                "powerA": 70,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213033951",
                "powerA": 70,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213034451",
                "powerA": 70,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213034953",
                "powerA": 70,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213035453",
                "powerA": 74,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213035953",
                "powerA": 75,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213040453",
                "powerA": 97,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213040955",
                "powerA": 127,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213041455",
                "powerA": 126,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213041955",
                "powerA": 123,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213042459",
                "powerA": 87,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213042959",
                "powerA": 86,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213043459",
                "powerA": 89,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213044001",
                "powerA": 87,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213044501",
                "powerA": 78,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213045003",
                "powerA": 84,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213045503",
                "powerA": 82,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213050003",
                "powerA": 103,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213050503",
                "powerA": 133,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213051005",
                "powerA": 129,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213051507",
                "powerA": 130,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213052009",
                "powerA": 110,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213052509",
                "powerA": 90,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213053009",
                "powerA": 88,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213053509",
                "powerA": 86,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213054009",
                "powerA": 71,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213054509",
                "powerA": 91,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213055009",
                "powerA": 121,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213055509",
                "powerA": 119,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213060009",
                "powerA": 136,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213060511",
                "powerA": 151,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213061011",
                "powerA": 150,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213061511",
                "powerA": 150,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213062011",
                "powerA": 118,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213062513",
                "powerA": 118,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213063013",
                "powerA": 114,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213063513",
                "powerA": 115,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213064013",
                "powerA": 113,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213064513",
                "powerA": 115,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213065013",
                "powerA": 116,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213065515",
                "powerA": 117,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213070015",
                "powerA": 150,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213070515",
                "powerA": 145,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213071017",
                "powerA": 171,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213071517",
                "powerA": 148,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213072017",
                "powerA": 112,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213072517",
                "powerA": 122,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213073017",
                "powerA": 120,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213073519",
                "powerA": 113,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213074019",
                "powerA": 113,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213074519",
                "powerA": 114,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213075021",
                "powerA": 112,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213075521",
                "powerA": 123,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213080021",
                "powerA": 140,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213080521",
                "powerA": 135,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213081021",
                "powerA": 131,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213081523",
                "powerA": 102,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213082029",
                "powerA": 80,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213082531",
                "powerA": 68,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213083031",
                "powerA": 57,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213083533",
                "powerA": 46,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213084033",
                "powerA": 43,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213084533",
                "powerA": 63,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213085033",
                "powerA": 51,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213085535",
                "powerA": 64,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213090035",
                "powerA": 75,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213090535",
                "powerA": 107,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213091035",
                "powerA": 581,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213091535",
                "powerA": 1710,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213092037",
                "powerA": 168,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213092537",
                "powerA": 92,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213093037",
                "powerA": 105,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213093537",
                "powerA": 102,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213094037",
                "powerA": 91,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213094537",
                "powerA": 80,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213095037",
                "powerA": 67,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213095537",
                "powerA": 22,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213100039",
                "powerA": -168,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213100539",
                "powerA": -321,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213101039",
                "powerA": -464,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213101539",
                "powerA": -756,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213102041",
                "powerA": -858,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213102541",
                "powerA": -1286,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213103043",
                "powerA": -1519,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213103543",
                "powerA": -1576,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213104045",
                "powerA": -1861,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213104545",
                "powerA": -1994,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213105045",
                "powerA": -2034,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213105547",
                "powerA": -2033,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213110051",
                "powerA": -1942,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213110551",
                "powerA": -514,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213111051",
                "powerA": -1179,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213111551",
                "powerA": -1221,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213112051",
                "powerA": -1228,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213112551",
                "powerA": -1266,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213113051",
                "powerA": -1199,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213113551",
                "powerA": -485,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213114051",
                "powerA": 1090,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213114551",
                "powerA": 883,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213115051",
                "powerA": 940,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213115553",
                "powerA": -855,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213120053",
                "powerA": -991,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213120553",
                "powerA": -1135,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213121055",
                "powerA": 846,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213121555",
                "powerA": 1239,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213122055",
                "powerA": 1169,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213122555",
                "powerA": 1132,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213123055",
                "powerA": 960,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213123555",
                "powerA": 783,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213124055",
                "powerA": 725,
                "powerB": 0,
                "powerC": 0
            },
            {
                "time": "20230213124555",
                "powerA": 537,
                "powerB": 0,
                "powerC": 0
            }
        ]
    }
}

Produced = meter_data > power1 > powerA = 2156 W Exported = meter_data> power2 > powerA = 537 W Consumed = Produced + Exported = 2693 W

gregoo31 commented 1 year ago

Bonjour, j'ai le plugin APSystem sour jeedom et le développeur a réussi à récupérer la puissance consommée. Sur un post, il dit qu'il intercepte la communication de la passerelle ECU-C https://community.jeedom.com/t/plugin-apsystems/70497/57?u=gregoo31 nch Développeurs juin '22 "En capturant les communications entre l’application EMA Manager et l’ECU, j’ai trouvé comment récupérer les courbes de production/consommation/injection d’un ECU-C. Je sais pas si ça intéresse quelqu’un, mais je vais essayer d’intégrer ça bientôt dans le plugin." https://community.jeedom.com/t/plugin-apsystems/70497/62?u=gregoo31 nch Développeurs

1

rennais35000 juin '22 "Pour ceux qui ont l’ECU-C avec les pinces branchées, j’ai réussi à récupérer les infos des pinces et les intégrer dans le widget.

On récupère ainsi le courant importé et exporté. C’est qui m’intéressait le plus pour pouvoir activer des relais pour piloter mes appareils."

Comment peut on faire pour HA ? (ne comptez pas sur moi ;-) , je ne sais pas codé !)

HAEdwin commented 1 year ago

I toyed with the idea to implement a proxy between the ECU and EMA website as this is probably the most stable and generic solution. Maybe you could use some of it. I'm pretty busy so I can't do much with it. I need help with the data interpretation and the further development to sensors. I'm currently running this proxy 24/7 alongside the integration and it works super stable. https://github.com/HAEdwin/APsystems_ECU2EMA_proxy

tediroca commented 1 year ago

I toyed with the idea to implement a proxy between the ECU and EMA website as this is probably the most stable and generic solution. Maybe you could use some of it. I'm pretty busy so I can't do much with it. I need help with the data interpretation and the further development to sensors. I'm currently running this proxy 24/7 alongside the integration and it works super stable. https://github.com/HAEdwin/APsystems_ECU2EMA_proxy

@HAEdwin I'm giving it a try. So far I've installed Adguard and followed the instructions from your link to install the proxy, although I'm getting an error after restarting HA. I've raised an issue on the proxy project itself to avoid missing stuff.

I'm new to your proxy, Adguard, APsystems and HA, so be patient please :) Is the info from the sensor supposed to appear somewhere in HA or shoul that be directly in the logs?

supertin commented 1 year ago

I'm also interested in this.

Not sure if anyone is aware, but there's straight JSON available at http://IP/index.php/meter/old_meter_power_graph Looks to be the same format content as @tediroca posted above... Might be useful to someone 🤷 I've been using that URL for about 12 months in a dodgy Arduino project to show the import/export on an OLED. ECU seems to struggle sometimes with it though.

tediroca commented 1 year ago

I'm also interested in this.

Not sure if anyone is aware, but there's straight JSON available at http://IP/index.php/meter/old_meter_power_graph Looks to be the same format content as @tediroca posted above... Might be useful to someone 🤷 I've been using that URL for about 12 months in a dodgy Arduino project to show the import/export on an OLED. ECU seems to struggle sometimes with it though.

Thats's great. Thanks for sharing!

I ended up using the internal display records from http:///index.php/display/record and a scrape sensor:

Select:

body > section > div > article > div > div.panel-body > div.table-responsive > table > tbody > tr:nth-child(1) > td:nth-child(2)

Value template:

{{ value | regex_findall_index('(?![\s\S]*"I")(?<="I":).*(?=,"J")')}}

This gives me the imported/exported energy, and based on that I enable/disable some appliances: image

commonslibs commented 1 year ago

I'm also interested in this. Not sure if anyone is aware, but there's straight JSON available at http://IP/index.php/meter/old_meter_power_graph Looks to be the same format content as @tediroca posted above... Might be useful to someone 🤷 I've been using that URL for about 12 months in a dodgy Arduino project to show the import/export on an OLED. ECU seems to struggle sometimes with it though.

Thats's great. Thanks for sharing!

I ended up using the internal display records from http:///index.php/display/record and a scrape sensor:

Select:

body > section > div > article > div > div.panel-body > div.table-responsive > table > tbody > tr:nth-child(1) > td:nth-child(2)

Value template:

{{ value | regex_findall_index('(?![\s\S]*"I")(?<="I":).*(?=,"J")')}}

This gives me the imported/exported energy, and based on that I enable/disable some appliances: image

Hi, Tediroca.

Could you tell us how to add that sensor to HA? I go over the top in HA but I don't know how to include that sensor.

On the other hand, I notice that the sensor that you have included gives you the imported/exported energy but at least I am looking for the energy that your house is consuming. Do you know how to get it?

By the way, this topic is also found in the following discussion: https://github.com/ksheumaker/homeassistant-apsystems_ecur/discussions/91

And for the creator of the plugin (@HAEdwin ), do you think this sensor can be added to the plugin itself?

Regards, and thank you very much.

------------------------------------------- Spanish ¿Podrías indicarnos cómo añadir ese sensor a HA?. Me manejo por encima en HA pero no se cómo incluir ese sensor.

Por otro lado, observo que el sensor que has incluido te da la energia importada/exportada pero al menos yo estoy buscando la energia que esta consumindo tu casa. ¿Sabes cómo obtenerla?

Por cierto, este tema se encuentra también en la discusion siguiente: https://github.com/ksheumaker/homeassistant-apsystems_ecur/discussions/91

Y ya para el creador del plugin (@HAEdwin ), ¿Crees que se podrá añadir este sensor en el propio plugin?

Un saludo y muchas gracias.

wildekek commented 7 months ago

I'm in the process of creating power and energy sensors for HA from the CT clamps. So far I have all the power sensors I want, the energy sensors need a bit more work. Here's a gist.

wildekek commented 7 months ago

If the data can be called with an APS command I could add it, even without owning an ECU-C myself testers could confirm all is good when implementing. At the moment it is unknown with which APS command this data can be called.

I'd be happy to help you test implementing this via the TCP socket. Here's a dump of the ECU-C with CT clamps enabled:

Connection to 192.168.0.6 port 8899 [tcp/*] succeeded!
APS1100160001END
APS120113000121500001550901`�j #!   Q4

10015ECU-C-Z_C1.2.10013America/Aruba��5�`Ũy��00END

Maybe we can chat on discord and debug this in realtime.

wildekek commented 7 months ago

Found the CT energy meters: http://ip/index.php/display/historical_data/meter_lifetime_energy/ Chip 1 = Grid import/export Chip 2= Solar production I'll add this data to my gist above in a minute, then you can use it for the HA Energy Dashboard.

HAEdwin commented 7 months ago

Connection to 192.168.0.6 port 8899 [tcp/*] succeeded! APS1100160001END APS120113000121500001550901`�j #! Q4

10015ECU-C-Z_C1.2.10013America/Aruba��5�`Ũy��00END



Maybe we can chat on discord and debug this in realtime.

This queries the ECU: image But it's not what you are looking for. How is the ECU-C being configured? Only by web UI or also with a telephone app? So this solution is not what you are looking for? https://github.com/ksheumaker/homeassistant-apsystems_ecur/discussions/91#discussioncomment-6582176

wildekek commented 7 months ago

What I'm looking for (ordered by prio) is:

This queries the ECU: (image) But it's not what you are looking for.

Thanks for the mapping table, this could help give clues to find the "energy consumption total" in the data the socket returns.

How is the ECU-C being configured? Only by web UI or also with a telephone app?

Both app and web UI.

So this solution is not what you are looking for? #91 (reply in thread)

This solution returns the last measured power per day, not energy. There is however a way to get the energy per day in the same way (http:///index.php/meter/old_meter_energy_graph), but since it is both a net meter (can go up and down) and daily (so it resets to 0 at night) it is really hard to get a reliable total production and consumption meter (which the Energy Dashboard requires) from that data. Could not find a rest interface for the totals unfortunately. The web page in my comment above does provide this, so this with a few scrape sensors is a reasonable way to solve the need and create a reliable energy dashboard. Having said that, I would much rather have the values come from the socket, so we only have to query once, I can make a PR and everyone with CT clamps gets this.

wildekek commented 7 months ago

Updated my Gist.

It now also contains energy sensors for use in the Energy Dashboard of Home Assistant.

All these sensors have state_class: total_increasing. This means they contain positive, increasing values and will never reset. Have fun with your new Energy Dashboard!

supertin commented 7 months ago

Updated my Gist.

If I was to copy this for my own use, can you think of what values I'd need to change? Obviously the ECU IP will likely be different. I also see ECU ID which I imagine needs to be changed... Any others?

wildekek commented 7 months ago

Updated my Gist.

If I was to copy this for my own use, can you think of what values I'd need to change? Obviously the ECU IP will likely be different. I also see ECU ID which I imagine needs to be changed... Any others?

Nope, that's it!

nTildeStudio commented 7 months ago

Hi! sorry for the beginner question, but I'm trying to apply that YAML file and I'm not able to do it. Could someone explain to me how to do it? I've looked into everything I could in the Home Assistant documentation (I've tried including it in configuration.yaml in all possible ways). Thanks in advance.

wildekek commented 7 months ago

No problemo. The way I do it (and would recommend you do this too), is to use packages:

nTildeStudio commented 7 months ago

It worked!! Thank you very much!!!!

didierst commented 7 months ago

@wildekek

You are the boss 👍 Of the different solutions tested so far, yours is probably the most accomplished and functional. Thank you for this work and this much appreciated sharing

BR

wildekek commented 7 months ago

Since people find this useful, I'll give reading these values from the socket another try, so I can get this merged into this repo. The more I understand of APSystems hardware, the more enraged I become, so no promises.

didierst commented 7 months ago

Indeed, there is reason to be a little confused.

It is possible to receive a lot of data via Modbus, but I am not sure it is possible to get the values of the CT, they are however "essential".

However, with the current script, I have a strange behavior, at night, the system records a very light solar output 0.01KW while this value is 0 in the EMA APP. For some reason I don’t know the entity: sensor.solar_power_produced_l1 gives the value of 0.011

Any idea what that behavior was?

Capture d’écran 2023-11-29 à 17 12 01

Capture d’écran 2023-11-29 à 17 14 31

wildekek commented 7 months ago

However, with the current script, I have a strange behavior, at night, the system records a very light solar output 0.01KW while this value is 0 in the EMA APP. For some reason I don’t know the entity: sensor.solar_power_produced_l1 gives the value of 0.011

Any idea what that behavior was?

I have the same issue, but for me the value is 0,002kW. The reason is that the ECU rest API still really does report this value at night:

{"time":"20231129063613","powerA":2,"powerB":0,"powerC":0},
{"time":"20231129064113","powerA":2,"powerB":0,"powerC":0},
{"time":"20231129064613","powerA":2,"powerB":0,"powerC":0},
{"time":"20231129065113","powerA":0,"powerB":0,"powerC":0},
{"time":"20231129065613","powerA":0,"powerB":33,"powerC":20}

I assume this is really just a calibration issue in the ECU, so I don't really want to fix that in my scripts, since it can vary per ECU. There are CT clamp calibration settings in the ECU at http://[ip]/index.php/configuration/meter, but I don't feel comfortable editing those myself. I learned to live with it, but if you are able to get the values calibrated I'd love to hear it.

didierst commented 7 months ago

Thank you for the feedback, it would be interesting to get some feedback from other users to determine the importance / average of "drift" in the worst case, we could via the code, consider that anything below the drift value is considered to be 0

Calibration requires a constant and calibrated source of voltage/current, which is not within everyone’s reach, I guess APS use a filter that probably only considers a value above a certain threshold to be considered "real"

That said, the script works very well as it is, and you can easily live with this micro production at night, we only have to say that it is induced by the light of the full moon :)

didierst commented 7 months ago

{"time":1701213125000,"powerA":11,"powerB":0,"powerC":0},{"time":1701213427000,"powerA":11,"powerB":0,"powerC":0},{"time":1701213728000,"powerA":11,"powerB":0,"powerC":0},{"time":1701214029000,"powerA":11,"powerB":0,"powerC":0}