# \[APP\]\[Pro\] Wallbox Charger - Smart EV charging technology made simple

**URL:** <https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333>\
**Category:** Apps\
**Tags:** app, homey-pro, community-app\
**Created:** [March 30, 2023, 2:28pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333 "2023-03-30T14:28:02Z")\
**Posts on this page:** 20\
**Page:** 5

<div class="post-metadata">

**Author:** ![Bert\_Onraedt](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/bert_onraedt/32/79096_2.png) [@Bert\_Onraedt](https://community.homey.app/u/Bert_Onraedt)\
**Post date:** [May 23, 2026, 4:07pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/81 "2026-05-23T16:07:36Z")

</div>

Hi,

You’re probably doing nothing wrong. The app is broken and the original creator of the app doesn’t have the time or posiibility to fix it.

If you read the last 20-something posts here in this topic, you’ll have an idea of what your options are.

Few people have updated the app locally, but I don’t know how to do that.

I had Gemini, Grok & Claude.AI make a script (also somewhere here among the last posts) that I run using flows & arguments. It’s not flawless, but it works for me…

---

<div class="post-metadata">

**Author:** ![Bernd\_Gaykema](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/bernd_gaykema/32/112153_2.png) [@Bernd\_Gaykema](https://community.homey.app/u/Bernd_Gaykema)\
**Post date:** [May 30, 2026, 8:22pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/82 "2026-05-30T20:22:54Z")

</div>

ERE (Emissiereductie-eenheden) is a way to get some money for every kWh you put in your car.

I give up on this WallBox app as it is not working for me.  
I go for the Zaptec Go2 which has an official Homey app supporting it.

---

<div class="post-metadata">

**Author:** ![Henrik\_Oscarsson](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/henrik_oscarsson/32/114157_2.png) [@Henrik\_Oscarsson](https://community.homey.app/u/Henrik_Oscarsson)\
**Post date:** [June 11, 2026, 6:58am UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/83 "2026-06-11T06:58:53Z")

</div>

The day before yesterday I lost connection to the app and since then I cannot log in. Whenever I try, I get a quick reply, “404”. e845a815-9a7f-40ac-8c0c-ae9e1697df8e

Is there anything I can do to fix this? Everything has been running ok until now.

---

<div class="post-metadata">

**Author:** ![Bert\_Onraedt](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/bert_onraedt/32/79096_2.png) [@Bert\_Onraedt](https://community.homey.app/u/Bert_Onraedt)\
**Post date:** [June 11, 2026, 2:25pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/84 "2026-06-11T14:25:59Z")

</div>

Same here with my own script. Stopped working yesterday. Even after a cooldown-period of 12+ hours always getting a 404… which is a bummer ofcourse.

---

<div class="post-metadata">

**Author:** ![rkokkelk](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/rkokkelk/32/26853_2.png) [@rkokkelk](https://community.homey.app/u/rkokkelk)\
**Post date:** [June 11, 2026, 7:03pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/85 "2026-06-11T19:03:26Z")

</div>

Looks nice, would even be better if you have provided it as a PR.

---

<div class="post-metadata">

**Author:** ![rkokkelk](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/rkokkelk/32/26853_2.png) [@rkokkelk](https://community.homey.app/u/rkokkelk)\
**Post date:** [June 11, 2026, 7:05pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/86 "2026-06-11T19:05:12Z")

</div>

Hey guys; the 404 error codes is because Wallbox changed their API’s. That broke the current implementation. I’m currently reverse engineering the APIs in order to fix it.

Please note that there is already an [Github issue](https://github.com/rkokkelk/nl.xseth.wallbox/issues/62) for it so please refrain from creating duplicates.

---

<div class="post-metadata">

**Author:** ![rkokkelk](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/rkokkelk/32/26853_2.png) [@rkokkelk](https://community.homey.app/u/rkokkelk)\
**Post date:** [June 11, 2026, 7:59pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/87 "2026-06-11T19:59:24Z")

</div>

A new version which includes the fixes is available at:  
\* [Wallbox Charger | Homey](https://homey.app/a/nl.xseth.wallbox/test/)

---

<div class="post-metadata">

**Author:** ![Henrik\_Oscarsson](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/henrik_oscarsson/32/114157_2.png) [@Henrik\_Oscarsson](https://community.homey.app/u/Henrik_Oscarsson)\
**Post date:** [June 11, 2026, 8:10pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/89 "2026-06-11T20:10:02Z")

</div>

Thank you, it’s seems to be working now. 🙂

---

<div class="post-metadata">

**Author:** ![Frans\_Vos](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/frans_vos/32/105708_2.png) [@Frans\_Vos](https://community.homey.app/u/Frans_Vos)\
**Post date:** [June 12, 2026, 5:52am UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/90 "2026-06-12T05:52:44Z")

</div>

Thank You!!! Great work.

The app functions again correctly

---

<div class="post-metadata">

**Author:** ![Bert\_Onraedt](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/bert_onraedt/32/79096_2.png) [@Bert\_Onraedt](https://community.homey.app/u/Bert_Onraedt)\
**Post date:** [June 12, 2026, 3:00pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/91 "2026-06-12T15:00:07Z")

</div>

Updated the script as well.

It will still not win a beauty-contest - i know -, but it works…

```auto
// === WALLBOX PULSAR PLUS - HOMEYSCRIPT (bijgewerkt juni 2026) ===
// Wijziging: nieuw auth-endpoint (user-api.wall-box.com/users/signin)

const username = 'login'; // myWallbox e-mail
const password = 'password'; // wijzig dit naar je nieuwe wachtwoord!
const MYCHARGERID = charger_id;

const API_BASE = "https://api.wall-box.com/";
const AUTH_BASE = "https://user-api.wall-box.com/";

const URL_AUTH = 'users/signin';
const URL_GROUPS = 'v3/chargers/groups';
const URL_REMOTE = `v3/chargers/${MYCHARGERID}/remote-action`;
const URL_SET_CURRENT = `v2/charger/${MYCHARGERID}`;

function toBase64(str) {
  const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
  let output = '';
  let i = 0;
  str = unescape(encodeURIComponent(str));
  while (i < str.length) {
    const a = str.charCodeAt(i++);
    const b = str.charCodeAt(i++);
    const c = str.charCodeAt(i++);
    const triplet = (a << 16) | (isNaN(b) ? 0 : b << 8) | (isNaN(c) ? 0 : c);
    output += chars.charAt((triplet >> 18) & 63) +
              chars.charAt((triplet >> 12) & 63) +
              (isNaN(b) ? '=' : chars.charAt((triplet >> 6) & 63)) +
              (isNaN(c) ? '=' : chars.charAt(triplet & 63));
  }
  return output;
}

async function getToken() {

  const auth = Buffer.from(username + ":" + password).toString("base64");

  const response = await fetch("https://user-api.wall-box.com/users/signin", {
    method: "GET",
    headers: {
      "Authorization": "Basic " + auth,
      "Partner": "wallbox",
      "Accept": "application/json"
    }
  });

  const raw = await response.text();

  console.log("LOGIN STATUS:", response.status);

  let data;

  try {
    data = JSON.parse(raw);
  } catch (e) {
    throw new Error("Login is not JSON: " + raw);
  }

  if (
    !data.data ||
    !data.data.attributes ||
    !data.data.attributes.token
  ) {
    throw new Error("No token received: " + raw);
  }

  return data.data.attributes.token;
}

async function getStatus(token) {
  const response = await fetch(API_BASE + URL_GROUPS, {
    method: 'GET',
    headers: { 'Authorization': 'Bearer ' + token, 'Accept': 'application/json' }
  });

  if (!response.ok) {
    const err = 'Groups fout: HTTP ' + response.status;
    console.log(err);
    await tag('Wallbox_error', err);
    throw new Error(err);
  }

  const data = await response.json();
  let found = false;
  let chargerStatus = {
    status: 0, chargingPower: 0, maxChargingCurrent: 0, addedEnergy: 0,
    locked: false, online: false, isCharging: false, carConnected: false
  };

  if (data.result && data.result.groups) {
    for (const group of data.result.groups) {
      if (group.chargers) {
        for (const ch of group.chargers) {
          if (ch.id === MYCHARGERID) {
            found = true;
            const isCharging = ch.status === 182;
            const isOnline = ch.status !== 0;
            chargerStatus = {
              status: ch.status || 0,
              chargingPower: ch.chargingPower || 0,
              maxChargingCurrent: ch.maxChargingCurrent || 0,
              addedEnergy: ch.addedEnergy || 0,
              locked: ch.locked === 1,
              online: isOnline,
              isCharging: isCharging,
              carConnected: isCharging
            };
            break;
          }
        }
      }
    }
  }

  if (!found) {
    const err = 'Charger niet gevonden in groups';
    console.log(err);
    await tag('Wallbox_error', err);
    throw new Error(err);
  }

  return chargerStatus;
}

async function startCharging(token) {
  const response = await fetch(API_BASE + URL_REMOTE, {
    method: 'POST',
    headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
    body: JSON.stringify({ action: 1 })
  });
  if (!response.ok) {
    const err = 'Start fout: HTTP ' + response.status;
    console.log(err);
    await tag('Wallbox_error', err);
    throw new Error(err);
  }
}

async function stopCharging(token) {
  const response = await fetch(API_BASE + URL_REMOTE, {
    method: 'POST',
    headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
    body: JSON.stringify({ action: 2 })
  });
  if (!response.ok) {
    const err = 'Stop fout: HTTP ' + response.status;
    console.log(err);
    await tag('Wallbox_error', err);
    throw new Error(err);
  }
}

async function setAmps(token, amps) {
  if (amps < 6 || amps > 32) {
    const err = 'Amps moet tussen 6 en 32 liggen';
    console.log(err);
    await tag('Wallbox_error', err);
    throw new Error(err);
  }
  const response = await fetch(API_BASE + URL_SET_CURRENT, {
    method: 'PUT',
    headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
    body: JSON.stringify({ maxChargingCurrent: amps })
  });
  if (!response.ok) {
    const err = 'Set amps fout: HTTP ' + response.status;
    console.log(err);
    await tag('Wallbox_error', err);
    throw new Error(err);
  }
}

if (!args || args.length === 0 || typeof args[0] !== 'string') {
  const err = 'Geef een argument: status | start | stop | set 6 | set 10';
  console.log(err);
  await tag('Wallbox_error', err);
  throw new Error(err);
}

const arg = args[0].trim().toLowerCase();

try {
  const token = await getToken();

  if (arg === 'status') {
    const status = await getStatus(token);
    await tag('Wallbox_status', status.status);
    await tag('Wallbox_chargingPower', status.chargingPower);
    await tag('Wallbox_maxCurrent', status.maxChargingCurrent);
    await tag('Wallbox_addedEnergy', status.addedEnergy);
    await tag('Wallbox_locked', status.locked ? 'true' : 'false');
    await tag('Wallbox_online', status.online ? 'true' : 'false');
    await tag('Wallbox_isCharging', status.isCharging ? 'true' : 'false');
    await tag('Wallbox_carConnected', status.carConnected ? 'true' : 'false');
    await tag('Wallbox_lastUpdate', new Date().toLocaleString());
    await tag('Wallbox_error', '');
    console.log('Status tags aangemaakt:', status);
    return 'Status opgehaald en tags gezet';

  } else if (arg === 'start') {
    await startCharging(token);
    await tag('Wallbox_lastAction', 'Gestart');
    await tag('Wallbox_error', '');
    return 'Gestart';

  } else if (arg === 'stop') {
    await stopCharging(token);
    await tag('Wallbox_lastAction', 'Gestopt');
    await tag('Wallbox_error', '');
    return 'Gestopt';

  } else if (arg.startsWith('set ')) {
    const ampsStr = arg.split(' ')[1];
    const amps = parseInt(ampsStr, 10);
    if (isNaN(amps)) throw new Error('Ongeldig amps: ' + ampsStr);
    await setAmps(token, amps);
    await tag('Wallbox_lastAction', `Set ${amps}A`);
    await tag('Wallbox_maxCurrent', amps);
    await tag('Wallbox_error', '');
    return `Set ${amps}A`;

  } else {
    throw new Error('Ongeldig argument: ' + arg);
  }

} catch (err) {
  console.log('Hoofdfout:', err.message);
  await tag('Wallbox_error', err.message);
  throw err;
}

```

---

<div class="post-metadata">

**Author:** ![peav](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/peav/32/34205_2.png) [@peav](https://community.homey.app/u/peav)\
**Post date:** [June 13, 2026, 8:14am UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/92 "2026-06-13T08:14:29Z")

</div>

Thanks for the update. I think there is many that appreciate you work, but…a little but. Your ‘Stop Charging’ card return (still) with a 403, but in version 0.3.1 you had a ‘Pause Charging’ card, that did the work, stopped the charging. If you find time, could you kindly restore the ‘Pause Charging’ card, or find a fix for the Stop Charging card 🙂

---

<div class="post-metadata">

**Author:** ![rkokkelk](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/rkokkelk/32/26853_2.png) [@rkokkelk](https://community.homey.app/u/rkokkelk)\
**Post date:** [June 13, 2026, 6:40pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/93 "2026-06-13T18:40:23Z")

</div>

> [@peav](#):
>
> fix

Hey, this is a weerd bug. So basically I removed the card because Homey added new capabilities specific to pausing and resuming charging. So instead of app specific cards I now rely on the Homey default capabilities. Within the app this still uses the exact same function as the pause /resume action cards. In that functionality nothing has changed. Checking the API this still looks the appropriate API call in order to do it ( I have to rely on other opensource code that describes the Wallbox API because I don’t have access to the official API documentation).

Unfortunately, my wallbox has been disconnected for quite some time and I can’t actively debug it on my own. Hopefully that changes in the foreseeable future, but until then; I kinda hope that someone else could debug this issue and make a nice PR.

---

<div class="post-metadata">

**Author:** ![Bert\_Onraedt](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/bert_onraedt/32/79096_2.png) [@Bert\_Onraedt](https://community.homey.app/u/Bert_Onraedt)\
**Post date:** [June 14, 2026, 11:41am UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/94 "2026-06-14T11:41:02Z")

</div>

I also updated the script. This time it reflects the correct statusses. I noticed in my previous script there were statusses that didn’t reflect the real status (connected/charging/…). This should now be ok.

```auto
// === WALLBOX PULSAR PLUS - HOMEYSCRIPT (bijgewerkt juni 2026) ===

const username = 'login'; // myWallbox e-mail
const password = 'password'; // wijzig dit naar je nieuwe wachtwoord!
const MYCHARGERID = chargerid;

const API_BASE = "https://api.wall-box.com/";
const URL_GROUPS = 'v3/chargers/groups';
const URL_REMOTE = `v3/chargers/${MYCHARGERID}/remote-action`;
const URL_SET_CURRENT = `v2/charger/${MYCHARGERID}`;

function toBase64(str) {
  const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
  let output = '';
  let i = 0;
  str = unescape(encodeURIComponent(str));
  while (i < str.length) {
    const a = str.charCodeAt(i++);
    const b = str.charCodeAt(i++);
    const c = str.charCodeAt(i++);
    const triplet = (a << 16) | (isNaN(b) ? 0 : b << 8) | (isNaN(c) ? 0 : c);
    output += chars.charAt((triplet >> 18) & 63) +
              chars.charAt((triplet >> 12) & 63) +
              (isNaN(b) ? '=' : chars.charAt((triplet >> 6) & 63)) +
              (isNaN(c) ? '=' : chars.charAt(triplet & 63));
  }
  return output;
}

async function getToken() {

  const auth = Buffer.from(username + ":" + password).toString("base64");

  const response = await fetch("https://user-api.wall-box.com/users/signin", {
    method: "GET",
    headers: {
      "Authorization": "Basic " + auth,
      "Partner": "wallbox",
      "Accept": "application/json"
    }
  });

  const raw = await response.text();

  let data;

  try {
    data = JSON.parse(raw);
  } catch (e) {
    throw new Error("Login is not JSON: " + raw);
  }

  if (
    !data.data ||
    !data.data.attributes ||
    !data.data.attributes.token
  ) {
    throw new Error("No token received: " + raw);
  }

  return data.data.attributes.token;
}

async function getStatus(token) {
  const response = await fetch(API_BASE + URL_GROUPS, {
    method: 'GET',
    headers: { 'Authorization': 'Bearer ' + token, 'Accept': 'application/json' }
  });

  if (!response.ok) {
    const err = 'Groups fout: HTTP ' + response.status;
    console.log(err);
    await tag('Wallbox_error', err);
    throw new Error(err);
  }

  const data = await response.json();
  let found = false;
  let chargerStatus = {
  status: 0,
  chargingPower: 0,
  maxChargingCurrent: 0,
  addedEnergy: 0,
  locked: false,
  online: false,
  isCharging: false,
  carConnected: false
};

  if (data.result && data.result.groups) {
    for (const group of data.result.groups) {
      if (group.chargers) {
        for (const ch of group.chargers) {
         if (ch.id === MYCHARGERID) {
  found = true;

const statusCode = ch.status || 0;

const isOnline = statusCode !== 0;

// Alleen werkelijk laden als er effectief vermogen loopt
const isCharging = (ch.chargingPower || 0) > 100;

// Auto verbonden?
const carConnected = statusCode !== 161;

chargerStatus = {
  status: statusCode,
  chargingPower: ch.chargingPower || 0,
  maxChargingCurrent: ch.maxChargingCurrent || 0,
  addedEnergy: ch.addedEnergy || 0,
  locked: ch.locked === 1,
  online: isOnline,
  isCharging: isCharging,
  carConnected: carConnected
};

break;
}

        }
      }
    }
  }

  if (!found) {
    const err = 'Charger niet gevonden in groups';
    console.log(err);
    await tag('Wallbox_error', err);
    throw new Error(err);
  }

  return chargerStatus;
}

async function startCharging(token) {
  const response = await fetch(API_BASE + URL_REMOTE, {
    method: 'POST',
    headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
    body: JSON.stringify({ action: 1 })
  });
  if (!response.ok) {
    const err = 'Start fout: HTTP ' + response.status;
    console.log(err);
    await tag('Wallbox_error', err);
    throw new Error(err);
  }
}

async function stopCharging(token) {
  const response = await fetch(API_BASE + URL_REMOTE, {
    method: 'POST',
    headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
    body: JSON.stringify({ action: 2 })
  });
  if (!response.ok) {
    const err = 'Stop fout: HTTP ' + response.status;
    console.log(err);
    await tag('Wallbox_error', err);
    throw new Error(err);
  }
}

async function setAmps(token, amps) {
  if (amps < 6 || amps > 32) {
    const err = 'Amps moet tussen 6 en 32 liggen';
    console.log(err);
    await tag('Wallbox_error', err);
    throw new Error(err);
  }
  const response = await fetch(API_BASE + URL_SET_CURRENT, {
    method: 'PUT',
    headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
    body: JSON.stringify({ maxChargingCurrent: amps })
  });
  if (!response.ok) {
    const err = 'Set amps fout: HTTP ' + response.status;
    console.log(err);
    await tag('Wallbox_error', err);
    throw new Error(err);
  }
}

if (!args || args.length === 0 || typeof args[0] !== 'string') {
  const err = 'Geef een argument: status | start | stop | set 6 | set 10';
  console.log(err);
  await tag('Wallbox_error', err);
  throw new Error(err);
}

const arg = args[0].trim().toLowerCase();

try {
  const token = await getToken();

  if (arg === 'status') {
    const status = await getStatus(token);
    await tag('Wallbox_status', status.status);
    await tag('Wallbox_chargingPower', status.chargingPower);
    await tag('Wallbox_maxCurrent', status.maxChargingCurrent);
    await tag('Wallbox_addedEnergy', status.addedEnergy);
    await tag('Wallbox_locked', status.locked ? 'true' : 'false');
    await tag('Wallbox_online', status.online ? 'true' : 'false');
    await tag('Wallbox_isCharging', status.isCharging ? 'true' : 'false');
    await tag('Wallbox_carConnected', status.carConnected ? 'true' : 'false');
    await tag('Wallbox_lastUpdate', new Date().toLocaleString());
    await tag('Wallbox_error', '');
    console.log('Status tags aangemaakt:', status);
    return 'Status opgehaald en tags gezet';

  } else if (arg === 'start') {
    await startCharging(token);
    await tag('Wallbox_lastAction', 'Gestart');
    await tag('Wallbox_error', '');
    return 'Gestart';

  } else if (arg === 'stop') {
    await stopCharging(token);
    await tag('Wallbox_lastAction', 'Gestopt');
    await tag('Wallbox_error', '');
    return 'Gestopt';

  } else if (arg.startsWith('set ')) {
    const ampsStr = arg.split(' ')[1];
    const amps = parseInt(ampsStr, 10);
    if (isNaN(amps)) throw new Error('Ongeldig amps: ' + ampsStr);
    await setAmps(token, amps);
    await tag('Wallbox_lastAction', `Set ${amps}A`);
    await tag('Wallbox_maxCurrent', amps);
    await tag('Wallbox_error', '');
    return `Set ${amps}A`;

  } else {
    throw new Error('Ongeldig argument: ' + arg);
  }

} catch (err) {
  console.log('Hoofdfout:', err.message);
  await tag('Wallbox_error', err.message);
  throw err;
}

```

---

<div class="post-metadata">

**Author:** ![rkokkelk](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/rkokkelk/32/26853_2.png) [@rkokkelk](https://community.homey.app/u/rkokkelk)\
**Post date:** [June 14, 2026, 7:08pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/95 "2026-06-14T19:08:39Z")

</div>

Okay, so finally I’ve fixed my own wallbox so I can do some proper testing again. The 403 for pausing / starting charging only occurs for me when no car is connected. When there is a car connected it executes with no error. The message could definitely improve so I would publish a new version with better feedback.

---

<div class="post-metadata">

**Author:** ![peav](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/peav/32/34205_2.png) [@peav](https://community.homey.app/u/peav)\
**Post date:** [June 15, 2026, 1:53pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/96 "2026-06-15T13:53:29Z")

</div>

Thanks for sharing..

---

<div class="post-metadata">

**Author:** ![itshows](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/itshows/32/9204_2.png) [@itshows](https://community.homey.app/u/itshows)\
**Post date:** [June 23, 2026, 11:44am UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/97 "2026-06-23T11:44:53Z")

</div>

Thanks for the update, i use your script (big thanks) to lock, unlock, start, stop and change charge current. Works perfect.

---

<div class="post-metadata">

**Author:** ![Bert\_Onraedt](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/bert_onraedt/32/79096_2.png) [@Bert\_Onraedt](https://community.homey.app/u/Bert_Onraedt)\
**Post date:** [June 23, 2026, 4:50pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/98 "2026-06-23T16:50:31Z")

</div>

It’s good to know that some people actually use it (besides me). Thanks.

I guess you had to adapt it for locking & unlocking as that is a function that i don’t use myself? Feel free to elaborate on this part.

---

<div class="post-metadata">

**Author:** ![droidekas](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/droidekas/32/10308_2.png) [@droidekas](https://community.homey.app/u/droidekas)\
**Post date:** [June 25, 2026, 5:19am UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/99 "2026-06-25T05:19:56Z")

</div>

Since the 1.1.0 update, energy consumption is no longer being reported correctly. While power (W) is measured accurately, the total energy amount (kWh) is incorrect.

The 1.0.0 version was reporting both correctly.

Here is insights from last 24h and Energy tab from yesterday. As seen in the power graph, it was charging at 10,7kW for about 1,5h but the energy amount reported is 4kWh.

Somthing is off.

 ![Skärmbild 2026-06-25 064509](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/1/6/16eb65990e2fbd9fbd3a7cc4aa27d44d1c447e86.png)

 ![Screenshot_20260625-064726](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/2/a/2ab8a92099d4c4736931c48552639fe2792e40b6.png)

---

<div class="post-metadata">

**Author:** ![Arne\_Sch](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/arne_sch/32/121047_2.png) [@Arne\_Sch](https://community.homey.app/u/Arne_Sch)\
**Post date:** [July 13, 2026, 4:41am UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/100 "2026-07-13T04:41:41Z")

</div>

Does anyone know if there’s a way to stop the charging, but for it to still do the solar charging built in to the Wallbox app? Now if I ‘stop charging’ with a flow I have to go into the app to resume schedule or solar charging.

---

<div class="post-metadata">

**Author:** ![Bert\_Onraedt](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/bert_onraedt/32/79096_2.png) [@Bert\_Onraedt](https://community.homey.app/u/Bert_Onraedt)\
**Post date:** [July 13, 2026, 3:00pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/101 "2026-07-13T15:00:47Z")

</div>

For my personal situation, I kicked out the Wallbox’s own load-balancing-gear. (Which is used to run solar charging from the Wallbox)

It’s probably not impossible, but I think 2 seperate systems controlling the same device is asking for problems.

I only use Homey to control the Wallbox, based on the values that my energy-meter (Homewizard P1) and Solar-inverter report to Homey. Also, I don’t use the app anymore, but use my own script (posted above) which works pretty flawlessly since the last update.

I talked with Gemini AI about your case. The API seems to allow you to start & stop the EcoSmart function of the Wallbox.

- You will need to adapt the script, but Gemini, ChatGPT,… can help you with that if you feed it enough data (like homeyscript, github, home assistant-plugins for wallbox,…)

- You will need to check your Homey Flows to avoid interference in controlling your Wallbox from both the integrated solar-charging (EcoSmart) and your Homey Flows…

[Previous page](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333.md?page=4)

[Next page](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333.md?page=6)
