Configured my ESPHome with MCP2515 CAN-Bus for Stiebel Eltron heating pump

Hi roberreiter,
you were right.
After more hours of testing I found something. Apparently the LWZ 304 does not answers on ID 680.
With the 6a2 I get answers. :slight_smile:

Here the log:

[23:08:00][D][canbus:033]: send extended id=0x6a2 rtr=FALSE size=7
[23:08:00][D][canbus:070]: received can message (#1) std can_id=0x180 size=7
[23:08:00][D][main:103]: Antwort von 180 Hex: d2 22 fa 5 6c 0 1
[23:08:00][D][main:104]: Antwort von 180 Float: 1.000000
[23:08:00][D][main:105]: Antwort von 180 Dez.: 0 1

Config:

time:
  - platform: homeassistant
    id: homeassistant_time
    on_time:
     
      - seconds: /60
        then:
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x05,0x6c,0x00,0x00 ]
              can_id: 0x6a2
          - delay: 200ms
spi:
  id: McpSpi
  clk_pin: GPIO18
  mosi_pin: GPIO23
  miso_pin: GPIO19

canbus:
  - platform: mcp2515
    id: my_mcp2515
    spi_id: McpSpi
    cs_pin: GPIO17
    can_id: 0x6a2
    use_extended_id: false
    bit_rate: 20kbps
    on_frame:

@JensPB

[21:37:57][D][canbus:069]: received can message (#2) std can_id=0x180 size=7
[21:37:57][D][main:767]: Antwort von 180 Hex: d2 1e fa 0 e 1 b0
[21:37:57][D][main:768]: Antwort von 180 Float: 432.000000
[21:37:57][D][main:769]: Antwort von 180 Dez.: 1 176

should be heating circuit 2 with the water temperature.
Attached is a picture of the IDs of the LWZ 304. Maybe that will help you. :slight_smile:

CAN_IDs

Miki

Moin all,

maybe I’m too stupid, but I don’t have the clou on how to transfer data from canbus to HA.

As far as I understand, I receive data from several CAN IDs (see log below, 0x69f, 0x302, 0x180, 0x69e)

But with the script from robereiter there is nothing visible inside HA despite that all entities are built, but all without values.

Do if have to modify that script according to ‘my’ CAN-IDs, and if yes: how???

(I’m a mechanical engineer and proud to have wiring issues solved :rofl:…)

[21:55:50][D][canbus:070]: received can message (#1) std can_id=0x69f size=7
[21:55:50][D][canbus:070]: received can message (#2) std can_id=0x302 size=7
[21:55:51][D][canbus:070]: received can message (#1) std can_id=0x69f size=7
[21:55:51][D][canbus:070]: received can message (#1) std can_id=0x180 size=7
[21:55:51][D][main:097]: Antwort von 180 Hex: d2 1f fa 0 e 1 cd
[21:55:51][D][main:098]: Antwort von 180 Float: 461.000000
[21:55:51][D][main:099]: Antwort von 180 Dez.: 1 205
[21:55:52][D][canbus:070]: received can message (#1) std can_id=0x69e size=7
[21:55:52][D][canbus:070]: received can message (#1) std can_id=0x180 size=7
[21:55:52][D][main:097]: Antwort von 180 Hex: d2 1e fa 0 c 0 65
[21:55:52][D][main:098]: Antwort von 180 Float: 101.000000
[21:55:52][D][main:099]: Antwort von 180 Dez.: 0 101
[21:55:52][D][canbus:070]: received can message (#1) std can_id=0x69e size=7
[21:55:52][D][canbus:070]: received can message (#1) std can_id=0x302 size=7
[21:55:53][D][canbus:070]: received can message (#1) std can_id=0x69e size=7
[21:55:53][D][canbus:070]: received can message (#2) std can_id=0x180 size=7
[21:55:53][D][main:097]: Antwort von 180 Hex: d2 1e fa 0 e 1 cd
[21:55:53][D][main:098]: Antwort von 180 Float: 461.000000
[21:55:53][D][main:099]: Antwort von 180 Dez.: 1 205
[21:56:00][D][canbus:070]: received can message (#1) std can_id=0x69f size=7
[21:56:00][D][canbus:070]: received can message (#1) std can_id=0x180 size=7
[21:56:00][D][main:097]: Antwort von 180 Hex: d2 1f fa 0 c 0 65
[21:56:00][D][main:098]: Antwort von 180 Float: 101.000000
[21:56:00][D][main:099]: Antwort von 180 Dez.: 0 101
[21:56:01][D][canbus:070]: received can message (#1) std can_id=0x69f size=7
[21:56:01][D][canbus:070]: received can message (#2) std can_id=0x302 size=7
[21:56:01][D][canbus:070]: received can message (#1) std can_id=0x69f size=7
[21:56:01][D][canbus:070]: received can message (#1) std can_id=0x180 size=7
[21:56:01][D][main:097]: Antwort von 180 Hex: d2 1f fa 0 e 1 cd
[21:56:01][D][main:098]: Antwort von 180 Float: 461.000000
[21:56:01][D][main:099]: Antwort von 180 Dez.: 1 205
[21:56:01][D][canbus:070]: received can message (#1) std can_id=0x69f size=7
[21:56:01][D][canbus:070]: received can message (#2) std can_id=0x180 size=7
[21:56:01][D][main:097]: Antwort von 180 Hex: d2 1f fa 1 9a 2 7
[21:56:01][D][main:098]: Antwort von 180 Float: 519.000000
[21:56:01][D][main:099]: Antwort von 180 Dez.: 2 7
[21:56:02][D][canbus:070]: received can message (#1) std can_id=0x402 size=7
[21:56:02][D][canbus:070]: received can message (#1) std can_id=0x402 size=7
[21:56:02][D][canbus:070]: received can message (#1) std can_id=0x69e size=7
[21:56:02][D][canbus:070]: received can message (#1) std can_id=0x180 size=7
[21:56:02][D][main:097]: Antwort von 180 Hex: d2 1e fa 0 c 0 65
[21:56:02][D][main:098]: Antwort von 180 Float: 101.000000
[21:56:02][D][main:099]: Antwort von 180 Dez.: 0 101
[21:56:02][D][canbus:070]: received can message (#1) std can_id=0x69e size=7
[21:56:02][D][canbus:070]: received can message (#1) std can_id=0x302 size=7
[21:56:03][D][canbus:070]: received can message (#1) std can_id=0x69e size=7
[21:56:03][D][canbus:070]: received can message (#1) std can_id=0x180 size=7
[21:56:03][D][main:097]: Antwort von 180 Hex: d2 1e fa 0 e 1 cd
[21:56:03][D][main:098]: Antwort von 180 Float: 461.000000
[21:56:03][D][main:099]: Antwort von 180 Dez.: 1 205
[21:56:09][D][canbus:070]: received can message (#1) std can_id=0x180 size=7
[21:56:09][D][main:097]: Antwort von 180 Hex: d0 3c fa 1 26 37 0
[21:56:09][D][main:098]: Antwort von 180 Float: 14080.000000
[21:56:09][D][main:099]: Antwort von 180 Dez.: 55 0
[21:56:10][D][canbus:070]: received can message (#1) std can_id=0x69f size=7
[21:56:10][D][canbus:070]: received can message (#2) std can_id=0x180 size=7
[21:56:10][D][main:097]: Antwort von 180 Hex: d2 1f fa 0 c 0 66
[21:56:10][D][main:098]: Antwort von 180 Float: 102.000000
[21:56:10][D][main:099]: Antwort von 180 Dez.: 0 102
[21:56:10][D][canbus:070]: received can message (#1) std can_id=0x69f size=7
[21:56:10][D][canbus:070]: received can message (#1) std can_id=0x302 size=7
[21:56:11][D][canbus:070]: received can message (#1) std can_id=0x69f size=7
[21:56:11][D][canbus:070]: received can message (#1) std can_id=0x180 size=7
[21:56:11][D][main:097]: Antwort von 180 Hex: d2 1f fa 0 e 1 cd
[21:56:11][D][main:098]: Antwort von 180 Float: 461.000000
[21:56:11][D][main:099]: Antwort von 180 Dez.: 1 205
[21:56:12][D][canbus:070]: received can message (#1) std can_id=0x69e size=7
[21:56:12][D][canbus:070]: received can message (#2) std can_id=0x180 size=7
[21:56:12][D][main:097]: Antwort von 180 Hex: d2 1e fa 0 c 0 65
[21:56:12][D][main:098]: Antwort von 180 Float: 101.000000
[21:56:12][D][main:099]: Antwort von 180 Dez.: 0 101
[21:56:12][D][canbus:070]: received can message (#1) std can_id=0x69e size=7
[21:56:12][D][canbus:070]: received can message (#1) std can_id=0x302 size=7
[21:56:13][D][canbus:070]: received can message (#1) std can_id=0x69e size=7
[21:56:13][D][canbus:070]: received can message (#1) std can_id=0x180 size=7
[21:56:13][D][main:097]: Antwort von 180 Hex: d2 1e fa 0 e 1 cd
[21:56:13][D][main:098]: Antwort von 180 Float: 461.000000
[21:56:13][D][main:099]: Antwort von 180 Dez.: 1 205
[21:56:15][D][canbus:070]: received can message (#1) std can_id=0x180 size=7
[21:56:15][D][main:097]: Antwort von 180 Hex: d0 3c fa 1 12 b 0
[21:56:15][D][main:098]: Antwort von 180 Float: 2816.000000
[21:56:15][D][main:099]: Antwort von 180 Dez.: 11 0
[21:56:15][D][canbus:070]: received can message (#1) std can_id=0x180 size=7
[21:56:15][D][main:097]: Antwort von 180 Hex: d0 3c fa 1 21 0 0
[21:56:15][D][main:098]: Antwort von 180 Float: 0.000000
[21:56:15][D][main:099]: Antwort von 180 Dez.: 0 0
[21:56:15][D][canbus:070]: received can message (#2) std can_id=0x180 size=7
[21:56:15][D][main:097]: Antwort von 180 Hex: d0 3c fa 1 22 1a 0
[21:56:15][D][main:098]: Antwort von 180 Float: 6656.000000
[21:56:15][D][main:099]: Antwort von 180 Dez.: 26 0
[21:56:15][D][canbus:070]: received can message (#3) std can_id=0x180 size=7
[21:56:15][D][main:097]: Antwort von 180 Hex: d0 3c fa 1 23 9 0
[21:56:15][D][main:098]: Antwort von 180 Float: 2304.000000
[21:56:15][D][main:099]: Antwort von 180 Dez.: 9 0
[21:56:15][D][canbus:070]: received can message (#4) std can_id=0x180 size=7
[21:56:15][D][main:097]: Antwort von 180 Hex: d0 3c fa 1 24 16 0
[21:56:15][D][main:098]: Antwort von 180 Float: 5632.000000
[21:56:15][D][main:099]: Antwort von 180 Dez.: 22 0
[21:56:15][D][canbus:070]: received can message (#5) std can_id=0x180 size=7
[21:56:15][D][main:097]: Antwort von 180 Hex: d0 3c fa 1 25 15 0
[21:56:15][D][main:098]: Antwort von 180 Float: 5376.000000
[21:56:15][D][main:099]: Antwort von 180 Dez.: 21 0
[21:56:15][D][canbus:070]: received can message (#6) std can_id=0x180 size=7
[21:56:15][D][main:097]: Antwort von 180 Hex: d0 3c fa 0 1 0 0
[21:56:15][D][main:098]: Antwort von 180 Float: 0.000000
[21:56:15][D][main:099]: Antwort von 180 Dez.: 0 0
[21:56:15][D][canbus:070]: received can message (#7) std can_id=0x180 size=7
[21:56:15][D][main:097]: Antwort von 180 Hex: d0 3c fa 1 76 4 13
[21:56:15][D][main:098]: Antwort von 180 Float: 1043.000000
[21:56:15][D][main:099]: Antwort von 180 Dez.: 4 19
[21:56:15][D][canbus:070]: received can message (#8) std can_id=0x180 size=7
[21:56:15][D][main:097]: Antwort von 180 Hex: d0 3c fa 1 26 37 0
[21:56:15][D][main:098]: Antwort von 180 Float: 14080.000000
[21:56:15][D][main:099]: Antwort von 180 Dez.: 55 0
[21:56:20][D][canbus:070]: received can message (#1) std can_id=0x69f size=7
[21:56:20][D][canbus:070]: received can message (#2) std can_id=0x180 size=7
[21:56:20][D][main:097]: Antwort von 180 Hex: d2 1f fa 0 c 0 65
[21:56:20][D][main:098]: Antwort von 180 Float: 101.000000
[21:56:20][D][main:099]: Antwort von 180 Dez.: 0 101
[21:56:21][D][canbus:070]: received can message (#1) std can_id=0x69f size=7
[21:56:21][D][canbus:070]: received can message (#1) std can_id=0x302 size=7
[21:56:21][D][canbus:070]: received can message (#1) std can_id=0x69f size=7
[21:56:21][D][canbus:070]: received can message (#1) std can_id=0x180 size=7
[21:56:21][D][main:097]: Antwort von 180 Hex: d2 1f fa 0 e 1 cd
[21:56:21][D][main:098]: Antwort von 180 Float: 461.000000
[21:56:21][D][main:099]: Antwort von 180 Dez.: 1 205
[21:56:22][D][canbus:070]: received can message (#1) std can_id=0x69e size=7
[21:56:22][D][canbus:070]: received can message (#2) std can_id=0x180 size=7
[21:56:22][D][main:097]: Antwort von 180 Hex: d2 1e fa 0 c 0 66
[21:56:22][D][main:098]: Antwort von 180 Float: 102.000000
[21:56:22][D][main:099]: Antwort von 180 Dez.: 0 102
[21:56:22][D][canbus:070]: received can message (#1) std can_id=0x69e size=7
[21:56:22][D][canbus:070]: received can message (#1) std can_id=0x302 size=7
[21:56:22][D][canbus:070]: received can message (#1) std can_id=0x69e size=7
[21:56:22][D][canbus:070]: received can message (#1) std can_id=0x180 size=7
[21:56:22][D][main:097]: Antwort von 180 Hex: d2 1e fa 0 e 1 cd
[21:56:22][D][main:098]: Antwort von 180 Float: 461.000000
[21:56:22][D][main:099]: Antwort von 180 Dez.: 1 205
[21:56:30][D][canbus:070]: received can message (#1) std can_id=0x69f size=7
[21:56:30][D][canbus:070]: received can message (#1) std can_id=0x180 size=7
[21:56:30][D][main:097]: Antwort von 180 Hex: d2 1f fa 0 c 0 66
[21:56:30][D][main:098]: Antwort von 180 Float: 102.000000
[21:56:30][D][main:099]: Antwort von 180 Dez.: 0 102
[21:56:30][D][canbus:070]: received can message (#1) std can_id=0x69f size=7
[21:56:30][D][canbus:070]: received can message (#2) std can_id=0x302 size=7
[21:56:31][D][canbus:070]: received can message (#1) std can_id=0x69f size=7
[21:56:31][D][canbus:070]: received can message (#1) std can_id=0x180 size=7
[21:56:31][D][main:097]: Antwort von 180 Hex: d2 1f fa 0 e 1 cd
[21:56:31][D][main:098]: Antwort von 180 Float: 461.000000
[21:56:31][D][main:099]: Antwort von 180 Dez.: 1 205
[21:56:32][D][canbus:070]: received can message (#1) std can_id=0x69e size=7
[21:56:32][D][canbus:070]: received can message (#2) std can_id=0x180 size=7
[21:56:32][D][main:097]: Antwort von 180 Hex: d2 1e fa 0 c 0 65
[21:56:32][D][main:098]: Antwort von 180 Float: 101.000000
[21:56:32][D][main:099]: Antwort von 180 Dez.: 0 101
[21:56:32][D][canbus:070]: received can message (#1) std can_id=0x69e size=7
[21:56:32][D][canbus:070]: received can message (#1) std can_id=0x302 size=7
[21:56:33][D][canbus:070]: received can message (#1) std can_id=0x69e size=7
[21:56:33][D][canbus:070]: received can message (#1) std can_id=0x180 size=7
[21:56:33][D][main:097]: Antwort von 180 Hex: d2 1e fa 0 e 1 cd
[21:56:33][D][main:098]: Antwort von 180 Float: 461.000000
[21:56:33][D][main:099]: Antwort von 180 Dez.: 1 205'''

Thanks for your patience with a dummi like me :wink:

BR
Jens

Hi,

since most of the sensors are set to update every 5, 10 or 15 minutes, you should see some result after a while. This should ensure, that the sensor is not flooded with values.

You can also press the button “Befehl anzeigen / Sensorupdate” inside home assistant. The button is part of my script within the ESPHome-Config. Pressing the button will update some values like power usage immediatly.
If you want to see more values right after startup, e.g. for debugging, you can either reduce the update_interval for the required sensor, or you add the sensor within the update-button-section.
Just add “id(sensor-id).update();” underneath the lambda code-block.
e.g. for the pressure of the heating-pump add “id(heizungsdruck_log).update();”
I will translate the comments to english in some time.

button:

#Button fĂźr CAN-Befehl im Log anzeigen - CAN-Befehl aus Home-Assistant-Dienst - es wird dabei kein Signal an den CAN-Bus gesendet; FĂźhrt auch erstmaliges refresh einzelner Sensoren aus
  - platform: template
    name: "Befehl anzeigen / Sensorupdate"
    id: can_befehl_anzeigen
    on_press:
      then:      
        lambda: |-
         id(VD_starts).update();
         id(cop_total).update();
         ESP_LOGI("main", "Value of my hex_sensor: %x, %x, %x, %x, %x, %x, %x", id(sh_state)[0],id(sh_state)[1],id(sh_state)[2],id(sh_state)[3],id(sh_state)[4],id(sh_state)[5],id(sh_state)[6]);

Moin robereiter,

I absolutely don’t mind german comments :wink:
But even after having tested your script again, incl. considering your proposal to press ‘Befehl anzeigen / Sensorupdate’ all sensor values inside my entity ‘lwz![Screenshot entity esphome LWZ304304’ are still unknown (unbekannt) or not available (Nicht verfügbar).

Is there anything about CAN bus addresses that I still would have to adjust??

Do you see any further approach?

BR Jens

HI Jens,

Mike’s advice did it for me. My 504 does not answer to ID 680 requests too.
Replace can_id: 0x680 with 0x6a2.

PP

Well, according to the post of Miki84, you could consider to change the CAN-send address. In his case it was changed to 0x6a2 (ID302).
I guess this will result in slightly different answer-packages and means that you have to change these values
if(x[0]==0xd2 and x[1]==0x00 and x[2]==0xfa and x[3]==0x06 and x[4]==0x73)
The first two bytes would change from 0xd2 / 0x00 to 0x62 / 0xa2 I would say.

But you can try out with my script too.
This is the reason why I included it in the code.
Just include the input_text fields h_addr, h_idx, h_val, that I posted above, in your config.yaml and include and run the script from the Lovelace interface using a button that starts it.
Then you can send any requests to the can-bus and listen for answers.
Be careful that you don’t overwrite any values with this approach:
The address to send requests to should then usually be 3100. The 1 indicates a request. A 2 would indicate a value change or answer.

@roberreiter Thanks for all your work to support the Stiebel Eltron heat pumps.

I tried using 0x680 and 0x6a2 as sender addresses but do not receive any data from the CAN bus. What is the best way to debug this? Is there a way to see if the SPI connection to the MCP2515 board has been configured correctly and works? Is there a way to see if the CAN bus is connected (and terminated) correctly? For example by monitoring all CAN traffic?

If the CAN bus is connected correctly, you should at least see some log output.
Because the heat pump is talking to the components.
If you use excerpts of my config - I added lines similar to the following, to show the content of packages on the bus.

e.g. this here is listening on packages from can_id 180 and showing the content in hex-numbers.
Additionally it converts some of the values that are usually interesting into float or integer numbers.
Once you see log output, you can go on with requesting packets.

- can_id: 0x180
      then:
        - lambda: |-
              int wert0 = int(x[0]);
              int wert1 =int(x[1]);
              int wert2 =int(x[2]);
              int wert3 =int(x[3]);
              int wert4 =int(x[4]);
              int wert5 =int(x[5]);
              int wert6 =int(x[6]);
              float wert7 = float(int((x[6])+( (x[5])<<8)));
              float wert8 = float(int((x[4])+( (x[3])<<8)));
              ESP_LOGI("main", "Antwort von 180 Hex: %x %x %x %x %x %x %x", wert0, wert1, wert2, wert3, wert4, wert5, wert6);
              ESP_LOGI("main", "Antwort von 180 Float: %f", wert7);
              ESP_LOGI("main", "Antwort von 180 Dez.: %i %i", wert5, wert6);
              ESP_LOGI("main", "Antwort klein von 180 Float: %f", wert8);
              ESP_LOGI("main", "Antwort klein von 180 Dez.: %i %i", wert3, wert4);

Thanks. It looks like the CAN Bus connection doesn’t work for me. I will check with another ESP32 board soon as the PIN Out on my current board is not documented well and I might have connected the SPI incorrectly.
BTW, is it confirmed that the bitrate is 20kbps? Too bad that plaform: esp32_can does not support 20kbps

Yes 20 kbps is confirmed

Ha. I finally managed to properly connect the bus and receive messages but it seems that my heatpump and all other addresses are different.
This is what I receive:

...
[00:05:09][D][canbus:068]: received can message (#1) std can_id=0x1c0 size=7
[00:05:09][I][main:1067]: Antwort von 1c0 Hex: f2 0 fe 9 20 c0 0
[00:05:09][I][main:1068]: Antwort von 1c0 Float: 49152.000000
[00:05:09][I][main:1069]: Antwort von 1c0 Dez.: 192 0
[00:05:09][I][main:1070]: Antwort klein von 1c0 Float: 2336.000000
[00:05:09][I][main:1071]: Antwort klein von 1c0 Dez.: 9 32
[00:05:09][D][canbus:068]: received can message (#2) std can_id=0x1c0 size=7
[00:05:09][I][main:1067]: Antwort von 1c0 Hex: f2 0 ff 9 29 c0 0
[00:05:09][I][main:1068]: Antwort von 1c0 Float: 49152.000000
[00:05:09][I][main:1069]: Antwort von 1c0 Dez.: 192 0
[00:05:09][I][main:1070]: Antwort klein von 1c0 Float: 2345.000000
[00:05:09][I][main:1071]: Antwort klein von 1c0 Dez.: 9 41
[00:05:09][D][canbus:068]: received can message (#3) std can_id=0x1c0 size=7
[00:05:09][I][main:1067]: Antwort von 1c0 Hex: f2 0 ff 9 21 c0 0
[00:05:09][I][main:1068]: Antwort von 1c0 Float: 49152.000000
[00:05:09][I][main:1069]: Antwort von 1c0 Dez.: 192 0
[00:05:09][I][main:1070]: Antwort klein von 1c0 Float: 2337.000000
[00:05:09][I][main:1071]: Antwort klein von 1c0 Dez.: 9 33
[00:05:09][C][template.sensor:023]: Template Sensor 'T Heizkreis IST'
[00:05:09][C][template.sensor:023]:   Device Class: 'temperature'
[00:05:09][C][template.sensor:023]:   State Class: 'measurement'
[00:05:09][C][template.sensor:023]:   Unit of Measurement: '°C'
[00:05:09][C][template.sensor:023]:   Accuracy Decimals: 1
[00:05:09][C][template.sensor:023]:   Icon: 'mdi:waves-arrow-right'
[00:05:09][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:09][C][template.sensor:023]: Template Sensor 'T Heizkreis Soll'
[00:05:09][C][template.sensor:023]:   Device Class: 'temperature'
[00:05:09][C][template.sensor:023]:   State Class: 'measurement'
[00:05:09][C][template.sensor:023]:   Unit of Measurement: '°C'
[00:05:09][C][template.sensor:023]:   Accuracy Decimals: 1
[00:05:09][C][template.sensor:023]:   Icon: 'mdi:waves-arrow-left'
[00:05:09][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:09][C][template.sensor:023]: Template Sensor 'Speicher Soll Temperatur'
[00:05:09][C][template.sensor:023]:   Device Class: 'temperature'
[00:05:09][C][template.sensor:023]:   State Class: 'measurement'
[00:05:09][C][template.sensor:023]:   Unit of Measurement: '°C'
[00:05:09][C][template.sensor:023]:   Accuracy Decimals: 1
[00:05:09][C][template.sensor:023]:   Icon: 'mdi:thermometer-water'
[00:05:09][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:09][C][template.sensor:023]: Template Sensor 'Speicher IST Temperatur'
[00:05:09][C][template.sensor:023]:   Device Class: 'temperature'
[00:05:09][C][template.sensor:023]:   State Class: 'measurement'
[00:05:09][C][template.sensor:023]:   Unit of Measurement: '°C'
[00:05:09][C][template.sensor:023]:   Accuracy Decimals: 1
[00:05:09][C][template.sensor:023]:   Icon: 'mdi:thermometer-lines'
[00:05:09][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:09][C][template.sensor:023]: Template Sensor 'Eco Speicher Soll Temperatur'
[00:05:09][C][template.sensor:023]:   Device Class: 'temperature'
[00:05:09][C][template.sensor:023]:   State Class: 'measurement'
[00:05:09][C][template.sensor:023]:   Unit of Measurement: '°C'
[00:05:09][C][template.sensor:023]:   Accuracy Decimals: 1
[00:05:09][C][template.sensor:023]:   Icon: 'mdi:thermometer-low'
[00:05:09][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:09][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:09][D][canbus:032]: send extended id=0x680 size=7
[00:05:09][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:09][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:09][D][canbus:032]: send extended id=0x680 size=7
[00:05:09][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:09][D][canbus:068]: received can message (#1) std can_id=0x1c0 size=7
[00:05:09][I][main:1067]: Antwort von 1c0 Hex: f2 0 ff 9 1f c0 0
[00:05:09][I][main:1068]: Antwort von 1c0 Float: 49152.000000
[00:05:09][I][main:1069]: Antwort von 1c0 Dez.: 192 0
[00:05:09][I][main:1070]: Antwort klein von 1c0 Float: 2335.000000
[00:05:09][I][main:1071]: Antwort klein von 1c0 Dez.: 9 31
[00:05:09][D][canbus:068]: received can message (#2) std can_id=0x1c0 size=7
[00:05:09][I][main:1067]: Antwort von 1c0 Hex: f2 0 ff 9 1f c0 0
[00:05:09][I][main:1068]: Antwort von 1c0 Float: 49152.000000
[00:05:09][I][main:1069]: Antwort von 1c0 Dez.: 192 0
[00:05:09][I][main:1070]: Antwort klein von 1c0 Float: 2335.000000
[00:05:09][I][main:1071]: Antwort klein von 1c0 Dez.: 9 31
[00:05:09][C][template.sensor:023]: Template Sensor 'Komfort Speicher Soll Temperatur'
[00:05:09][C][template.sensor:023]:   Device Class: 'temperature'
[00:05:09][C][template.sensor:023]:   State Class: 'measurement'
[00:05:09][C][template.sensor:023]:   Unit of Measurement: '°C'
[00:05:09][C][template.sensor:023]:   Accuracy Decimals: 1
[00:05:09][C][template.sensor:023]:   Icon: 'mdi:thermometer-high'
[00:05:09][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:09][C][template.sensor:023]: Template Sensor 'Volumenstrom'
[00:05:09][C][template.sensor:023]:   State Class: 'measurement'
[00:05:09][C][template.sensor:023]:   Unit of Measurement: 'l/min'
[00:05:09][C][template.sensor:023]:   Accuracy Decimals: 2
[00:05:09][C][template.sensor:023]:   Icon: 'mdi:waves-arrow-right'
[00:05:09][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:09][C][template.sensor:023]: Template Sensor 'Heizungsdruck'
[00:05:09][C][template.sensor:023]:   Device Class: 'pressure'
[00:05:09][C][template.sensor:023]:   State Class: 'measurement'
[00:05:09][C][template.sensor:023]:   Unit of Measurement: 'bar'
[00:05:09][C][template.sensor:023]:   Accuracy Decimals: 2
[00:05:09][C][template.sensor:023]:   Icon: 'mdi:gauge'
[00:05:09][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:09][C][template.sensor:023]: Template Sensor 'Puffertemperatur'
[00:05:09][C][template.sensor:023]:   Device Class: 'temperature'
[00:05:09][C][template.sensor:023]:   State Class: 'measurement'
[00:05:09][C][template.sensor:023]:   Unit of Measurement: '°C'
[00:05:09][C][template.sensor:023]:   Accuracy Decimals: 1
[00:05:09][C][template.sensor:023]:   Icon: 'mdi:thermometer-high'
[00:05:09][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:09][C][template.sensor:023]: Template Sensor 'Luftfeuchtigkeit Wohnraum'
[00:05:09][C][template.sensor:023]:   Device Class: 'humidity'
[00:05:09][C][template.sensor:023]:   State Class: 'measurement'
[00:05:09][C][template.sensor:023]:   Unit of Measurement: '%rH'
[00:05:09][C][template.sensor:023]:   Accuracy Decimals: 1
[00:05:09][C][template.sensor:023]:   Icon: 'mdi:water-percent'
[00:05:09][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:09][C][template.sensor:023]: Template Sensor 'Temperatur Wohnraum'
[00:05:09][C][template.sensor:023]:   Device Class: 'temperature'
[00:05:09][C][template.sensor:023]:   State Class: 'measurement'
[00:05:09][C][template.sensor:023]:   Unit of Measurement: '°C'
[00:05:09][C][template.sensor:023]:   Accuracy Decimals: 1
[00:05:09][C][template.sensor:023]:   Icon: 'mdi:thermometer-lines'
[00:05:09][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:09][C][template.sensor:023]: Template Sensor 'Stromverbrauch Warmwasser heute'
[00:05:09][C][template.sensor:023]:   Device Class: 'energy'
[00:05:09][C][template.sensor:023]:   State Class: 'measurement'
[00:05:09][C][template.sensor:023]:   Unit of Measurement: 'kWh'
[00:05:09][C][template.sensor:023]:   Accuracy Decimals: 3
[00:05:09][C][template.sensor:023]:   Icon: 'mdi:transmission-tower'
[00:05:09][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:09][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:09][D][canbus:032]: send extended id=0x680 size=7
[00:05:09][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:09][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:09][D][canbus:032]: send extended id=0x680 size=7
[00:05:09][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:09][D][sensor:125]: 'Verdichterstarts': Sending state 0.00000 a.u. with 0 decimals of accuracy
[00:05:09][D][canbus:068]: received can message (#1) std can_id=0x1c0 size=7
[00:05:09][I][main:1067]: Antwort von 1c0 Hex: f2 0 ff 7 1e c0 0
[00:05:09][I][main:1068]: Antwort von 1c0 Float: 49152.000000
[00:05:09][I][main:1069]: Antwort von 1c0 Dez.: 192 0
[00:05:09][I][main:1070]: Antwort klein von 1c0 Float: 1822.000000
[00:05:09][I][main:1071]: Antwort klein von 1c0 Dez.: 7 30
[00:05:09][D][canbus:068]: received can message (#2) std can_id=0x1c0 size=7
[00:05:09][I][main:1067]: Antwort von 1c0 Hex: f2 0 ff 7 1f c0 0
[00:05:09][I][main:1068]: Antwort von 1c0 Float: 49152.000000
[00:05:09][I][main:1069]: Antwort von 1c0 Dez.: 192 0
[00:05:09][I][main:1070]: Antwort klein von 1c0 Float: 1823.000000
[00:05:09][I][main:1071]: Antwort klein von 1c0 Dez.: 7 31
[00:05:09][C][template.sensor:023]: Template Sensor 'WM Heizung heute'
[00:05:09][C][template.sensor:023]:   Device Class: 'energy'
[00:05:09][C][template.sensor:023]:   State Class: 'measurement'
[00:05:09][C][template.sensor:023]:   Unit of Measurement: 'kWh'
[00:05:09][C][template.sensor:023]:   Accuracy Decimals: 3
[00:05:09][C][template.sensor:023]:   Icon: 'mdi:water-boiler'
[00:05:09][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:10][C][template.sensor:023]: Template Sensor 'Stromverbrauch Heizung heute'
[00:05:10][C][template.sensor:023]:   Device Class: 'energy'
[00:05:10][C][template.sensor:023]:   State Class: 'measurement'
[00:05:10][C][template.sensor:023]:   Unit of Measurement: 'kWh'
[00:05:10][C][template.sensor:023]:   Accuracy Decimals: 3
[00:05:10][C][template.sensor:023]:   Icon: 'mdi:transmission-tower'
[00:05:10][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:10][C][template.sensor:023]: Template Sensor 'WM Warmwasser heute'
[00:05:10][C][template.sensor:023]:   Device Class: 'energy'
[00:05:10][C][template.sensor:023]:   State Class: 'measurement'
[00:05:10][C][template.sensor:023]:   Unit of Measurement: 'kWh'
[00:05:10][C][template.sensor:023]:   Accuracy Decimals: 3
[00:05:10][C][template.sensor:023]:   Icon: 'mdi:water-boiler'
[00:05:10][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:10][C][template.sensor:023]: Template Sensor 'Stromverbrauch Warmwasser total'
[00:05:10][C][template.sensor:023]:   Device Class: 'energy'
[00:05:10][C][template.sensor:023]:   State Class: 'total_increasing'
[00:05:10][C][template.sensor:023]:   Unit of Measurement: 'MWh'
[00:05:10][C][template.sensor:023]:   Accuracy Decimals: 3
[00:05:10][C][template.sensor:023]:   Icon: 'mdi:transmission-tower'
[00:05:10][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:10][C][template.sensor:023]: Template Sensor 'Stromverbrauch Heizung total'
[00:05:10][C][template.sensor:023]:   Device Class: 'energy'
[00:05:10][C][template.sensor:023]:   State Class: 'total_increasing'
[00:05:10][C][template.sensor:023]:   Unit of Measurement: 'MWh'
[00:05:10][C][template.sensor:023]:   Accuracy Decimals: 3
[00:05:10][C][template.sensor:023]:   Icon: 'mdi:transmission-tower'
[00:05:10][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:10][C][template.sensor:023]: Template Sensor 'WM Heizen total'
[00:05:10][C][template.sensor:023]:   Device Class: 'energy'
[00:05:10][C][template.sensor:023]:   State Class: 'total_increasing'
[00:05:10][C][template.sensor:023]:   Unit of Measurement: 'MWh'
[00:05:10][C][template.sensor:023]:   Accuracy Decimals: 3
[00:05:10][C][template.sensor:023]:   Icon: 'mdi:water-boiler'
[00:05:10][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:10][C][template.sensor:023]: Template Sensor 'WM Warmwasser total'
[00:05:10][C][template.sensor:023]:   Device Class: 'energy'
[00:05:10][C][template.sensor:023]:   State Class: 'total_increasing'
[00:05:10][C][template.sensor:023]:   Unit of Measurement: 'MWh'
[00:05:10][C][template.sensor:023]:   Accuracy Decimals: 3
[00:05:10][C][template.sensor:023]:   Icon: 'mdi:water-boiler'
[00:05:10][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:10][C][template.sensor:023]: Template Sensor 'WM elektr. Warmwasser total'
[00:05:10][C][template.sensor:023]:   Device Class: 'energy'
[00:05:10][C][template.sensor:023]:   State Class: 'total_increasing'
[00:05:10][C][template.sensor:023]:   Unit of Measurement: 'kWh'
[00:05:10][C][template.sensor:023]:   Accuracy Decimals: 3
[00:05:10][C][template.sensor:023]:   Icon: 'mdi:water-boiler'
[00:05:10][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:10][C][template.sensor:023]: Template Sensor 'WM elektr. heizen total'
[00:05:10][C][template.sensor:023]:   Device Class: 'energy'
[00:05:10][C][template.sensor:023]:   State Class: 'total_increasing'
[00:05:10][C][template.sensor:023]:   Unit of Measurement: 'kWh'
[00:05:10][C][template.sensor:023]:   Accuracy Decimals: 3
[00:05:10][C][template.sensor:023]:   Icon: 'mdi:water-boiler'
[00:05:10][C][template.sensor:024]:   Update Interval: 60.0s
[00:05:10][C][canbus:021]: config standard id=0x680
[00:05:10][C][template.binary_sensor:018]: Template Binary Sensor 'update_sensor'
[00:05:10][C][restart.button:017]: Restart Button 'Heizraum ESP restart'
[00:05:10][D][canbus:068]: received can message (#1) std can_id=0x100 size=7
[00:05:10][I][main:1440]: Antwort von 100 Hex: 39 0 ff 1 de 0 0
[00:05:10][I][main:1441]: Antwort von 100 Float: 0.000000
[00:05:10][I][main:1442]: Antwort von 100 Dez.: 0 0
[00:05:10][I][main:1443]: Antwort klein von 100 Float: 478.000000
[00:05:10][I][main:1444]: Antwort klein von 100 Dez.: 1 222
[00:05:10][D][canbus:068]: received can message (#2) std can_id=0x1c0 size=7
[00:05:10][I][main:1067]: Antwort von 1c0 Hex: 22 0 ff 1 de 0 7
[00:05:10][I][main:1068]: Antwort von 1c0 Float: 7.000000
[00:05:10][I][main:1069]: Antwort von 1c0 Dez.: 0 7
[00:05:10][I][main:1070]: Antwort klein von 1c0 Float: 478.000000
[00:05:10][I][main:1071]: Antwort klein von 1c0 Dez.: 1 222
[00:05:11][D][canbus:068]: received can message (#1) std can_id=0x680 size=7
[00:05:11][D][canbus:068]: received can message (#2) std can_id=0x1c0 size=7
[00:05:11][I][main:1067]: Antwort von 1c0 Hex: f0 7d e 0 79 0 0
[00:05:11][I][main:1068]: Antwort von 1c0 Float: 0.000000
[00:05:11][I][main:1069]: Antwort von 1c0 Dez.: 0 0
[00:05:11][I][main:1070]: Antwort klein von 1c0 Float: 121.000000
[00:05:11][I][main:1071]: Antwort klein von 1c0 Dez.: 0 121
[00:05:11][D][canbus:068]: received can message (#3) std can_id=0x1c0 size=7
[00:05:11][I][main:1067]: Antwort von 1c0 Hex: e0 7d ff 1 f7 1 7
[00:05:11][I][main:1068]: Antwort von 1c0 Float: 263.000000
[00:05:11][I][main:1069]: Antwort von 1c0 Dez.: 1 7
[00:05:11][I][main:1070]: Antwort klein von 1c0 Float: 503.000000
[00:05:11][I][main:1071]: Antwort klein von 1c0 Dez.: 1 247
[00:05:11][C][captive_portal:088]: Captive Portal:
[00:05:11][C][mdns:084]: mDNS:
[00:05:11][C][mdns:085]:   Hostname: waermepumpe
[00:05:11][C][ota:085]: Over-The-Air Updates:
[00:05:11][C][ota:086]:   Address: waermepumpe.local:3232
[00:05:11][C][ota:089]:   Using Password.
[00:05:11][C][api:138]: API Server:
[00:05:11][C][api:139]:   Address: waermepumpe.local:6053
[00:05:11][C][api:143]:   Using noise encryption: NO
[00:05:11][C][homeassistant.text_sensor:023]: Homeassistant Text Sensor 'ww_komfort_temp'
[00:05:11][C][homeassistant.text_sensor:024]:   Entity ID: 'input_text.ww_komfort_temp'
[00:05:11][C][homeassistant.text_sensor:023]: Homeassistant Text Sensor 'ww_eco_temp'
[00:05:11][C][homeassistant.text_sensor:024]:   Entity ID: 'input_text.ww_eco_temp'
[00:05:12][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:12][D][canbus:032]: send extended id=0x680 size=7
[00:05:12][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:12][D][canbus:068]: received can message (#1) std can_id=0x1c0 size=7
[00:05:12][I][main:1067]: Antwort von 1c0 Hex: f0 7d e 0 79 0 0
[00:05:12][I][main:1068]: Antwort von 1c0 Float: 0.000000
[00:05:12][I][main:1069]: Antwort von 1c0 Dez.: 0 0
[00:05:12][I][main:1070]: Antwort klein von 1c0 Float: 121.000000
[00:05:12][I][main:1071]: Antwort klein von 1c0 Dez.: 0 121
[00:05:12][D][canbus:068]: received can message (#2) std can_id=0x1c0 size=7
[00:05:12][I][main:1067]: Antwort von 1c0 Hex: f2 0 fe a 7 1 fc
[00:05:12][I][main:1068]: Antwort von 1c0 Float: 508.000000
[00:05:12][I][main:1069]: Antwort von 1c0 Dez.: 1 252
[00:05:12][I][main:1070]: Antwort klein von 1c0 Float: 2567.000000
[00:05:12][I][main:1071]: Antwort klein von 1c0 Dez.: 10 7
[00:05:13][D][canbus:068]: received can message (#1) std can_id=0x680 size=7
[00:05:13][D][canbus:068]: received can message (#2) std can_id=0x780 size=7
[00:05:14][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:14][D][canbus:032]: send extended id=0x680 size=7
[00:05:14][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:14][D][canbus:068]: received can message (#1) std can_id=0x700 size=7
[00:05:14][I][main:1404]: Antwort von 700 Hex: d2 0 ff 1 dd 0 43
[00:05:14][I][main:1405]: Antwort von 700 Float: 67.000000
[00:05:14][I][main:1406]: Antwort von 700 Dez.: 0 67
[00:05:14][I][main:1407]: Antwort klein von 700 Float: 477.000000
[00:05:14][I][main:1408]: Antwort klein von 700 Dez.: 1 221
[00:05:14][D][canbus:068]: received can message (#2) std can_id=0x1c0 size=7
[00:05:14][I][main:1067]: Antwort von 1c0 Hex: f2 0 3 1 e2 0 0
[00:05:14][I][main:1068]: Antwort von 1c0 Float: 0.000000
[00:05:14][I][main:1070]: Antwort klein von 1c0 Float: 482.000000
[00:05:14][I][main:1071]: Antwort klein von 1c0 Dez.: 1 226
[00:05:14][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:14][D][canbus:032]: send extended id=0x680 size=7
[00:05:14][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:14][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:14][D][canbus:032]: send extended id=0x680 size=7
[00:05:14][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:14][D][canbus:068]: received can message (#1) std can_id=0x780 size=7
[00:05:14][D][canbus:068]: received can message (#2) std can_id=0x1c0 size=7
[00:05:14][I][main:1067]: Antwort von 1c0 Hex: f2 0 ff 9 1e c0 0
[00:05:14][I][main:1068]: Antwort von 1c0 Float: 49152.000000
[00:05:14][I][main:1069]: Antwort von 1c0 Dez.: 192 0
[00:05:14][I][main:1070]: Antwort klein von 1c0 Float: 2334.000000
[00:05:14][I][main:1071]: Antwort klein von 1c0 Dez.: 9 30
[00:05:14][D][canbus:068]: received can message (#3) std can_id=0x1c0 size=7
[00:05:14][I][main:1067]: Antwort von 1c0 Hex: f2 0 ff 9 1f c0 0
[00:05:14][I][main:1068]: Antwort von 1c0 Float: 49152.000000
[00:05:14][I][main:1069]: Antwort von 1c0 Dez.: 192 0
[00:05:14][I][main:1070]: Antwort klein von 1c0 Float: 2335.000000
[00:05:14][I][main:1071]: Antwort klein von 1c0 Dez.: 9 31
[00:05:14][D][canbus:068]: received can message (#4) std can_id=0x1c0 size=7
[00:05:14][I][main:1067]: Antwort von 1c0 Hex: 22 0 e 0 7d 0 0
[00:05:14][I][main:1068]: Antwort von 1c0 Float: 0.000000
[00:05:14][I][main:1069]: Antwort von 1c0 Dez.: 0 0
[00:05:14][I][main:1070]: Antwort klein von 1c0 Float: 125.000000
[00:05:14][I][main:1071]: Antwort klein von 1c0 Dez.: 0 125
[00:05:14][D][canbus:068]: received can message (#5) std can_id=0x100 size=7
[00:05:14][I][main:1440]: Antwort von 100 Hex: 39 0 e 0 0 0 0
[00:05:14][I][main:1441]: Antwort von 100 Float: 0.000000
[00:05:14][I][main:1442]: Antwort von 100 Dez.: 0 0
[00:05:14][I][main:1443]: Antwort klein von 100 Float: 0.000000
[00:05:14][I][main:1444]: Antwort klein von 100 Dez.: 0 0
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:15][D][canbus:032]: send extended id=0x680 size=7
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:15][D][canbus:032]: send extended id=0x680 size=7
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:15][D][canbus:068]: received can message (#1) std can_id=0x1c0 size=7
[00:05:15][I][main:1067]: Antwort von 1c0 Hex: f2 0 ff 9 2f c0 0
[00:05:15][I][main:1068]: Antwort von 1c0 Float: 49152.000000
[00:05:15][I][main:1069]: Antwort von 1c0 Dez.: 192 0
[00:05:15][I][main:1070]: Antwort klein von 1c0 Float: 2351.000000
[00:05:15][I][main:1071]: Antwort klein von 1c0 Dez.: 9 47
[00:05:15][D][canbus:068]: received can message (#2) std can_id=0x1c0 size=7
[00:05:15][I][main:1067]: Antwort von 1c0 Hex: f2 0 ff 9 2f c0 0
[00:05:15][I][main:1068]: Antwort von 1c0 Float: 49152.000000
[00:05:15][I][main:1069]: Antwort von 1c0 Dez.: 192 0
[00:05:15][I][main:1070]: Antwort klein von 1c0 Float: 2351.000000
[00:05:15][I][main:1071]: Antwort klein von 1c0 Dez.: 9 47
[00:05:15][D][canbus:068]: received can message (#1) std can_id=0x680 size=7
[00:05:15][D][canbus:068]: received can message (#2) std can_id=0x680 size=7
[00:05:15][D][canbus:068]: received can message (#1) std can_id=0x680 size=7
[00:05:15][D][canbus:068]: received can message (#2) std can_id=0x680 size=7
[00:05:15][D][canbus:068]: received can message (#3) std can_id=0x780 size=7
[00:05:15][D][canbus:068]: received can message (#4) std can_id=0x680 size=7
[00:05:15][D][canbus:068]: received can message (#1) std can_id=0x700 size=7
[00:05:15][I][main:1404]: Antwort von 700 Hex: d2 0 17 1 cf 0 0
[00:05:15][I][main:1405]: Antwort von 700 Float: 0.000000
[00:05:15][I][main:1406]: Antwort von 700 Dez.: 0 0
[00:05:15][I][main:1407]: Antwort klein von 700 Float: 463.000000
[00:05:15][I][main:1408]: Antwort klein von 700 Dez.: 1 207
[00:05:15][D][canbus:068]: received can message (#1) std can_id=0x780 size=7
[00:05:15][D][canbus:068]: received can message (#1) std can_id=0x100 size=7
[00:05:15][I][main:1440]: Antwort von 100 Hex: 39 0 17 0 0 0 0
[00:05:15][I][main:1441]: Antwort von 100 Float: 0.000000
[00:05:15][I][main:1442]: Antwort von 100 Dez.: 0 0
[00:05:15][I][main:1443]: Antwort klein von 100 Float: 0.000000
[00:05:15][I][main:1444]: Antwort klein von 100 Dez.: 0 0
[00:05:15][D][canbus:068]: received can message (#2) std can_id=0x1c0 size=7
[00:05:15][I][main:1067]: Antwort von 1c0 Hex: 22 0 17 1 47 0 0
[00:05:15][I][main:1068]: Antwort von 1c0 Float: 0.000000
[00:05:15][I][main:1069]: Antwort von 1c0 Dez.: 0 0
[00:05:15][I][main:1070]: Antwort klein von 1c0 Float: 327.000000
[00:05:15][I][main:1071]: Antwort klein von 1c0 Dez.: 1 71
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:15][D][canbus:032]: send extended id=0x680 size=7
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:15][D][canbus:032]: send extended id=0x680 size=7
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:15][D][canbus:032]: send extended id=0x680 size=7
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:15][D][canbus:032]: send extended id=0x680 size=7
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:15][D][canbus:032]: send extended id=0x680 size=7
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:15][D][canbus:032]: send extended id=0x680 size=7
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:15][D][sensor:125]: 'COP-Wert Warmwasser': Sending state nan a.u. with 2 decimals of accuracy
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:15][D][canbus:032]: send extended id=0x680 size=7
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:15][D][canbus:032]: send extended id=0x680 size=7
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:15][D][canbus:032]: send extended id=0x680 size=7
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:15][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:15][D][canbus:032]: send extended id=0x680 size=7
[00:05:16][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:16][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:16][D][canbus:032]: send extended id=0x680 size=7
[00:05:16][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:16][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:16][D][canbus:032]: send extended id=0x680 size=7
[00:05:16][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:16][D][sensor:125]: 'COP-Wert Heizung': Sending state nan a.u. with 2 decimals of accuracy
[00:05:16][D][sensor:125]: 'COP-Wert Gesamt': Sending state nan a.u. with 2 decimals of accuracy
[00:05:16][D][canbus:068]: received can message (#1) std can_id=0x1c0 size=7
[00:05:16][I][main:1067]: Antwort von 1c0 Hex: f2 0 ff 9 2e c0 0
[00:05:16][I][main:1068]: Antwort von 1c0 Float: 49152.000000
[00:05:16][I][main:1069]: Antwort von 1c0 Dez.: 192 0
[00:05:16][I][main:1070]: Antwort klein von 1c0 Float: 2350.000000
[00:05:16][I][main:1071]: Antwort klein von 1c0 Dez.: 9 46
[00:05:16][D][canbus:068]: received can message (#2) std can_id=0x1c0 size=7
[00:05:16][I][main:1067]: Antwort von 1c0 Hex: f2 0 ff 9 29 c0 0
[00:05:16][I][main:1068]: Antwort von 1c0 Float: 49152.000000
[00:05:16][I][main:1069]: Antwort von 1c0 Dez.: 192 0
[00:05:16][I][main:1070]: Antwort klein von 1c0 Float: 2345.000000
[00:05:16][I][main:1071]: Antwort klein von 1c0 Dez.: 9 41
[00:05:16][D][canbus:068]: received can message (#3) std can_id=0x1c0 size=7
[00:05:16][I][main:1067]: Antwort von 1c0 Hex: f2 0 ff 9 2f c0 0
[00:05:16][I][main:1068]: Antwort von 1c0 Float: 49152.000000
[00:05:16][I][main:1069]: Antwort von 1c0 Dez.: 192 0
[00:05:16][I][main:1070]: Antwort klein von 1c0 Float: 2351.000000
[00:05:16][I][main:1071]: Antwort klein von 1c0 Dez.: 9 47
[00:05:16][D][canbus:068]: received can message (#1) std can_id=0x100 size=7
[00:05:16][I][main:1440]: Antwort von 100 Hex: 39 0 f 0 0 0 0
[00:05:16][I][main:1441]: Antwort von 100 Float: 0.000000
[00:05:16][I][main:1442]: Antwort von 100 Dez.: 0 0
[00:05:16][I][main:1443]: Antwort klein von 100 Float: 0.000000
[00:05:16][I][main:1444]: Antwort klein von 100 Dez.: 0 0
[00:05:16][D][canbus:068]: received can message (#1) std can_id=0x1c0 size=7
[00:05:16][I][main:1067]: Antwort von 1c0 Hex: 22 0 f 1 df 0 0
[00:05:16][I][main:1068]: Antwort von 1c0 Float: 0.000000
[00:05:16][I][main:1069]: Antwort von 1c0 Dez.: 0 0
[00:05:16][I][main:1070]: Antwort klein von 1c0 Float: 479.000000
[00:05:16][I][main:1071]: Antwort klein von 1c0 Dez.: 1 223
[00:05:16][D][canbus:068]: received can message (#2) std can_id=0x1c0 size=7
[00:05:16][I][main:1067]: Antwort von 1c0 Hex: f0 7d ff 1 f7 1 7
[00:05:16][I][main:1068]: Antwort von 1c0 Float: 263.000000
[00:05:16][I][main:1069]: Antwort von 1c0 Dez.: 1 7
[00:05:16][I][main:1070]: Antwort klein von 1c0 Float: 503.000000
[00:05:16][I][main:1071]: Antwort klein von 1c0 Dez.: 1 247
[00:05:16][D][canbus:068]: received can message (#3) std can_id=0x1c0 size=7
[00:05:16][I][main:1067]: Antwort von 1c0 Hex: f0 7d e 0 7d 0 0
[00:05:16][I][main:1068]: Antwort von 1c0 Float: 0.000000
[00:05:16][I][main:1069]: Antwort von 1c0 Dez.: 0 0
[00:05:16][I][main:1070]: Antwort klein von 1c0 Float: 125.000000
[00:05:16][I][main:1071]: Antwort klein von 1c0 Dez.: 0 125
[00:05:17][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:17][D][canbus:032]: send extended id=0x680 size=7
[00:05:17][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:17][D][canbus:068]: received can message (#1) std can_id=0x1c0 size=7
[00:05:17][I][main:1067]: Antwort von 1c0 Hex: f0 7d e 0 7d 0 0
[00:05:17][I][main:1068]: Antwort von 1c0 Float: 0.000000
[00:05:17][I][main:1069]: Antwort von 1c0 Dez.: 0 0
[00:05:17][I][main:1070]: Antwort klein von 1c0 Float: 125.000000
[00:05:17][I][main:1071]: Antwort klein von 1c0 Dez.: 0 125
[00:05:17][D][canbus:068]: received can message (#2) std can_id=0x1c0 size=7
[00:05:17][I][main:1068]: Antwort von 1c0 Float: 49152.000000
[00:05:17][I][main:1069]: Antwort von 1c0 Dez.: 192 0
[00:05:17][I][main:1070]: Antwort klein von 1c0 Float: 1918.000000
[00:05:17][I][main:1071]: Antwort klein von 1c0 Dez.: 7 126
[00:05:19][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:19][D][canbus:032]: send extended id=0x680 size=7
[00:05:19][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:19][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:19][D][canbus:032]: send extended id=0x680 size=7
[00:05:19][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:19][D][canbus:068]: received can message (#1) std can_id=0x1c0 size=7
[00:05:19][I][main:1067]: Antwort von 1c0 Hex: f2 0 ff 9 2a c0 0
[00:05:19][I][main:1068]: Antwort von 1c0 Float: 49152.000000
[00:05:20][I][main:1069]: Antwort von 1c0 Dez.: 192 0
[00:05:20][I][main:1070]: Antwort klein von 1c0 Float: 2346.000000
[00:05:20][I][main:1071]: Antwort klein von 1c0 Dez.: 9 42
[00:05:20][D][canbus:068]: received can message (#2) std can_id=0x1c0 size=7
[00:05:20][I][main:1067]: Antwort von 1c0 Hex: f2 0 ff 9 2b c0 0
[00:05:20][I][main:1068]: Antwort von 1c0 Float: 49152.000000
[00:05:20][I][main:1069]: Antwort von 1c0 Dez.: 192 0
[00:05:20][I][main:1070]: Antwort klein von 1c0 Float: 2347.000000
[00:05:20][I][main:1071]: Antwort klein von 1c0 Dez.: 9 43
[00:05:21][D][canbus:068]: received can message (#1) std can_id=0x680 size=7
[00:05:21][D][canbus:068]: received can message (#1) std can_id=0x1c0 size=7
[00:05:21][I][main:1067]: Antwort von 1c0 Hex: f0 7d e 0 7c 0 0
[00:05:21][I][main:1068]: Antwort von 1c0 Float: 0.000000
[00:05:21][I][main:1069]: Antwort von 1c0 Dez.: 0 0
[00:05:21][I][main:1070]: Antwort klein von 1c0 Float: 124.000000
[00:05:21][I][main:1071]: Antwort klein von 1c0 Dez.: 0 124
[00:05:21][D][canbus:068]: received can message (#2) std can_id=0x1c0 size=7
[00:05:21][I][main:1067]: Antwort von 1c0 Hex: e0 7d ff 1 f7 1 7
[00:05:21][I][main:1068]: Antwort von 1c0 Float: 263.000000
[00:05:21][I][main:1069]: Antwort von 1c0 Dez.: 1 7
[00:05:21][I][main:1070]: Antwort klein von 1c0 Float: 503.000000
[00:05:21][I][main:1071]: Antwort klein von 1c0 Dez.: 1 247
[00:05:22][D][binary_sensor:036]: 'update_sensor': Sending state ON
[00:05:22][D][canbus:032]: send extended id=0x680 size=7
[00:05:22][D][binary_sensor:036]: 'update_sensor': Sending state OFF
[00:05:22][D][canbus:068]: received can message (#1) std can_id=0x1c0 size=7
[00:05:22][I][main:1067]: Antwort von 1c0 Hex: f0 7d ff 1 f7 1 7
[00:05:22][I][main:1068]: Antwort von 1c0 Float: 263.000000
[00:05:22][I][main:1069]: Antwort von 1c0 Dez.: 1 7
[00:05:22][I][main:1070]: Antwort klein von 1c0 Float: 503.000000
[00:05:22][I][main:1071]: Antwort klein von 1c0 Dez.: 1 247
[00:05:22][D][canbus:068]: received can message (#2) std can_id=0x1c0 size=7
[00:05:22][I][main:1067]: Antwort von 1c0 Hex: f2 0 ff 1 f7 1 7

Does this mean that the heatpump has 0x1c0 rather than 0x180? How do I need to change the lambda functions in this case?

Hi, thanks you guys for sharing your achievements. I was able to successfully connect my wpc 05 to the home assistant. A Wemos d1 mini, MCP2515 CAN bus module from AZ Delivery and ESPHome are used. On the configurations already published here, only the source temperature (is this the correct translation for Quellentemperatur :wink: address had to be adjusted.

Here is my config

captive_portal:

globals:
  - id: el_aufnahmeleistung_ww_tag_wh_float
    type: float
    restore_value: yes
  - id: el_aufnahmeleistung_ww_tag_wh_flag
    type: bool
    restore_value: yes
  - id: el_aufnahmeleistung_ww_tag_kwh
    type: float
    restore_value: yes
  - id: el_aufnahmeleistung_ww_tag_kwh_flag
    type: bool
    restore_value: yes

  - id: el_aufnahmeleistung_heiz_tag_wh_float
    type: float
    restore_value: yes
  - id: el_aufnahmeleistung_heiz_tag_wh_flag
    type: bool
    restore_value: yes
  - id: el_aufnahmeleistung_heiz_tag_kwh
    type: float
    restore_value: yes
  - id: el_aufnahmeleistung_heiz_tag_kwh_flag
    type: bool
    restore_value: yes

  - id: el_aufnahmeleistung_ww_total_kWh_float
    type: float
    restore_value: yes
  - id: el_aufnahmeleistung_ww_total_kWh_flag
    type: bool
    restore_value: yes
  - id: el_aufnahmeleistung_ww_total_mWh
    type: float
    restore_value: yes
  - id: el_aufnahmeleistung_ww_total_mWh_flag
    type: bool
    restore_value: yes

  - id: el_aufnahmeleistung_heiz_total_kWh_float
    type: float
    restore_value: yes
  - id: el_aufnahmeleistung_heiz_total_kWh_flag
    type: bool
    restore_value: yes
  - id: el_aufnahmeleistung_heiz_total_mWh
    type: float
    restore_value: yes
  - id: el_aufnahmeleistung_heiz_total_mWh_flag
    type: bool
    restore_value: yes

  - id: waermemertrag_ww_tag_wh_float
    type: float
    restore_value: yes
  - id: waermemertrag_ww_tag_wh_flag
    type: bool
    restore_value: yes
  - id: waermemertrag_ww_tag_kwh
    type: float
    restore_value: yes
  - id: waermemertrag_ww_tag_kwh_flag
    type: bool
    
  - id: waermemertrag_electr_ww_tag_wh_float
    type: float
    restore_value: yes
  - id: waermemertrag_electr_ww_tag_wh_flag
    type: bool
    restore_value: yes
  - id: waermemertrag_electr_ww_tag_kwh
    type: float
    restore_value: yes
  - id: waermemertrag_electr_ww_tag_kwh_flag
    type: bool    
    restore_value: yes

  - id: waermemertrag_heiz_tag_wh_float
    type: float
    restore_value: yes
  - id: waermemertrag_heiz_tag_wh_flag
    type: bool
    restore_value: yes
  - id: waermemertrag_heiz_tag_kwh
    type: float
    restore_value: yes
  - id: waermemertrag_heiz_tag_kwh_flag
    type: bool
    restore_value: yes 

  - id: waermemertrag_electr_heiz_tag_wh_float
    type: float
    restore_value: yes
  - id: waermemertrag_electr_heiz_tag_wh_flag
    type: bool
    restore_value: yes
  - id: waermemertrag_electr_heiz_tag_kwh
    type: float
    restore_value: yes
  - id: waermemertrag_electr_heiz_tag_kwh_flag
    type: bool
    restore_value: yes 

  - id: waermemertrag_ww_total_kWh_float
    type: float
    restore_value: yes
  - id: waermemertrag_ww_total_kWh_flag
    type: bool
    restore_value: yes
  - id: waermemertrag_ww_total_mWh
    type: float
    restore_value: yes
  - id: waermemertrag_ww_total_mWh_flag
    type: bool
    restore_value: yes

  - id: waermemertrag_heiz_total_kWh_float
    type: float
    restore_value: yes
  - id: waermemertrag_heiz_total_kWh_flag
    type: bool
    restore_value: yes
  - id: waermemertrag_heiz_total_mWh
    type: float
    restore_value: yes
  - id: waermemertrag_heiz_total_mWh_flag
    type: bool
    restore_value: yes

  - id: waermemertrag_electr_heiz_total_kWh_float
    type: float
    restore_value: yes
  - id: waermemertrag_electr_heiz_total_kWh_flag
    type: bool
    restore_value: yes
  - id: waermemertrag_electr_heiz_total_mWh
    type: float
    restore_value: yes
  - id: waermemertrag_electr_heiz_total_mWh_flag
    type: bool
    restore_value: yes

  - id: waermemertrag_electr_ww_total_kWh_float
    type: float
    restore_value: yes
  - id: waermemertrag_electr_ww_total_kWh_flag
    type: bool
    restore_value: yes
  - id: waermemertrag_electr_ww_total_mWh
    type: float
    restore_value: yes
  - id: waermemertrag_electr_ww_total_mWh_flag
    type: bool
    restore_value: yes

sensor:
  - platform: template
    name: "Außentemperatur"
    id: temperature_outside
    unit_of_measurement: "°C"
    icon: "mdi:thermometer-lines"
    device_class: "temperature"
    state_class: "measurement"
    accuracy_decimals: 1

  - platform: template
    name: "Quellentemperatur"
    id: temperature_source
    unit_of_measurement: "°C"
    icon: "mdi:thermometer-lines"
    device_class: "temperature"
    state_class: "measurement"
    accuracy_decimals: 1

  - platform: template
    name: "Warmwassertemperatur"
    id: temperature_water
    unit_of_measurement: "°C"
    icon: "mdi:thermometer-lines"
    device_class: "temperature"
    state_class: "measurement"
    accuracy_decimals: 1

  - platform: template
    name: "Vorlauftemperatur Heizung"
    id: temperature_forerun
    unit_of_measurement: "°C"
    icon: "mdi:waves-arrow-right"
    device_class: "temperature"
    state_class: "measurement"
    accuracy_decimals: 1

  - platform: template
    name: "RĂźcklauftemperatur Heizung"
    id: temperature_return
    unit_of_measurement: "°C"
    icon: "mdi:waves-arrow-left"
    device_class: "temperature"
    state_class: "measurement"
    accuracy_decimals: 1

  - platform: template
    name: "Stromverbrauch Warmwasser heute"
    id: daily_electric_energy_water
    unit_of_measurement: "kWh"
    device_class: "energy"
    state_class: "measurement"
    accuracy_decimals: 3
    icon: "mdi:transmission-tower"

  - platform: template
    name: "Stromverbrauch Heizung heute"
    id: daily_electric_energy_heating
    unit_of_measurement: "kWh"
    device_class: "energy"
    state_class: "measurement"
    icon: "mdi:transmission-tower"
    accuracy_decimals: 3

  - platform: template
    name: "Stromverbrauch Warmwasser total"
    id: total_electric_energy_water
    unit_of_measurement: "MWh"
    device_class: "energy"
    state_class: "total_increasing"
    icon: "mdi:transmission-tower"
    accuracy_decimals: 3

  - platform: template
    name: "Stromverbrauch Heizung total"
    id: total_electric_energy_heating
    unit_of_measurement: "MWh"
    device_class: "energy"
    icon: "mdi:transmission-tower"
    state_class: "total_increasing"
    accuracy_decimals: 3

  - platform: template
    name: "WM Heizung heute"
    id: daily_heating_energy
    unit_of_measurement: "kWh"
    device_class: "energy"
    icon: "mdi:water-boiler"
    state_class: "measurement"
    accuracy_decimals: 3
   
  - platform: template
    name: "WM Heizen total"
    id: total_heating_energy
    unit_of_measurement: "MWh"
    device_class: "energy"
    icon: "mdi:water-boiler"
    state_class: "total_increasing"
    accuracy_decimals: 3

  - platform: template
    name: "WM Warmwasser heute"
    id: daily_heating_energy_water
    unit_of_measurement: "kWh"
    device_class: "energy"
    icon: "mdi:water-boiler"
    state_class: "measurement"
    accuracy_decimals: 3

  - platform: template
    name: "WM Warmwasser total"
    id: total_heating_energy_water
    unit_of_measurement: "MWh"
    device_class: "energy"
    icon: "mdi:water-boiler"
    state_class: "total_increasing"
    accuracy_decimals: 3

  - platform: template
    name: "WM elektr. Warmwasser total"
    id: total_electric_heating_energy_water
    unit_of_measurement: "kWh"
    device_class: "energy"
    icon: "mdi:water-boiler"
    state_class: "measurement"
    accuracy_decimals: 3

  - platform: template
    name: "WM elektr. heizen total"
    id: total_electric_heating_energy
    unit_of_measurement: "kWh"
    device_class: "energy"
    icon: "mdi:water-boiler"
    state_class: "measurement"
    accuracy_decimals: 3

binary_sensor:
  - platform: template
    name: "EVU Sperre"
    id: "evu_lock"

time:
  - platform: homeassistant
    id: homeassistant_time
    on_time:
     
      - seconds: /180
        then:


#WM NE WW Summe wh  - ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x22,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms
#WM NE WW Summe kwh  - ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x23,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms


#WM NE Heizen Summe wh - ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x26,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms
#WM NE Heizen Summe kwh - ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x27,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms


#WM WW Tag wh - ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x2a,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms

#WM WW Tag kwh - ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x2b,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms
#WM WW Summe kwh - ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x2c,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms

#WM WW Summe Mwh - ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x2d,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms

#WM Heizen Tag wh - ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x2e,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms

#WM Heizen Tag kwh - ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x2f,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms

#WM Heizen Summe kwh - ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x30,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms
#WM Heizen Summe Mwh - ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x31,0x00,0x00 ]
              can_id: 0x680
          - delay: 10s

          - lambda: |-
              if (id(waermemertrag_electr_ww_total_mWh_flag) and id(waermemertrag_electr_ww_total_kWh_flag)){
              id(waermemertrag_electr_ww_total_mWh) += id(waermemertrag_electr_ww_total_kWh_float);
              id(total_electric_heating_energy_water).publish_state(id(waermemertrag_electr_ww_total_mWh));
              };
              id(waermemertrag_electr_ww_total_mWh_flag)=false;
              id(waermemertrag_electr_ww_total_kWh_flag)=false;
          - lambda: |-
              if (id(waermemertrag_electr_heiz_total_kWh_flag) and id(waermemertrag_electr_heiz_total_mWh_flag)){
              id(waermemertrag_electr_heiz_total_mWh) += id(waermemertrag_electr_heiz_total_kWh_float);
              id(total_electric_heating_energy).publish_state(id(waermemertrag_electr_heiz_total_mWh));
              };
              id(waermemertrag_electr_heiz_total_kWh_flag)=false;
              id(waermemertrag_electr_heiz_total_mWh_flag)=false;       
          - lambda: |-
              if (id(waermemertrag_ww_total_mWh_flag) and id(waermemertrag_ww_total_kWh_flag)){
              id(waermemertrag_ww_total_mWh) += id(waermemertrag_ww_total_kWh_float);
              id(total_heating_energy_water).publish_state(id(waermemertrag_ww_total_mWh));
              };
              id(waermemertrag_ww_total_mWh_flag)=false;
              id(waermemertrag_ww_total_kWh_flag)=false;
          - lambda: |-
              if (id(waermemertrag_heiz_total_kWh_flag) and id(waermemertrag_heiz_total_mWh_flag)){
              id(waermemertrag_heiz_total_mWh) += id(waermemertrag_heiz_total_kWh_float);
              id(total_heating_energy).publish_state(id(waermemertrag_heiz_total_mWh));
              };
              id(waermemertrag_heiz_total_kWh_flag)=false;
              id(waermemertrag_heiz_total_mWh_flag)=false;       
          - lambda: |-
              if (id(waermemertrag_heiz_tag_kwh_flag) and id(waermemertrag_heiz_tag_wh_flag)){
              id(waermemertrag_heiz_tag_kwh) += id(waermemertrag_heiz_tag_wh_float);
              id(daily_heating_energy).publish_state(id(waermemertrag_heiz_tag_kwh));
              };
              id(waermemertrag_heiz_tag_kwh_flag)=false;
              id(waermemertrag_heiz_tag_wh_flag)=false;
          - lambda: |-
              if (id(waermemertrag_ww_tag_kwh_flag) and id(waermemertrag_ww_tag_wh_flag)){
              id(waermemertrag_ww_tag_kwh) += id(waermemertrag_ww_tag_wh_float);
              id(daily_heating_energy_water).publish_state(id(waermemertrag_ww_tag_kwh));
              };
              id(waermemertrag_ww_tag_kwh_flag)=false;
              id(waermemertrag_ww_tag_wh_flag)=false;

#el. Leistungsaufnahme WW Tag Wh -  ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x1a,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms

#el. Leistungsaufnahme WW Tag kWh -  ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x1b,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms

#el. Leistungsaufnahme WW Summe kwh - ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x1c,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms

#el. Leistungsaufnahme WW Summe Mwh - ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x1d,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms

#el. Leistungsaufnahme Heizen Tag Wh - ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x1e,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms

#el. Leistungsaufnahme Heizen Tag Wh - ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x1f,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms

#el. Leistungsaufnahme Heizen Summe kwh - ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x20,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms

#el. Leistungsaufnahme Heizen Summe Mwh - ok
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x09,0x21,0x00,0x00 ]
              can_id: 0x680
          - delay: 10s

          - lambda: |-
              if (id(el_aufnahmeleistung_ww_total_mWh_flag) and id(el_aufnahmeleistung_ww_total_kWh_flag)){
              id(el_aufnahmeleistung_ww_total_mWh) += id(el_aufnahmeleistung_ww_total_kWh_float);
              id(total_electric_energy_water).publish_state(id(el_aufnahmeleistung_ww_total_mWh));
              };
              id(el_aufnahmeleistung_ww_total_mWh_flag)=false;
              id(el_aufnahmeleistung_ww_total_kWh_flag)=false;
          - lambda: |-
              if (id(el_aufnahmeleistung_heiz_total_mWh_flag) and id(el_aufnahmeleistung_heiz_total_kWh_flag)){
              id(el_aufnahmeleistung_heiz_total_mWh) += id(el_aufnahmeleistung_heiz_total_kWh_float);
              id(total_electric_energy_heating).publish_state(id(el_aufnahmeleistung_heiz_total_mWh));
              };
              id(el_aufnahmeleistung_heiz_total_mWh_flag)=false;
              id(el_aufnahmeleistung_heiz_total_mWh_flag)=false;       
          - lambda: |-
              if (id(el_aufnahmeleistung_ww_tag_kwh_flag) and id(el_aufnahmeleistung_ww_tag_wh_flag)){
              id(el_aufnahmeleistung_ww_tag_kwh) += id(el_aufnahmeleistung_ww_tag_wh_float);
              id(daily_electric_energy_water).publish_state(id(el_aufnahmeleistung_ww_tag_kwh));
              };
              id(el_aufnahmeleistung_ww_tag_kwh_flag)=false;
              id(el_aufnahmeleistung_ww_tag_wh_flag)=false;
          - lambda: |-
              if (id(el_aufnahmeleistung_heiz_tag_kwh_flag) and id(el_aufnahmeleistung_heiz_tag_wh_flag)){
              id(el_aufnahmeleistung_heiz_tag_kwh) += id(el_aufnahmeleistung_heiz_tag_wh_float);
              id(daily_electric_energy_heating).publish_state(id(el_aufnahmeleistung_heiz_tag_kwh));
              };
              id(el_aufnahmeleistung_heiz_tag_kwh_flag)=false;
              id(el_aufnahmeleistung_heiz_tag_wh_flag)=false;
          - lambda: |-
              ESP_LOGD("main", "EVU Sperre requested");

#Aussentemperatur 1/10 Frad et dec value - ok /10 0x000c, et_dec_val
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x00,0x0c,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms

#Vorlauftemperatur Hzg - ok 1/10 0x01d6 WPVORLAUFIST
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x01,0xd6,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms 

#Ruecklauftemperatur Hzg - ok 1/10 0x0016 RUECKLAUFISTTEMP
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x00,0x16,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms 

#WW Temperatur - ok + offset 0x000e SPEICHERISTTEMP
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x00,0x0e,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms 

#Quelle IST: - ok 1/10 0x01d4 QUELLE_IST
          - canbus.send:
              data: [ 0x31, 0x00, 0xfa,0x01,0xd4,0x00,0x00 ]
              can_id: 0x680
          - delay: 200ms 

spi:
  id: McpSpi
  clk_pin: GPIO16
  mosi_pin: GPIO5
  miso_pin: GPIO4

canbus:
  - platform: mcp2515
    id: my_mcp2515
    spi_id: McpSpi
    cs_pin: GPIO14
    can_id: 680
    use_extended_id: false
    bit_rate: 20kbps
    on_frame:

#Warmwasser-Temperaturabfrage + Offset 3.9 Grad
    - can_id: 0x180
      then:
        - lambda: |-
            if(x[0]==0xd2 and x[1]==0x00 and x[3]==0x00 and x[4] == 0x0e) {
              float temperature =float((float((int((x[6])+( (x[5])<<8))))/10)+3.9);
              id(temperature_water).publish_state(temperature);
              ESP_LOGD("main", "Temperature received over can is %f", temperature);
            }

#Quellen-Temperaturabfrage
    - can_id: 0x180
      then:
        - lambda: |-
            if(x[0]==0xd2 and x[1]==0x00 and x[3]==0x01 and x[4] == 0xd4) {
              float temperature =float(float((int((x[6])+( (x[5])<<8))))/10);
              id(temperature_source).publish_state(temperature);
              ESP_LOGD("main", "Temperature received over can is %f", temperature);
            }
            
#Vorlauftemperaturabfrage
    - can_id: 0x180
      then:
        - lambda: |-
            if(x[0]==0xd2 and x[1]==0x00 and x[3]==0x01 and x[4] == 0xd6) {
              float temperature =float(float((int((x[6])+( (x[5])<<8))))/10);
              id(temperature_forerun).publish_state(temperature);
              ESP_LOGD("main", "Temperature received over can is %f", temperature);
            }

#Ruecklauftemperaturabfrage
    - can_id: 0x180
      then:
        - lambda: |-
            if(x[0]==0xd2 and x[1]==0x00 and x[3]==0x00 and x[4] == 0x16) {
              float temperature =float(float((int((x[6])+( (x[5])<<8))))/10);
              id(temperature_return).publish_state(temperature);
              ESP_LOGD("main", "Temperature received over can is %f", temperature);
            }

#Aussentemperaturabfrage
    - can_id: 0x180
      then:
        - lambda: |-
            if(x[0]==0xd2 and x[1]==0x00 and x[3]==0x00 and x[4] == 0x0c) {
              float temperature =float(float((int((x[6])+( (x[5])<<8))))/10);
              id(temperature_outside).publish_state(temperature);
              ESP_LOGD("main", "Temperature received over can is %f", temperature);
            }

#Elektrische Leistungsaufnahme Wh /kWh
    - can_id: 0x180
      then:
        - lambda: |-
            if(x[0]==0xd2 and x[1]==0x00 and x[2]==0xfa and x[3]==0x09) {
              if (x[4]==0x1a){
                id(el_aufnahmeleistung_ww_tag_wh_float) = (float((int((x[6])+( (x[5])<<8))))/1000);
                id(el_aufnahmeleistung_ww_tag_wh_flag)=true;
                ESP_LOGD("main", "el_aufnahmeleistung_ww_tag_kwh received over can is %f", id(el_aufnahmeleistung_ww_tag_wh_float));}
              else if (x[4]==0x1e){
                id(el_aufnahmeleistung_heiz_tag_wh_float) = (float((int((x[6])+( (x[5])<<8))))/1000);
                id(el_aufnahmeleistung_heiz_tag_wh_flag) = true;
                ESP_LOGD("main", "el_aufnahmeleistung_heiz_tag_wh received over can is %f", id(el_aufnahmeleistung_heiz_tag_wh_float));}
              else if (x[4]==0x1c){
                id(el_aufnahmeleistung_ww_total_kWh_float) = (float((int((x[6])+( (x[5])<<8))))/1000);
                id(el_aufnahmeleistung_ww_total_kWh_flag)=true;
                ESP_LOGD("main", "el_aufnahmeleistung_ww_total_kkWh received over can is %f", id(el_aufnahmeleistung_ww_total_kWh_float));}
              else if (x[4]==0x20){
                id(el_aufnahmeleistung_heiz_total_kWh_float) = (float((int((x[6])+( (x[5])<<8))))/1000);
                id(el_aufnahmeleistung_heiz_total_kWh_flag) = true;
                ESP_LOGD("main", "el_aufnahmeleistung_heiz_total_kWh received over can is %f", id(el_aufnahmeleistung_heiz_total_kWh_float));}
              }
              if(x[0]==0xd2 and x[1]==0x00 and x[2]==0xfa and x[3]==0x00 and x[4]==0x74){
              if(x[5]==0x80 and x[6]==0x00){
                id(evu_lock).publish_state(false);
                }
              else{
                id(evu_lock).publish_state(true);
              };
            };

#Elektrische Leistungsaufnahme kWh / MWH
    - can_id: 0x180
      then:
        - lambda: |-
            if(x[0]==0xd2 and x[1]==0x00 and x[2]==0xfa and x[3]==0x09) {
              if(x[4]==0x1b){
              id(el_aufnahmeleistung_ww_tag_kwh) =float(int((x[6])+( (x[5])<<8)));
              id(el_aufnahmeleistung_ww_tag_kwh_flag)=true;
              ESP_LOGD("main", "el_aufnahmeleistung_ww_tag_kwh received over can is %f", id(el_aufnahmeleistung_ww_tag_kwh));}
              else if(x[4]==0x1f){
                id(el_aufnahmeleistung_heiz_tag_kwh) =float(int((x[6])+( (x[5])<<8)));
                id(el_aufnahmeleistung_heiz_tag_kwh_flag)=true;
                ESP_LOGD("main", "el_aufnahmeleistung_heiz_tag_kwh received over can is %f", id(el_aufnahmeleistung_heiz_tag_kwh));}
              else if(x[4]==0x1d){
              id(el_aufnahmeleistung_ww_total_mWh) =float(int((x[6])+( (x[5])<<8)));
              id(el_aufnahmeleistung_ww_total_mWh_flag)=true;
              ESP_LOGD("main", "el_aufnahmeleistung_ww_total_mWh received over can is %f", id(el_aufnahmeleistung_ww_total_mWh));}
              else if(x[4]==0x21){
                id(el_aufnahmeleistung_heiz_total_mWh) =float(int((x[6])+( (x[5])<<8)));
                id(el_aufnahmeleistung_heiz_total_mWh_flag)=true;
                ESP_LOGD("main", "el_aufnahmeleistung_heiz_total_mWh received over can is %f", id(el_aufnahmeleistung_heiz_total_mWh));}
            }

#Wärmeertrag WW/Heizung MWh / kWH
    - can_id: 0x180
      then:
        - lambda: |-
            if(x[0]==0xd2 and x[1]==0x00 and x[2]==0xfa and x[3]==0x09) {
              if(x[4]==0x23){
                id(waermemertrag_electr_ww_total_mWh) =float(int((x[6])+( (x[5])<<8)));
                id(waermemertrag_electr_ww_total_mWh_flag)=true;
                ESP_LOGD("main", "waermemertrag_electr_ww_tag_kwh received over can is %f", id(waermemertrag_electr_ww_total_mWh));}
              else if(x[4]==0x27){
                id(waermemertrag_electr_heiz_total_mWh) =float(int((x[6])+( (x[5])<<8)));
                id(waermemertrag_electr_heiz_total_mWh_flag)=true;
                ESP_LOGD("main", "waermemertrag_electr_heiz_tag_kwh received over can is %f", id(waermemertrag_electr_heiz_total_mWh));}
              else if(x[4]==0x2b){
              id(waermemertrag_ww_tag_kwh) =float(int((x[6])+( (x[5])<<8)));
              id(waermemertrag_ww_tag_kwh_flag)=true;
              ESP_LOGD("main", "waermemertrag_ww_tag_kwh received over can is %f", id(waermemertrag_ww_tag_kwh));}
              else if(x[4]==0x2d){
              id(waermemertrag_ww_total_mWh) =float(int((x[6])+( (x[5])<<8)));
              id(waermemertrag_ww_total_mWh_flag)=true;
              ESP_LOGD("main", "waermemertrag_ww_total_mWh received over can is %f", id(waermemertrag_ww_total_mWh));}
              else if(x[4]==0x2f){
                id(waermemertrag_heiz_tag_kwh) =float(int((x[6])+( (x[5])<<8)));
                id(waermemertrag_heiz_tag_kwh_flag)=true;
                ESP_LOGD("main", "waermemertrag_heiz_tag_kwh received over can is %f", id(waermemertrag_heiz_tag_kwh));}
              else if(x[4]==0x31){
                id(waermemertrag_heiz_total_mWh) =float(int((x[6])+( (x[5])<<8)));
                id(waermemertrag_heiz_total_mWh_flag)=true;
                ESP_LOGD("main", "waermemertrag_heiz_total_kWh_float received over can is %f", id(waermemertrag_heiz_total_mWh));}
            }

#Wärmeertrag WW/Heizung Wh / kWH
    - can_id: 0x180
      then:
        - lambda: |-
            if(x[0]==0xd2 and x[1]==0x00 and x[2]==0xfa and x[3]==0x09) {
              if(x[4]==0x22){
                id(waermemertrag_electr_ww_total_kWh_float) =float(int((x[6])+( (x[5])<<8)))/1000;
                id(waermemertrag_electr_ww_total_kWh_flag)=true;
                ESP_LOGD("main", "waermemertrag_electr_ww_tag_wh_float received over can is %f", id(waermemertrag_electr_ww_total_kWh_float));}
              else if(x[4]==0x26){
                id(waermemertrag_electr_heiz_total_kWh_float) =float(int((x[6])+( (x[5])<<8)))/1000;
                id(waermemertrag_electr_heiz_total_kWh_flag)=true;
                ESP_LOGD("main", "waermemertrag_electr_heiz_tag_wh_float received over can is %f", id(waermemertrag_electr_heiz_total_kWh_float));}
              else if(x[4]==0x2a){
              id(waermemertrag_ww_tag_wh_float) =float(int((x[6])+( (x[5])<<8)))/1000;
              id(waermemertrag_ww_tag_wh_flag)=true;
              ESP_LOGD("main", "waermemertrag_ww_tag_wh_float received over can is %f", id(waermemertrag_ww_tag_wh_float));}
              else if(x[4]==0x2c){
              id(waermemertrag_ww_total_kWh_float) =float(int((x[6])+( (x[5])<<8)))/1000;
              id(waermemertrag_ww_total_kWh_flag)=true;
              ESP_LOGD("main", "waermemertrag_ww_total_kWh_float received over can is %f", id(waermemertrag_ww_total_kWh_float));}
              else if(x[4]==0x2e){
                id(waermemertrag_heiz_tag_wh_float) =float(int((x[6])+( (x[5])<<8)))/1000;
                id(waermemertrag_heiz_tag_wh_flag)=true;
                ESP_LOGD("main", "waermemertrag_heiz_tag_wh_float received over can is %f", id(waermemertrag_heiz_tag_wh_float));}
              else if(x[4]==0x30){
                id(waermemertrag_heiz_total_kWh_float) =float(int((x[6])+( (x[5])<<8)))/1000;
                id(waermemertrag_heiz_total_kWh_flag)=true;
                ESP_LOGD("main", "waermemertrag_heiz_total_kWh_float received over can is %f", id(waermemertrag_heiz_total_kWh_float));}
            }

#Show data in raw form as hex-values
    - can_id: 0x180
      then:
        - lambda: |-
              int wert0 = int(x[0]);
              int wert1 =int(x[1]);
              int wert2 =int(x[2]);
              int wert3 =int(x[3]);
              int wert4 =int(x[4]);
              int wert5 =int(x[5]);
              int wert6 =int(x[6]);
              float wert7 = float(int((x[6])+( (x[5])<<8)));
              ESP_LOGD("main", "Antwort von 180 Hex: %x %x %x %x %x %x %x", wert0, wert1, wert2, wert3, wert4, wert5, wert6);
              ESP_LOGD("main", "Antwort von 180 Float: %f", wert7);
              ESP_LOGD("main", "Antwort von 180 Dez.: %i %i", wert5, wert6);

Prototype


3 Likes

This is truly interesting discussion. Great to see people are solving the problems with the help from others.

It seems you have been reading the output from Stiebel Eltron. Have you already controlled the pump through your DIY CAN port device?

Yes, I set the comfort temperature for warm water depending on the PV production using home assistant automation. Since the manual of the heat pump tells me exactly what power is needed, I can wait for a time, when I produce enough power. On days when there is not enough sun, I keep the comfort temperature set equal to the lower eco temperature. So I almost don’t need electric energy for warm water.
If I want warmer water on a certain day, I can also set the needed temperature manually.

2 Likes

Starting my project with Stiebel-Eltron WPF 07. It seems most have used an ESP32 with wifi connection. I’d prefer a wired LAN. Any experience, which component to take for an RJ45-connected LAN?

I personally have no experience with that. But I know that there are ESP32 devices with PoE available on the market

1 Like

I like the idea of adjusting the comfort temperature. To achieve similar I have so far manually switched between the comfort and eco mode on the heat pump control panel. If a sunny day is predicted, I use the Eco mode in the evening to ensure that the heat pump does not heat up unnecessarily at night. Has anyone of you managed to switch between comfort, eco and water heating mode by can bus / home assistant?

I tried that first: I switched from eco to comfort mode. But the heat pump seems not to react as expected. It only took the programmed time to switch to comfort temperature. (Maybe because I have a FEK connected?)

I also figured out how to set the program time. I think this is what the ISG-device from Stiebel Elton does.

But changing the comfort temperature seems easier and more scalable. E.g. when there is not that much sun, but proposed PV production for the next day is lower than for the current day, I slightly increase the comfort temperature to 45°C at the proposed peak time of the current day. When there is a lot of sun available, I increase the comfort temperature to 58 °C.

Any pointers how I need to change the lambda functions? (see log output from my last posting)

To be honest, I’m not very sure, with the id 1c0.
I think this should convert into 38 (because 1C0/8 is hex 38)

If you use CAN-id 680, you don’t have to change most of the if-conditions in the lambda functions.
Most if-conditions query, if a package is received for CAN-id 680 (D0 → First digit “D” + fourth digit “0”)

Mainly you have to change the can_id for the “on_frame” condition.
This is the area, where you should write the can_id 0x1c0 in:

2022-10-29 17_16_20-ESPHome – Home Assistant

And you’ll have to change the lambdas, where requests are sent to the can-bus.
I think you must change the first digit (3) and fourth digit (0) here to 3 and 8 (1C0/8 = hex 38).
But 38 would actually convert to 188 ( 8*(30&F0)+(08+0F) = 188)

Since I’m not sure, maybe someone other can explain what valid address to use here.