• Driek
  • Registratie: Maart 2002
  • Laatst online: 11:42
Stefannn schreef op maandag 6 april 2026 @ 11:01:
[...]

Je moet sowieso even zoeken op smartEVSE en ere in de diverse forums.
Maar ik denk..
- mid meter er in
- aanmelden bij een partij die zelfbouw accepteert

Het is een aantal mensen met smartEVSE gelukt maar alles moet wel in een laadpaal zitten. Niet in groepenkast.
Ik heb deze meter, dus die zou geschikt zijn.
Eastron SDM72D-M V2 Three-phase Energy Meter, Modbus, 100 Amp kWh, DIN rail, with pulse Digital LCD display with backlight. MID/calibrated

Maar helaas alles in de meterkast, en ook geen andere optie.

Tijd van werken, tijd van rusten


  • Stefannn
  • Registratie: Januari 2023
  • Laatst online: 11:55
Driek schreef op maandag 6 april 2026 @ 11:05:
[...]


Maar helaas alles in de meterkast, en ook geen andere optie.
Ik overweeg een laadpaal behuizing op marktplaats te scoren en daar zo’n meter in te zetten. Die kan je op een willekeurige plek tussen meterkast en auto plaatsen.
Wordt dan dus wel spanningsloos als er niet geladen wordt.
Middels display kan je standen handmatig doorgeven. Maar ja… hoe lang wordt dat geaccepteerd?

compleet zelfbouw/zelfprogrammeer home-automation, 57 PV panelen 9000kWh/jaar, 135heatpipes 150L zonneboiler met elektrische naverwarming, 2x Vaillant water/water warmtepomp vws36/4.1 3kW, smartEVSE laadpaal, 1wire/X10/P1, jacuzzi, sauna, ioniq5 EV


  • treepox
  • Registratie: April 2026
  • Laatst online: 06-04 21:31
Wat bedoel je met geaccepteerd?

Mijn Granny lader kan ik ook instellen. Ik heb nog niet meegemaakt dat hij de settings verloor na een tijd spanningsloos. Ik denk dat mijn lader wel 3 weken spanningsloos is geweest.

  • Thepawn
  • Registratie: Augustus 2019
  • Laatst online: 05:50
Stefannn schreef op maandag 6 april 2026 @ 10:46:
Vraagje,
Mijn smartEVSE hangt in de meterkast. I.v.m. ere certificaten overweeg ik een mid meter toe te voegen maar in de meterkast gaat dat waarschijnlijk niet geaccepteerd worden.
Mijn MID-meter bevindt zich in de meterkast, samen met de smartEVSE. Buiten is er alleen de kabel naar de auto. TAP heeft mijn ERE-aanvraag geaccepteerd.

6kWp PV, 15kWh Deye thuisaccu, EV, smartEVSE, Zonneplan, HA


  • Wolly
  • Registratie: Januari 2001
  • Niet online
Thepawn schreef op maandag 6 april 2026 @ 13:43:
[...]


Mijn MID-meter bevindt zich in de meterkast, samen met de smartEVSE. Buiten is er alleen de kabel naar de auto. TAP heeft mijn ERE-aanvraag geaccepteerd.
Moet je een merk/type ingeven bij aanmelding? En moest je ook foto’s aanleveren?

  • Hermarcel
  • Registratie: April 2003
  • Niet online
dingo35 schreef op maandag 6 april 2026 @ 10:46:
@Hermarcel
Hieke in "Zelfbouw Laadpaal ervaringen"

De batterypower wordt in Solar mode als een soort "offset" gebruikt, en kan dus zeker invloed op het schakelgedrag voor C2=Auto hebben....

Probeer het eens zonder batterypower te feeden om te zien wat er gebeurt?
Ga ik testen. Ik zal ook de non-bleeding-edge versie proberen.

  • Stefannn
  • Registratie: Januari 2023
  • Laatst online: 11:55
treepox schreef op maandag 6 april 2026 @ 13:32:
Wat bedoel je met geaccepteerd?

Mijn Granny lader kan ik ook instellen. Ik heb nog niet meegemaakt dat hij de settings verloor na een tijd spanningsloos. Ik denk dat mijn lader wel 3 weken spanningsloos is geweest.
Hoe lang wordt geaccepteerd dat je handmatig doorgeeft. Zonder automatische uitlezing dus. (Dat is een zorg, ik denk niet dat iemand een antwoord weet)

compleet zelfbouw/zelfprogrammeer home-automation, 57 PV panelen 9000kWh/jaar, 135heatpipes 150L zonneboiler met elektrische naverwarming, 2x Vaillant water/water warmtepomp vws36/4.1 3kW, smartEVSE laadpaal, 1wire/X10/P1, jacuzzi, sauna, ioniq5 EV


  • szczur333
  • Registratie: April 2024
  • Laatst online: 09-04 22:32
i have simple question about smart evse v2/v3 owners

what maximum charge current can you set up?

some sources says 80A, some 32A

I have US spec tesla with 48A 1 phase charger and i have hard time to find soludtion to charge it with full power

  • rvdgaag
  • Registratie: December 2015
  • Laatst online: 09:39
szczur333 schreef op maandag 6 april 2026 @ 17:36:
i have simple question about smart evse v2/v3 owners

what maximum charge current can you set up?

some sources says 80A, some 32A

I have US spec tesla with 48A 1 phase charger and i have hard time to find soludtion to charge it with full power
Mains can be set to 10-99Amps (V3), not sure about V2. But depending or your location it will be hard or impossile to find a 48A grid connection in Europe at private houses, may be in company installations.

[ Voor 15% gewijzigd door rvdgaag op 06-04-2026 20:55 ]

Deye 12kW Hybrid, 8,77 kW peak solar, 62,4 kWH Seplos batteries, Panasonic K-series 5kW all-electric heatpump


  • szczur333
  • Registratie: April 2024
  • Laatst online: 09-04 22:32
thanks

I am from Poland, regular home

I have 3x63A main breakers + 3phase 25kWp of solar power

also
some time ago I aquired this (used)
https://www.evracing.cz/evse-wb-wallbox/

it has 48/63 or 80A option, but I dont know how to change that - I put 100ohm resistor so its should give me full 48A but max which I got is 25A - I cant even set it up to 32A, I emailed manufacturer but no help from them :(

  • Solarsparc
  • Registratie: Juli 2001
  • Laatst online: 05:19
I have just checked my SmartEVSE V3, max current can be set from 6 to 80A in 1A steps.
This is the same as advertised on the main website, as well as https://github.com/SmartE...ter/docs/configuration.md (though the minimum on the latter seems to be incorrect, 8A vs. 6A).
If you've found different numbers on "official" SmartEVSE sources, it would be nice to inform them so it can be corrected.

As for your current evse, it's hard to tell without knowing the details. If you want to troubleshoot that (or if you want us to troubleshoot that) it's best to dump all info plus pictures of the current situation here.

A 25A limit does seem to suggest you put the 100k resistor across prog pin 5 instead of pin 4, so you could check that.
If it's not that, there's a good chance the setting was programmed. In that case, the next step would be to get the modbus connection sorted out.

[ Voor 35% gewijzigd door Solarsparc op 07-04-2026 01:12 ]


  • rvdgaag
  • Registratie: December 2015
  • Laatst online: 09:39
szczur333 schreef op maandag 6 april 2026 @ 22:24:
thanks

I am from Poland, regular home

I have 3x63A main breakers + 3phase 25kWp of solar power

also
some time ago I aquired this (used)
https://www.evracing.cz/evse-wb-wallbox/

it has 48/63 or 80A option, but I dont know how to change that - I put 100ohm resistor so its should give me full 48A but max which I got is 25A - I cant even set it up to 32A, I emailed manufacturer but no help from them :(
I think, suspect, this is an other evse, not the type/make we're talking about here.

Deye 12kW Hybrid, 8,77 kW peak solar, 62,4 kWH Seplos batteries, Panasonic K-series 5kW all-electric heatpump


  • szczur333
  • Registratie: April 2024
  • Laatst online: 09-04 22:32
Yes, probably its coded in firmware but I dont have to clue to how to change it - to advanced for me but I am ditching it for now bcoz today I bought PHOENIX CONTACT 2902802

I bought it fully accidently - just browsing local online marketplace and it was in great price 40euro :O


I dont know if its working but I plugged it to 230V and ethernet and I saw config tool, so probabaly it will work

I connected it super temporary for test purposes only - Tommorow I will check it on 6A at first, later I will check if I can change current in car to 48A (relax, I will not even try to start charging connected like this)
Even 6A will be for minute only

Afbeeldingslocatie: https://tweakers.net/i/rwzF85Ip_0Oh-jU6ZM1ogXEh4oA=/x800/filters:strip_icc():strip_exif()/f/image/0Enw3UxhTqQxjTn1jwukJkzV.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/7H-lF5lRkmKEB4iPwefb5ZgapG4=/x800/filters:strip_icc():strip_exif()/f/image/CSivdkpkp7hzWxet0tHxSXLj.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/Dsq0eTavRonJRWH0ycbdJwHtU9I=/x800/filters:strip_icc():strip_exif()/f/image/UDIQQRMwnSVEgUMOqkV3Rhtn.jpg?f=fotoalbum_large

  • ocaj
  • Registratie: Juli 2011
  • Niet online
Can we please go back to Dutch again? This is NOT an English forum !

  • Stefannn
  • Registratie: Januari 2023
  • Laatst online: 11:55
ocaj schreef op donderdag 9 april 2026 @ 07:12:
Can we please go back to Dutch again? This is NOT an English forum !
Let’s allow polish people to use English. I prefer that above polish.

compleet zelfbouw/zelfprogrammeer home-automation, 57 PV panelen 9000kWh/jaar, 135heatpipes 150L zonneboiler met elektrische naverwarming, 2x Vaillant water/water warmtepomp vws36/4.1 3kW, smartEVSE laadpaal, 1wire/X10/P1, jacuzzi, sauna, ioniq5 EV


  • rene037
  • Registratie: November 2007
  • Laatst online: 12-04 18:08

rene037

Homey, SmartEVSE, Sessy

Stefannn schreef op donderdag 9 april 2026 @ 09:49:
[...]

Let’s allow polish people to use English. I prefer that above polish.
Indeed. If you dislike English or can't understand, just ignore.
Inderdaad. Als je niet van Engels houdt of het niet begrijpt, negeer het dan.

  • Geim
  • Registratie: Mei 2004
  • Laatst online: 11:11
ocaj schreef op donderdag 9 april 2026 @ 07:12:
Can we please go back to Dutch again? This is NOT an English forum !
Zie: https://tweakers.net/info...arden/huisregels/#regel-3
"Daarnaast is de voertaal van Tweakers Nederlands. Engelse posts worden gedoogd, maar het is niet de bedoeling dat dit de boventoon gaat voeren. Voorbeeld: een vraag in het Engels stellen mag, mits Nederlandse antwoorden dan ook geaccepteerd zijn."
Volgens mij voert Engels niet de boventoon in de 400 pagina's die dit topic al groot is.

  • Stufipower
  • Registratie: December 2015
  • Niet online
Vraagje over het knopje dat wordt geleverd bij de laadpaal van stegen. Er staat ip65, met rubberen ring. Maar als er water boven in de knop loopt, waar je hem kan indrukken, is het dan ook waterdicht?

Ik vraag me namelijk af waar ik hem ga plaatsen op de doos. Bovenin komt mogelijk meer water op te staan door de regen. Aan de zijkant is misschien wat veiliger maar misschien lelijker. Aan de voorkant is het mooiste maar onhandig als je de doos openmaakt.

Edit: heb even zelf nagedacht en besloten dat ie aan de voorkant komt. De doos gaat niet vaak open, is de bedoeling en dan loopt het water ook weg.

[ Voor 11% gewijzigd door Stufipower op 09-04-2026 11:14 ]


  • sjoerd-p
  • Registratie: Augustus 2011
  • Laatst online: 10-04 20:48
Stufipower schreef op donderdag 9 april 2026 @ 11:07:
Vraagje over het knopje dat wordt geleverd bij de laadpaal van stegen. Er staat ip65, met rubberen ring. Maar als er water boven in de knop loopt, waar je hem kan indrukken, is het dan ook waterdicht?

Ik vraag me namelijk af waar ik hem ga plaatsen op de doos. Bovenin komt mogelijk meer water op te staan door de regen. Aan de zijkant is misschien wat veiliger maar misschien lelijker. Aan de voorkant is het mooiste maar onhandig als je de doos openmaakt.

Edit: heb even zelf nagedacht en besloten dat ie aan de voorkant komt. De doos gaat niet vaak open, is de bedoeling en dan loopt het water ook weg.
Inderdaad, ik heb hem ook aan de voorkant gedaan. Dan kan ik ook makkelijker de status zien. En met het open maken is het onhandig, want je maakt hem niet makkelijk los. Ik overweeg nog om er een stekker-contrastekker tussen te zetten op één of andere manier. Maar ook ik concludeerde dat de paal niet vaak open gaat, dus heb maar geaccepteert dat iemand dan de voorkant even vast moet houden of dat ik hem even op moet hangen of zo. Werkt in de praktijk prima.

Ik overweeg ook nog om een gat in de kast te zagen en er lexan plaatje of zo achter te plakken/kitten wat doorzichtig is. Maar of ik dat goed waterdicht krijg.... Zou wel tof zijn om de SmartEVSE van buiten af te kunnen lezen. Iemand dat al eens gedaan? Ik heb een New Motion behuizing.

Home Assistant 🏠📱, Zonneplan 20kWh thuisbatterij 🔋🏠, Quatt Duo warmtepomp met L Full Electric upgrade 🌡️🚿, 4100Wp PV ☀️, XPeng G9 🚙🔌


  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 11:36

Septillion

Moderator Wonen & Mobiliteit
Modbreak:Maar nu gaan we wel gewoon alleen verder in het Nederlands

  • 10us10
  • Registratie: Augustus 2016
  • Laatst online: 11:12
Ook hier een newmotion omgebouwd.
Een business pro 2.1 socket van marktplaats gehaald voor 50 euro en vervolgens de smartEVSE met RFID en button geinstalleerd. Met een setje van 4 din rails van amazon een nieuwe rail bovenin gezet en alles netjes aan kunnen sluiten inclusief de EVSE rechtop. Overal netjes adereindhulzen op gezet en 6mm draad gebruikt waar de flinke power loopt.

Afbeeldingslocatie: https://tweakers.net/i/7Bfreowhisbs4QZYGQuY_skupFE=/x800/filters:strip_icc():strip_exif()/f/image/mUwmmVTrNDtx3NkU3umeiplW.jpg?f=fotoalbum_large

Heb geen sensorbox gekocht want had al een slimmelezer. Die geflashed met een aangepaste code die is geschreven met hulp van dit topic en gemini. Data komt daardoor buiten Home Assistant om rechtstreeks naar de laadpaal. (wel de evse MAINS MET op API zetten, ik had hem op homewizzard staan en bleef maar tegen fouten aanlopen)

Voor de liefhebbers de code voor de slimmelezer:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
substitutions:
  device_name: slimmelezer
  smartevse_host: 192.168.x.x

esphome:
  name: ${device_name}
  name_add_mac_suffix: false
  project:
    name: zuidwijk.slimmelezer
    version: "2.1-smartevse"
  on_boot:
    - priority: 600.0
      then:
        - if:
            condition:
              lambda: return id(has_key);
            then:
              - lambda: |-
                  id(dsmr_instance).set_decryption_key(id(stored_decryption_key));
    - priority: -100.0
      then:
        - lambda: |-
            auto *server = esphome::web_server_base::global_web_server_base->get_server();
            server->on("/api/v1/telegram", HTTP_GET, [](AsyncWebServerRequest *req) {
              req->send(200, "text/plain", id(last_telegram).c_str());
            });
            server->on("/api/v1/data", HTTP_GET, [](AsyncWebServerRequest *req) {
              int wifi_pct = (int)clamp((id(hw_wifi_signal).state + 100.0f) * 2.0f, 0.0f, 100.0f);
              int smr_ver = atoi(id(hw_p1_version).state.c_str());
              float p_net = (id(hw_power_delivered).state - id(hw_power_returned).state) * 1000.0f;
              float l1_w = (id(hw_power_del_l1).state - id(power_returned_l1).state) * 1000.0f;
              float l2_w = (id(hw_power_del_l2).state - id(power_returned_l2).state) * 1000.0f;
              float l3_w = (id(hw_power_del_l3).state - id(power_returned_l3).state) * 1000.0f;
              float i1 = id(power_returned_l1).state > 0 ? -id(current_l1).state : id(current_l1).state;
              float i2 = id(power_returned_l2).state > 0 ? -id(current_l2).state : id(current_l2).state;
              float i3 = id(power_returned_l3).state > 0 ? -id(current_l3).state : id(current_l3).state;
              char buf[512];
              snprintf(buf, sizeof(buf), "{\"unique_id\":\"%s\",\"wifi_ssid\":\"%s\",\"wifi_strength\":%d,\"smr_version\":%d,\"active_power_w\":%.0f,\"active_power_l1_w\":%.0f,\"active_power_l2_w\":%.0f,\"active_power_l3_w\":%.0f,\"active_current_l1_a\":%.1f,\"active_current_l2_a\":%.1f,\"active_current_l3_a\":%.1f}", 
                id(hw_equipment_id).state.c_str(), WiFi.SSID().c_str(), wifi_pct, smr_ver, p_net, l1_w, l2_w, l3_w, i1, i2, i3);
              req->send(200, "application/json", buf);
            });
            server->on("/api", HTTP_GET, [](AsyncWebServerRequest *req) {
              req->send(200, "application/json", "{\"product_type\":\"HWE-P1\",\"product_name\":\"P1 Meter\",\"api_version\":\"v1\"}");
            });

esp8266:
  board: d1_mini
  restore_from_flash: true

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

api:
  services:
    - service: set_dsmr_key
      variables:
        private_key: string
      then:
        - lambda: |-
            if (private_key.length() == 32) memcpy(id(stored_decryption_key), private_key.c_str(), 32);
            id(dsmr_instance).set_decryption_key(private_key.c_str());

ota:
  platform: esphome

logger:
  baud_rate: 0

web_server:
  port: 80

uart:
  id: uart_dsmr
  baud_rate: 115200
  rx_pin: D7
  rx_buffer_size: 1700

mdns:
  services:
    - service: _hwenergy
      protocol: _tcp
      port: 80
      txt:
        api_enabled: "1"
        product_name: P1 Meter
        product_type: HWE-P1

globals:
  - id: has_key
    type: bool
    restore_value: yes
    initial_value: "false"
  - id: stored_decryption_key
    type: char[32]
    restore_value: yes
  - id: last_telegram
    type: std::string
    initial_value: '""'
  - id: smartevse_integration
    type: bool
    initial_value: "true"

dsmr:
  id: dsmr_instance
  uart_id: uart_dsmr
  max_telegram_length: 1700

sensor:
  - platform: dsmr
    energy_delivered_tariff1:
      id: hw_energy_t1
      name: "Energy Consumed T1"
    energy_delivered_tariff2:
      id: hw_energy_t2
      name: "Energy Consumed T2"
    energy_returned_tariff1:
      id: hw_return_t1
      name: "Energy Produced T1"
    energy_returned_tariff2:
      id: hw_return_t2
      name: "Energy Produced T2"
    power_delivered:
      id: hw_power_delivered
      name: "Power Consumed"
    power_returned:
      id: hw_power_returned
      name: "Power Produced"
    power_delivered_l1:
      id: hw_power_del_l1
      name: "Power Consumed L1"
    power_delivered_l2:
      id: hw_power_del_l2
      name: "Power Consumed L2"
    power_delivered_l3:
      id: hw_power_del_l3
      name: "Power Consumed L3"
    power_returned_l1:
      id: power_returned_l1
      name: "Power Produced L1"
    power_returned_l2:
      id: power_returned_l2
      name: "Power Produced L2"
    power_returned_l3:
      id: power_returned_l3
      name: "Power Produced L3"
    current_l1:
      id: current_l1
      name: "Current Phase 1"
    current_l2:
      id: current_l2
      name: "Current Phase 2"
    current_l3:
      id: current_l3
      name: "Current Phase 3"
    gas_delivered:
      id: hw_gas
      name: "Gas Consumed"
  - platform: wifi_signal
    id: hw_wifi_signal
    name: "Wi-Fi Signal"

text_sensor:
  - platform: dsmr
    identification:
      id: hw_identification
      name: "DSMR Identification"
    equipment_id:
      id: hw_equipment_id
      name: "DSMR Equipment ID"
    p1_version:
      id: hw_p1_version
      name: "DSMR Version"
    telegram:
      id: dsmr_telegram
      name: "DSMR Telegram"
      on_value:
        then:
          - lambda: id(last_telegram) = x;

http_request:
  timeout: 1500ms
  verify_ssl: false

interval:
  - interval: 2sec
    then:
      - if:
          condition:
            lambda: return (id(smartevse_integration));
          then:
            - http_request.post:
                url: !lambda |-
                  float s1 = (id(hw_power_del_l1).state - id(power_returned_l1).state) * 1000.0 / 230.0;
                  float s2 = (id(hw_power_del_l2).state - id(power_returned_l2).state) * 1000.0 / 230.0;
                  float s3 = (id(hw_power_del_l3).state - id(power_returned_l3).state) * 1000.0 / 230.0;
                  static char url_buf[100];
                  snprintf(url_buf, sizeof(url_buf), "http://${smartevse_host}/currents?L1=%.0f&L2=%.0f&L3=%.0f", round(s1*10), round(s2*10), round(s3*10));
                  return url_buf;
Alles lijkt goed te werken. Morgen ga ik testen onder full load.

Volgende stap is dan koppelen met OCPP en een bestuursysteem vanuit Home Assistant om zo slim mogelijk aan te sturen. Dus bijvoorbeeld: morgen om 1600 moet hij vol zijn. reken maar uit hoe ik het goedkoopst laad in combinatie tussen verwachtte zonopbrengst en goedkoopste uren.

Maar tot nu toe veel dank aan jullie allemaal in het topic, heeft me ontzettend geholpen. Met name deze post van @Phantone - Phantone in "Zelfbouw Laadpaal ervaringen" en deze van @ikke26 - ikke26 in "Zelfbouw Laadpaal ervaringen"

en misschien heeft iemand ook nog eens wat aan deze post...

  • edwin2021
  • Registratie: Oktober 2020
  • Laatst online: 08:47
@10us10 Top, en bedankt voor delen!

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 09:55
szczur333 schreef op maandag 6 april 2026 @ 22:24:
it has 48/63 or 80A option, but I dont know how to change that - I put 100ohm resistor so its should give me full 48A but max which I got is 25A - I cant even set it up to 32A, I emailed manufacturer but no help from them :(
Weet je zeker dat je auto wel met die stroomsterkte kan laden?

AC laden met 48A heb ik niet eerder gezien. 25A klinkt als een meer gangbare limiet aan de autozijde.

[ Voor 6% gewijzigd door Hmmbob op 10-04-2026 08:11 ]

Sometimes you need to plan for coincidence


  • Phantone
  • Registratie: Augustus 2000
  • Laatst online: 11-04 18:04
10us10 schreef op donderdag 9 april 2026 @ 21:46:
Ook hier een newmotion omgebouwd.
Een business pro 2.1 socket van marktplaats gehaald voor 50 euro en vervolgens de smartEVSE met RFID en button geinstalleerd. Met een setje van 4 din rails van amazon een nieuwe rail bovenin gezet en alles netjes aan kunnen sluiten inclusief de EVSE rechtop. Overal netjes adereindhulzen op gezet en 6mm draad gebruikt waar de flinke power loopt.

[Afbeelding]

Heb geen sensorbox gekocht want had al een slimmelezer. Die geflashed met een aangepaste code die is geschreven met hulp van dit topic en gemini. Data komt daardoor buiten Home Assistant om rechtstreeks naar de laadpaal. (wel de evse MAINS MET op API zetten, ik had hem op homewizzard staan en bleef maar tegen fouten aanlopen)

Voor de liefhebbers de code voor de slimmelezer:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
substitutions:
  device_name: slimmelezer
  smartevse_host: 192.168.x.x

esphome:
  name: ${device_name}
  name_add_mac_suffix: false
  project:
    name: zuidwijk.slimmelezer
    version: "2.1-smartevse"
  on_boot:
    - priority: 600.0
      then:
        - if:
            condition:
              lambda: return id(has_key);
            then:
              - lambda: |-
                  id(dsmr_instance).set_decryption_key(id(stored_decryption_key));
    - priority: -100.0
      then:
        - lambda: |-
            auto *server = esphome::web_server_base::global_web_server_base->get_server();
            server->on("/api/v1/telegram", HTTP_GET, [](AsyncWebServerRequest *req) {
              req->send(200, "text/plain", id(last_telegram).c_str());
            });
            server->on("/api/v1/data", HTTP_GET, [](AsyncWebServerRequest *req) {
              int wifi_pct = (int)clamp((id(hw_wifi_signal).state + 100.0f) * 2.0f, 0.0f, 100.0f);
              int smr_ver = atoi(id(hw_p1_version).state.c_str());
              float p_net = (id(hw_power_delivered).state - id(hw_power_returned).state) * 1000.0f;
              float l1_w = (id(hw_power_del_l1).state - id(power_returned_l1).state) * 1000.0f;
              float l2_w = (id(hw_power_del_l2).state - id(power_returned_l2).state) * 1000.0f;
              float l3_w = (id(hw_power_del_l3).state - id(power_returned_l3).state) * 1000.0f;
              float i1 = id(power_returned_l1).state > 0 ? -id(current_l1).state : id(current_l1).state;
              float i2 = id(power_returned_l2).state > 0 ? -id(current_l2).state : id(current_l2).state;
              float i3 = id(power_returned_l3).state > 0 ? -id(current_l3).state : id(current_l3).state;
              char buf[512];
              snprintf(buf, sizeof(buf), "{\"unique_id\":\"%s\",\"wifi_ssid\":\"%s\",\"wifi_strength\":%d,\"smr_version\":%d,\"active_power_w\":%.0f,\"active_power_l1_w\":%.0f,\"active_power_l2_w\":%.0f,\"active_power_l3_w\":%.0f,\"active_current_l1_a\":%.1f,\"active_current_l2_a\":%.1f,\"active_current_l3_a\":%.1f}", 
                id(hw_equipment_id).state.c_str(), WiFi.SSID().c_str(), wifi_pct, smr_ver, p_net, l1_w, l2_w, l3_w, i1, i2, i3);
              req->send(200, "application/json", buf);
            });
            server->on("/api", HTTP_GET, [](AsyncWebServerRequest *req) {
              req->send(200, "application/json", "{\"product_type\":\"HWE-P1\",\"product_name\":\"P1 Meter\",\"api_version\":\"v1\"}");
            });

esp8266:
  board: d1_mini
  restore_from_flash: true

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

api:
  services:
    - service: set_dsmr_key
      variables:
        private_key: string
      then:
        - lambda: |-
            if (private_key.length() == 32) memcpy(id(stored_decryption_key), private_key.c_str(), 32);
            id(dsmr_instance).set_decryption_key(private_key.c_str());

ota:
  platform: esphome

logger:
  baud_rate: 0

web_server:
  port: 80

uart:
  id: uart_dsmr
  baud_rate: 115200
  rx_pin: D7
  rx_buffer_size: 1700

mdns:
  services:
    - service: _hwenergy
      protocol: _tcp
      port: 80
      txt:
        api_enabled: "1"
        product_name: P1 Meter
        product_type: HWE-P1

globals:
  - id: has_key
    type: bool
    restore_value: yes
    initial_value: "false"
  - id: stored_decryption_key
    type: char[32]
    restore_value: yes
  - id: last_telegram
    type: std::string
    initial_value: '""'
  - id: smartevse_integration
    type: bool
    initial_value: "true"

dsmr:
  id: dsmr_instance
  uart_id: uart_dsmr
  max_telegram_length: 1700

sensor:
  - platform: dsmr
    energy_delivered_tariff1:
      id: hw_energy_t1
      name: "Energy Consumed T1"
    energy_delivered_tariff2:
      id: hw_energy_t2
      name: "Energy Consumed T2"
    energy_returned_tariff1:
      id: hw_return_t1
      name: "Energy Produced T1"
    energy_returned_tariff2:
      id: hw_return_t2
      name: "Energy Produced T2"
    power_delivered:
      id: hw_power_delivered
      name: "Power Consumed"
    power_returned:
      id: hw_power_returned
      name: "Power Produced"
    power_delivered_l1:
      id: hw_power_del_l1
      name: "Power Consumed L1"
    power_delivered_l2:
      id: hw_power_del_l2
      name: "Power Consumed L2"
    power_delivered_l3:
      id: hw_power_del_l3
      name: "Power Consumed L3"
    power_returned_l1:
      id: power_returned_l1
      name: "Power Produced L1"
    power_returned_l2:
      id: power_returned_l2
      name: "Power Produced L2"
    power_returned_l3:
      id: power_returned_l3
      name: "Power Produced L3"
    current_l1:
      id: current_l1
      name: "Current Phase 1"
    current_l2:
      id: current_l2
      name: "Current Phase 2"
    current_l3:
      id: current_l3
      name: "Current Phase 3"
    gas_delivered:
      id: hw_gas
      name: "Gas Consumed"
  - platform: wifi_signal
    id: hw_wifi_signal
    name: "Wi-Fi Signal"

text_sensor:
  - platform: dsmr
    identification:
      id: hw_identification
      name: "DSMR Identification"
    equipment_id:
      id: hw_equipment_id
      name: "DSMR Equipment ID"
    p1_version:
      id: hw_p1_version
      name: "DSMR Version"
    telegram:
      id: dsmr_telegram
      name: "DSMR Telegram"
      on_value:
        then:
          - lambda: id(last_telegram) = x;

http_request:
  timeout: 1500ms
  verify_ssl: false

interval:
  - interval: 2sec
    then:
      - if:
          condition:
            lambda: return (id(smartevse_integration));
          then:
            - http_request.post:
                url: !lambda |-
                  float s1 = (id(hw_power_del_l1).state - id(power_returned_l1).state) * 1000.0 / 230.0;
                  float s2 = (id(hw_power_del_l2).state - id(power_returned_l2).state) * 1000.0 / 230.0;
                  float s3 = (id(hw_power_del_l3).state - id(power_returned_l3).state) * 1000.0 / 230.0;
                  static char url_buf[100];
                  snprintf(url_buf, sizeof(url_buf), "http://${smartevse_host}/currents?L1=%.0f&L2=%.0f&L3=%.0f", round(s1*10), round(s2*10), round(s3*10));
                  return url_buf;
Alles lijkt goed te werken. Morgen ga ik testen onder full load.

Volgende stap is dan koppelen met OCPP en een bestuursysteem vanuit Home Assistant om zo slim mogelijk aan te sturen. Dus bijvoorbeeld: morgen om 1600 moet hij vol zijn. reken maar uit hoe ik het goedkoopst laad in combinatie tussen verwachtte zonopbrengst en goedkoopste uren.

Maar tot nu toe veel dank aan jullie allemaal in het topic, heeft me ontzettend geholpen. Met name deze post van @Phantone - Phantone in "Zelfbouw Laadpaal ervaringen" en deze van @ikke26 - ikke26 in "Zelfbouw Laadpaal ervaringen"

en misschien heeft iemand ook nog eens wat aan deze post...
Ik heb inmiddels ook een Thuisbatterij in de mix en was er door @Martijn02 op gewezen dat er een paar kleine foutjes in zaten. Gasmeter datum klopte niet en er zat wat verschil in decimalen tussen de output van de HW P1 en dit script. Deze laatste versie geeft de zelfde output als de HW P1.

Ik heb ook nog even gechecked wat de impact is als je elke seconde polt naar de HW API en die requests worden in gemiddeld binnen 0,025s afgehandeld. De HTTP POST is een stuk trager.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
#
# SlimmeLezer+ configuration with SmartEVSE REST support.
# Extended from github://zuidwijk/slimmelezer-wt32-eth01/wt32.yaml@main
#
# Added:
#   - SmartEVSE Integration switch (available in HA)
#   - SmartEVSE API connectivity status sensor (available in HA)
#   - Electricity tariff sensor (available in HA, useful for automations)
#   - Send data to SmartEVSE using http post REST interface
#   - HomeWizard HWE-P1 API emulation (for Indevolt and other batteries)
#   - mDNS announcement as HomeWizard P1 meter
#
# Please update 'smartevse_host' below to match your SmartEVSE
#

substitutions:
  device_name: slimmelezer
  smartevse_host: 192.168.x.x  # <== YOUR SMARTEVSE IP ADDRESS HERE

esphome:
  name: ${device_name}
  name_add_mac_suffix: false
  comment: SlimmeLezer+ / SmartEVSE / HomeWizard API
  project:
    name: zuidwijk.slimmelezer
    version: "1.2"
  on_boot:
    # ── Bestaande boot logica (decryptie sleutel) ────────────────────────────
    - priority: 600.0
      then:
        - if:
            condition:
              lambda: return id(has_key);
            then:
              - lambda: |-
                  std::string key(id(stored_decryption_key), 32);
                  id(dsmr_instance).set_decryption_key(key.c_str());
            else:
              - logger.log:
                  level: info
                  format: "Not using decryption key. If you need to set a key use Home Assistant service 'ESPHome:  ${device_name}_set_dsmr_key'"
    # ── HomeWizard API registreren (na webserver start) ──────────────────────
    - priority: -100.0
      then:
        - lambda: |-
            auto *server = esphome::web_server_base::global_web_server_base->get_server();

            // GET /api/v1/telegram  →  ruwe DSMR telegram tekst
            server->on("/api/v1/telegram", HTTP_GET, [](AsyncWebServerRequest *req) {
              req->send(200, "text/plain", id(last_telegram).c_str());
            });

            // GET /api/v1/data eerst registreren (meest specifieke route)
            server->on("/api/v1/data", HTTP_GET, [](AsyncWebServerRequest *req) {
              // wifi dBm (-100..0) → percentage (0..100)
              int wifi_pct = (int)clamp((id(hw_wifi_signal).state + 100.0f) * 2.0f, 0.0f, 100.0f);
              int smr_ver  = atoi(id(hw_p1_version).state.c_str());

              // kW → W
              float p_net = (id(hw_power_delivered).state - id(hw_power_returned).state) * 1000.0f;
              float l1_w  = (id(hw_power_del_l1).state   - id(power_returned_l1).state) * 1000.0f;
              float l2_w  = (id(hw_power_del_l2).state   - id(power_returned_l2).state) * 1000.0f;
              float l3_w  = (id(hw_power_del_l3).state   - id(power_returned_l3).state) * 1000.0f;

              // Gesigneerde stroom per fase berekend uit P/V (geeft 3 decimalen precisie)
              // l1_w/l2_w/l3_w zijn al gesigneerd (negatief = teruglevering)
              float i1 = (id(hw_voltage_l1).state > 0) ? l1_w / id(hw_voltage_l1).state : 0.0f;
              float i2 = (id(hw_voltage_l2).state > 0) ? l2_w / id(hw_voltage_l2).state : 0.0f;
              float i3 = (id(hw_voltage_l3).state > 0) ? l3_w / id(hw_voltage_l3).state : 0.0f;

              // Totale stroom (waarden per fase optellen)
              float i_total = i1 + i2 + i3;

              // Totaal import/export (t1 + t2)
              float total_import = id(hw_energy_t1).state + id(hw_energy_t2).state;
              float total_export = id(hw_return_t1).state + id(hw_return_t2).state;

              // gas_timestamp direct uit telegram parsen (0-1:24.2.1(YYMMDDhhmmssX)(...))
              long long gas_ts = 0LL;
              size_t gpos = id(last_telegram).find("0-1:24.2.1(");
              if (gpos != std::string::npos) {
                gpos += 11; // sla "0-1:24.2.1(" over
                size_t gend = id(last_telegram).find(')', gpos);
                if (gend != std::string::npos) {
                  std::string gts = id(last_telegram).substr(gpos, gend - gpos);
                  if (!gts.empty() && (gts.back() == 'S' || gts.back() == 'W'))
                    gts.pop_back();
                  gas_ts = atoll(gts.c_str());
                }
              }

              // Cursor-gebaseerde JSON opbouw: conditionele velden worden
              // weggelaten als de waarde niet beschikbaar is (isnan)
              static char buf[1280];
              int p = 0;
              #define A(...) p += snprintf(buf + p, sizeof(buf) - p, __VA_ARGS__)
              #define AF(key, val) if (!isnan(val)) A("\"" key "\":%.0f,", val)

              A("{");
              A("\"unique_id\":\"%s\",",          id(hw_equipment_id).state.c_str());
              A("\"wifi_ssid\":\"%s\",",           WiFi.SSID().c_str());
              A("\"wifi_strength\":%d,",           wifi_pct);
              A("\"smr_version\":%d,",             smr_ver);
              A("\"meter_model\":\"%s\",",         id(hw_identification).state.c_str());
              A("\"active_tariff\":%d,",           atoi(id(hw_tariff).state.c_str()));
              A("\"total_power_import_kwh\":%.3f,",  total_import);
              A("\"total_power_import_t1_kwh\":%.3f,", id(hw_energy_t1).state);
              A("\"total_power_import_t2_kwh\":%.3f,", id(hw_energy_t2).state);
              A("\"total_power_export_kwh\":%.3f,",  total_export);
              A("\"total_power_export_t1_kwh\":%.3f,", id(hw_return_t1).state);
              A("\"total_power_export_t2_kwh\":%.3f,", id(hw_return_t2).state);
              A("\"active_power_w\":%.0f,",        p_net);
              A("\"active_power_l1_w\":%.0f,",     l1_w);
              A("\"active_power_l2_w\":%.0f,",     l2_w);
              A("\"active_power_l3_w\":%.0f,",     l3_w);
              A("\"active_voltage_l1_v\":%.1f,",   id(hw_voltage_l1).state);
              A("\"active_voltage_l2_v\":%.1f,",   id(hw_voltage_l2).state);
              A("\"active_voltage_l3_v\":%.1f,",   id(hw_voltage_l3).state);
              A("\"active_current_a\":%.3f,",      i_total);
              A("\"active_current_l1_a\":%.3f,",   i1);
              A("\"active_current_l2_a\":%.3f,",   i2);
              A("\"active_current_l3_a\":%.3f,",   i3);
              AF("voltage_sag_l1_count",   id(hw_sag_l1).state);
              AF("voltage_sag_l2_count",   id(hw_sag_l2).state);
              AF("voltage_sag_l3_count",   id(hw_sag_l3).state);
              AF("voltage_swell_l1_count", id(hw_swell_l1).state);
              AF("voltage_swell_l2_count", id(hw_swell_l2).state);
              AF("voltage_swell_l3_count", id(hw_swell_l3).state);
              AF("any_power_fail_count",   id(hw_power_fail).state);
              AF("long_power_fail_count",  id(hw_long_power_fail).state);
              A("\"total_gas_m3\":%.3f,",          id(hw_gas).state);
              A("\"gas_timestamp\":%lld,",         gas_ts);
              A("\"unique_gas_id\":\"%s\",",       id(hw_gas_equipment_id).state.c_str());
              A("\"external\":[{"
                  "\"unique_id\":\"%s\","
                  "\"type\":\"gas_meter\","
                  "\"timestamp\":%lld,"
                  "\"value\":%.3f,"
                  "\"unit\":\"m3\""
                "}]",
                id(hw_gas_equipment_id).state.c_str(),
                gas_ts,
                id(hw_gas).state);
              A("}");
              #undef A
              #undef AF

              req->send(200, "application/json", buf);
            });

            // GET /api  →  device-identificatie als HWE-P1 (na /api/v1/data registreren)
            server->on("/api", HTTP_GET, [](AsyncWebServerRequest *req) {
              req->send(200, "application/json",
                "{\"product_type\":\"HWE-P1\","
                "\"product_name\":\"P1 Meter\","
                "\"serial\":\"a3f8c21d904e\","
                "\"firmware_version\":\"5.18\","
                "\"api_version\":\"v1\"}");
            });

esp8266:
    restore_from_flash: true
    board: d1_mini

# Enable logging
logger:
  baud_rate: 0
  logs:
    component: ERROR
    http_request.arduino: ERROR  # onderdruk de framework warning

# Enable Home Assistant API
api:
  services:
    service: set_dsmr_key
    variables:
      private_key: string
    then:
      - logger.log:
          format: Setting private key %s. Set to empty string to disable
          args: [private_key.c_str()]
      - globals.set:
          id: has_key
          value: !lambda "return private_key.length() == 32;"
      - lambda: |-
          if (private_key.length() == 32)
            memcpy(id(stored_decryption_key), private_key.c_str(), 32);
          id(dsmr_instance).set_decryption_key(private_key.c_str());

ota:
  platform: esphome

dashboard_import:
  package_import_url: github://zuidwijk/dsmr/slimmelezer.yaml@main
  import_full_config: true

uart:
  id: uart_dsmr
  baud_rate: 115200
  rx_pin: D7
  rx_buffer_size: 1700

web_server:
  port: 80

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: ${device_name}

captive_portal:

# mDNS: kondigt de SlimmeLezer+ aan als HomeWizard HWE-P1
mdns:
  services:
    - service: _hwenergy
      protocol: _tcp
      port: 80
      txt:
        api_enabled: "1"
        path: /api/v1
        product_name: P1 Meter
        product_type: HWE-P1
        serial: a3f8c21d904e

globals:
  - id: has_key
    type: bool
    restore_value: yes
    initial_value: "false"
  - id: stored_decryption_key
    type: char[32]
    restore_value: yes
  - id: smartevse_integration  # SmartEVSE addition
    type: bool
  - id: smartevse_error  # SmartEVSE addition
    type: int
  - id: last_telegram       # HomeWizard API telegram endpoint
    type: std::string
    restore_value: no
    initial_value: '""'

dsmr:
  uart_id: uart_dsmr
  id: dsmr_instance
  max_telegram_length: 1700
  # For Luxembourg users set here your decryption key
  #decryption_key: !secret decryption_key // enable this when using decryption for Luxembourg; key like '00112233445566778899AABBCCDDEEFF'

sensor:
  - platform: dsmr
    energy_delivered_lux:
      name: "Energy Consumed Luxembourg"
    energy_delivered_tariff1:
      id: hw_energy_t1                    # HomeWizard API
      name: "Energy Consumed Tariff 1"
    energy_delivered_tariff2:
      id: hw_energy_t2                    # HomeWizard API
      name: "Energy Consumed Tariff 2"
    energy_returned_lux:
      name: "Energy Produced Luxembourg"
    energy_returned_tariff1:
      id: hw_return_t1                    # HomeWizard API
      name: "Energy Produced Tariff 1"
    energy_returned_tariff2:
      id: hw_return_t2                    # HomeWizard API
      name: "Energy Produced Tariff 2"
    power_delivered:
      id: hw_power_delivered              # HomeWizard API
      name: "Power Consumed"
      accuracy_decimals: 3
    power_returned:
      id: hw_power_returned               # HomeWizard API
      name: "Power Produced"
      accuracy_decimals: 3
    electricity_failures:
      id: hw_power_fail                   # HomeWizard API
      name: "Electricity Failures"
      icon: mdi:alert
    electricity_long_failures:
      id: hw_long_power_fail              # HomeWizard API
      name: "Long Electricity Failures"
      icon: mdi:alert
    voltage_sag_l1:
      id: hw_sag_l1                       # HomeWizard API
      name: "Voltage Sags Phase 1"
    voltage_sag_l2:
      id: hw_sag_l2                       # HomeWizard API
      name: "Voltage Sags Phase 2"
    voltage_sag_l3:
      id: hw_sag_l3                       # HomeWizard API
      name: "Voltage Sags Phase 3"
    voltage_swell_l1:
      id: hw_swell_l1                     # HomeWizard API
      name: "Voltage Swells Phase 1"
    voltage_swell_l2:
      id: hw_swell_l2                     # HomeWizard API
      name: "Voltage Swells Phase 2"
    voltage_swell_l3:
      id: hw_swell_l3                     # HomeWizard API
      name: "Voltage Swells Phase 3"
    voltage_l1:
      id: hw_voltage_l1                   # HomeWizard API
      name: "Voltage Phase 1"
    voltage_l2:
      id: hw_voltage_l2                   # HomeWizard API
      name: "Voltage Phase 2"
    voltage_l3:
      id: hw_voltage_l3                   # HomeWizard API
      name: "Voltage Phase 3"
    current_l1:
      id: current_l1                      # SmartEVSE + HomeWizard API
      name: "Current Phase 1"
    current_l2:
      id: current_l2                      # SmartEVSE + HomeWizard API
      name: "Current Phase 2"
    current_l3:
      id: current_l3                      # SmartEVSE + HomeWizard API
      name: "Current Phase 3"
    power_delivered_l1:
      id: hw_power_del_l1                 # HomeWizard API
      name: "Power Consumed Phase 1"
      accuracy_decimals: 3
    power_delivered_l2:
      id: hw_power_del_l2                 # HomeWizard API
      name: "Power Consumed Phase 2"
      accuracy_decimals: 3
    power_delivered_l3:
      id: hw_power_del_l3                 # HomeWizard API
      name: "Power Consumed Phase 3"
      accuracy_decimals: 3
    power_returned_l1:
      id: power_returned_l1               # SmartEVSE + HomeWizard API
      name: "Power Produced Phase 1"
      accuracy_decimals: 3
    power_returned_l2:
      id: power_returned_l2               # SmartEVSE + HomeWizard API
      name: "Power Produced Phase 2"
      accuracy_decimals: 3
    power_returned_l3:
      id: power_returned_l3               # SmartEVSE + HomeWizard API
      name: "Power Produced Phase 3"
      accuracy_decimals: 3
    gas_delivered:
      id: hw_gas                          # HomeWizard API
      name: "Gas Consumed"
    gas_delivered_be:
      name: "Gas Consumed Belgium"
  - platform: uptime
    name: "SlimmeLezer Uptime"
    update_interval: 60s
  - platform: wifi_signal
    id: hw_wifi_signal                    # HomeWizard API
    name: "SlimmeLezer Wi-Fi Signal"
    update_interval: 60s

text_sensor:
  - platform: dsmr
    identification:
      id: hw_identification               # HomeWizard API
      name: "DSMR Identification"
    equipment_id:
      id: hw_equipment_id                 # HomeWizard API (unique_id)
      name: "Equipment ID"
    gas_equipment_id:
      id: hw_gas_equipment_id             # HomeWizard API (unique_gas_id)
      name: "Gas Equipment ID"
    p1_version:
      id: hw_p1_version                   # HomeWizard API
      name: "DSMR Version"
    p1_version_be:
      name: "DSMR Version Belgium"
    electricity_tariff:                   # SmartEVSE + HomeWizard API
      id: hw_tariff
      name: "Electricity tariff"
    telegram:                             # HomeWizard API telegram endpoint
      id: hw_telegram
      internal: true
      on_value:
        then:
          - lambda: |-
              id(last_telegram) = x;
  - platform: wifi_info
    ip_address:
      name: "SlimmeLezer IP Address"
    ssid:
      name: "SlimmeLezer Wi-Fi SSID"
    bssid:
      name: "SlimmeLezer Wi-Fi BSSID"
  - platform: version
    name: "ESPHome Version"
    hide_timestamp: true

# SmartEVSE additions

binary_sensor:
  - platform: template
    name: "SmartEVSE API"
    device_class: connectivity
    lambda: "return id(smartevse_error) < 5;"

switch:
  - platform: template
    name: "SmartEVSE Integration"
    optimistic: true
    turn_on_action:
      - globals.set:
          id: smartevse_integration
          value: "true"
      - globals.set:
          id: smartevse_error
          value: "5"
    turn_off_action:
      - globals.set:
          id: smartevse_integration
          value: "false"
      - globals.set:
          id: smartevse_error
          value: "5"
    icon: "mdi:ev-station"
    restore_mode: RESTORE_DEFAULT_ON

http_request:
  timeout: 1500ms
  verify_ssl: false
  esp8266_disable_ssl_support: true

interval:
  - interval: 2sec
    then:
      - if:
          condition:
            lambda: |-
              return (id(smartevse_integration) &&
                      !isnan(id(current_l1).state) &&
                      !isnan(id(current_l2).state) &&
                      !isnan(id(current_l3).state));
          then:
            - http_request.post:
                url: !lambda |-
                  float lw1 = (id(hw_power_del_l1).state - id(power_returned_l1).state) * 1000.0f;
                  float lw2 = (id(hw_power_del_l2).state - id(power_returned_l2).state) * 1000.0f;
                  float lw3 = (id(hw_power_del_l3).state - id(power_returned_l3).state) * 1000.0f;
                  float s1 = (id(hw_voltage_l1).state > 0) ? lw1 / id(hw_voltage_l1).state : 0.0f;
                  float s2 = (id(hw_voltage_l2).state > 0) ? lw2 / id(hw_voltage_l2).state : 0.0f;
                  float s3 = (id(hw_voltage_l3).state > 0) ? lw3 / id(hw_voltage_l3).state : 0.0f;
                  static char url[128];
                  snprintf(url, sizeof(url),
                          "http://${smartevse_host}/currents?L1=%.0f&L2=%.0f&L3=%.0f",
                          s1 * 10, s2 * 10, s3 * 10);
                  return url;
                request_headers:
                  Content-Length: 0
                on_response:
                  then:
                    lambda: |-
                      if (id(smartevse_error) != 0) {
                        id(smartevse_error) = 0;
                      }
                on_error:
                  then:
                    lambda: |-
                      if (id(smartevse_error) < 5) {
                        id(smartevse_error) += 1;
                      }
Kleine wijziging gedaan aan active_current_a zodat deze negatief is bij teruglevering:
float i_total = i1 + i2 + i3;
ipv
float i_total = fabsf(i1) + fabsf(i2) + fabsf(i3);

Greetings, Phantone :)


  • 10us10
  • Registratie: Augustus 2016
  • Laatst online: 11:12
Dank, ga je aanpassingen meenemen!

  • superyupkent
  • Registratie: Juni 2001
  • Laatst online: 00:15
Vraagje,

Gebruik nu al een tijdje de solar functie icm de twee relais en schakelen tussen 1 en 3 fase laden. Ik heb zelf nog niet ervaren dat de smartevse van 1 naar 3 schakelt op mijn model 3 tesla. ik zou verwachten dat wanneer er 7A teruglevering is per fase, de schakeling naar 3F mogelijk is.
Wat zien jullie?

  • THM0
  • Registratie: Juli 2006
  • Laatst online: 07:37
https://github.com/evcc-io/evcc/pull/28782

Er lijkt iets in het vat te zitten… _/-\o_
Weet niet of iemand hier er aan heeft gewerkt maar dit zou zo’n mooie verbetering zijn voor een SmartEVSE setup!

[ Voor 38% gewijzigd door THM0 op 10-04-2026 15:35 ]


  • jpiscaer
  • Registratie: Januari 2002
  • Laatst online: 10:47
Dat was ik (o.a.). Er komt denk ik een betere pr van iemand anders, zie de laatste comment

  • Martijn02
  • Registratie: September 2000
  • Nu online

Martijn02

/* No Comment */

superyupkent schreef op vrijdag 10 april 2026 @ 14:47:
Vraagje,

Gebruik nu al een tijdje de solar functie icm de twee relais en schakelen tussen 1 en 3 fase laden. Ik heb zelf nog niet ervaren dat de smartevse van 1 naar 3 schakelt op mijn model 3 tesla. ik zou verwachten dat wanneer er 7A teruglevering is per fase, de schakeling naar 3F mogelijk is.
Wat zien jullie?
Voor mij (met een Enyaq) werkt dat wel. Er moet dan wel een tijdje minimaal 3 x 6 (minimum Start Current) beschikbaar zijn. Soms (zoals vandaag) is het een beetje irritant, want als er dan een wolkje voor de zon schuift kan hij niet naar lager dan 3x6 Amp en duurt het in mijn geval 10 minuten voordat hij terugschakelt naar 1 fase waar de stroom veel beter te managen is.

Heb je Contact2 wel op Auto staan?

  • Martijn02
  • Registratie: September 2000
  • Nu online

Martijn02

/* No Comment */

nvm

[ Voor 99% gewijzigd door Martijn02 op 10-04-2026 16:53 ]


  • diamanten
  • Registratie: Juli 2024
  • Laatst online: 10:38
Beste tweakers, graag jullie input:
Om te testen heb ik de smartevse v3 in testopstelling gezet zonder EV. De configuratie draait en heb ook PP via 680 ohm verbonden met PE. Toch krijg ik hem niet in Connected mode.
Wat doe ik verkeerd of ben ik mogelijk vergeten?Afbeeldingslocatie: https://tweakers.net/i/zGFpnGDEyw_gmhWwMnZmLm98LYo=/800x/filters:strip_exif()/f/image/ooeej0EYkW8bPjxfkSaXoZ70.png?f=fotoalbum_large

[ Voor 3% gewijzigd door diamanten op 12-04-2026 13:39 ]


  • Yannick-ski
  • Registratie: November 2015
  • Laatst online: 10:43
Ik heb al een hele tijd een smart EVSE van Stegen. Altijd super gedaan ook met loadbalencing. Wij hebben deze week een Tesla Model 3 in gebruik genomen en ik heb direct al storingen met laden.

PCS_a017
Opladen gestopt - Stroom uitgevallen tijdens het laden
Controleer energiebron en oplaadapparatuur

Ik denk dat dit van de loadbalancing afkomt wanneer de evse onder 6a komt en dan het laden stopt. Heeft iemand ervaring die mij verder kan helpen dit op te lossen?

  • Wolly
  • Registratie: Januari 2001
  • Niet online
Yannick-ski schreef op zondag 12 april 2026 @ 13:34:
Ik heb al een hele tijd een smart EVSE van Stegen. Altijd super gedaan ook met loadbalencing. Wij hebben deze week een Tesla Model 3 in gebruik genomen en ik heb direct al storingen met laden.

PCS_a017
Opladen gestopt - Stroom uitgevallen tijdens het laden
Controleer energiebron en oplaadapparatuur

Ik denk dat dit van de loadbalancing afkomt wanneer de evse onder 6a komt en dan het laden stopt. Heeft iemand ervaring die mij verder kan helpen dit op te lossen?
Mijn SmartEvse doet dat wel eens bij de tesla, kijk even wat het LCD schermpje meldt.

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 11:16

Beekforel

Is eigenlijk geen vis

Valt ook weinig aan op te lossen, ik neem even aan dat je op solar laadt dan. De Tesla is nogal trigger happy met meldingen. Op een wisselvallige dag schakelt hij bij mij 10+ keer ivm 1/3 fasen, inclusief alle meldingen.

  • Frankyy
  • Registratie: September 2009
  • Niet online
Ik draai al een tijdje de SmartEVSE, maar tot recent maar op 1 fase 10 amp (u mag raden hoe die was aangesloten).

Nu op 11kw en ook een sensorbox. Ik heb een heel laf mountje gemaakt die vrij is om te worden afgedrukt met een 3d printer.

https://makerworld.com/nl...rtevse-sensorbox-v2-mount
Afbeeldingslocatie: https://tweakers.net/i/_qJQHnQLBpfxsc5sq_PNE8u6uVg=/800x/filters:strip_exif()/f/image/gJIVL6IQgLZ9urGbzP9F40Si.webp?f=fotoalbum_large

  • Yannick-ski
  • Registratie: November 2015
  • Laatst online: 10:43
Wolly schreef op zondag 12 april 2026 @ 14:29:
[...]


Mijn SmartEvse doet dat wel eens bij de tesla, kijk even wat het LCD schermpje meldt.
EVSE geeft Ready weer en laat zien dat die is aangesloten, maar start dus niet meer opnieuw met laden.

Heb dit nu al 5 keer achter elkaar gehad. Mijn Mazda MX-30 had hier bijna nooit (1 x per maand ) last van. Ik laad op Smart, dus niet op solar want ik heb ook geen zonnepanelen.

  • Yannick-ski
  • Registratie: November 2015
  • Laatst online: 10:43
Beekforel schreef op zondag 12 april 2026 @ 14:54:
Valt ook weinig aan op te lossen, ik neem even aan dat je op solar laadt dan. De Tesla is nogal trigger happy met meldingen. Op een wisselvallige dag schakelt hij bij mij 10+ keer ivm 1/3 fasen, inclusief alle meldingen.
Het betreft niet alleen een melding van de auto maar hij stopt ook met laden en start niet meer opnieuw. Uittrekken en insteken is het enige wat werkt.

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 11:16

Beekforel

Is eigenlijk geen vis

Yannick-ski schreef op zondag 12 april 2026 @ 21:10:
[...]


Het betreft niet alleen een melding van de auto maar hij stopt ook met laden en start niet meer opnieuw. Uittrekken en insteken is het enige wat werkt.
Hm, dat is wel vreemd. Maar je had soortgelijk gedrag dus ook al met de vorige auto, alleen nu vaker. Tesla's zijn gevoelige dames hè. ;-)

Misschien de debug versie flashen en daarmee op onderzoek uit.

  • dingo35
  • Registratie: Februari 2008
  • Laatst online: 10:55
De fabrikant heeft zelf een paar Tesla's in gebruik, dus ik zou het probleem toch echt in je eigen opstelling zoeken: geen losse draadjes/contacten, geen vuile stekkerpennen, aarding goed aangesloten, geen extreem stralende apparaten in de directe nabijheid, dat soort zaken...
En anders eerst terug naar Normal mode en het laadgedrag observeren....

  • Yannick-ski
  • Registratie: November 2015
  • Laatst online: 10:43
Heb het net geobserveerd, maar het uitvallen gebeurt niet door loadbalancing. Hij is gewoon netjes aan jet laden 3x16A maar en totaal ver onder de 25A van de aansluiting en dan valt die ineens uit blank scherm en gaat die na een seconde of 2 weer aan. De helft van de tijd pakt die het laden weer op en de andere helft van de tijd niet.

Edit: 12-04-26 21:45
Ik ga nu testen wat die doet in Normal modus


Edit: 12-04-26 22:00
Ook in normal modus valt die na 10min laden uit, gaat die weer aan, valt die weer uit, gaat die weer aan dan laad die 20 seconden en valt die uit en gaat die weer aan maar gaat niet verder met laden.

Dit is gedrag wat ik met mijn vorige auto niet ervaarde, de Mazda kon er puur niet tegen als met loadbalancing veel geschakeld werd en wilde die wel eens in een foutmelding schieten.

Zij Tesla’s gevoelig voor een lange CP kabel? Ik heb alles in de meterkast zitten en de stekker zit in de garage.

[ Voor 47% gewijzigd door Yannick-ski op 12-04-2026 22:02 ]


  • thalx
  • Registratie: Januari 2003
  • Laatst online: 10:54
Yannick-ski schreef op zondag 12 april 2026 @ 21:44:
Zij Tesla’s gevoelig voor een lange CP kabel? Ik heb alles in de meterkast zitten en de stekker zit in de garage.
Ergens eerder in deze thread staan volgens mij gelijksoortige issues met sommige andere auto's, strekking was volgens mij om ook naar de aarding te kijken en de juiste aansluiting van de PE/CP.

Blbaa

Pagina: 1 ... 100 101 Laatste