# \[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:** 4

<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:** [January 12, 2026, 9:45am UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/61 "2026-01-12T09:45:34Z")

</div>

Hi, not that I’m aware off. Unfortunately my Wallbox internet connection failed for quite some time and I haven’t got around to fixing it. So unfortunately I don’t use my own app :P. So notifications like these are important. I hope that I find some time soon to look into it.

---

<div class="post-metadata">

**Author:** ![danone](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/danone/32/115743_2.png) [@danone](https://community.homey.app/u/danone)\
**Post date:** [January 12, 2026, 11:31am UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/62 "2026-01-12T11:31:36Z")

</div>

Thanks Roy! I would be happy to grant you temporary access to my Wallbox if that helps in any way.

---

<div class="post-metadata">

**Author:** ![LQnning](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/lqnning/32/121589_2.png) [@LQnning](https://community.homey.app/u/LQnning)\
**Post date:** [January 16, 2026, 11:28am UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/63 "2026-01-16T11:28:17Z")

</div>

I have the same problem.

---

<div class="post-metadata">

**Author:** ![danone](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/danone/32/115743_2.png) [@danone](https://community.homey.app/u/danone)\
**Post date:** [January 19, 2026, 3:35am UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/64 "2026-01-19T03:35:16Z")

</div>

Hey @rkokkelk the app is really unusable mate. Even without any flow I get the 429 error.

I know you’re busy and I respect that, just wonder what would take for you to have a quick look at this diagnosis report: 1b494101-1e3f-413a-a1ba-813589bebfef

Happy to give you access to my Wallbox.

Many thanks!

---

<div class="post-metadata">

**Author:** ![Sen-Sai](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/sen-sai/32/13164_2.png) [@Sen-Sai](https://community.homey.app/u/Sen-Sai)\
**Post date:** [March 5, 2026, 11:40pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/65 "2026-03-05T23:40:19Z")

</div>

It’s an easy fix. I’ve updated my homey script for the wallbox api with two lines to make it work.

What is the hold-up?

---

<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:** [March 17, 2026, 5:45pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/66 "2026-03-17T17:45:18Z")

</div>

Same problem here. Since a few weeks (probably also january…) often get errors and now even a non-resolvable “apparaat onbeschikbaar” (device not available).

This is of course not likely just at the time the sun starts shining 😉

@rkokkelk You think you’ll find time in the near future to look into this issue? I don’t know if it’s an option for you (if it’s even possible?) to appoint a co-developper?

Kind regards!

---

<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:** [March 17, 2026, 5:47pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/67 "2026-03-17T17:47:37Z")

</div>

Do you use homeyscript as a supplement for the wallbox app, or rather as a replacement? What are your actions you use the script for?

(sorry for my curiosity 😉 )

---

<div class="post-metadata">

**Author:** ![Sen-Sai](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/sen-sai/32/13164_2.png) [@Sen-Sai](https://community.homey.app/u/Sen-Sai)\
**Post date:** [March 17, 2026, 6:19pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/68 "2026-03-17T18:19:16Z")

</div>

No problem..

I currently use it, as the app is not working for me, to lock and unlock. It can pause charging, but I do not use it. I just want to hookup the car and then Google to start 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:** [March 17, 2026, 6:26pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/69 "2026-03-17T18:26:44Z")

</div>

Might look into this. I like to work with scripts (more self-control compared to an app), but I don’t know how to write them… Nowadays Gemini & Grok already wrote some really usefull scripts for me, so I might challenge them for this… 🙂

Thanks !

---

<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:** [March 17, 2026, 6:38pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/70 "2026-03-17T18:38:17Z")

</div>

Yeah I really need to find some time to work on it. You are correct. Unfortunately I haven’t fixed my own Wallbox yet, so I simply don’t have an option to test any new development until that is fixed. So kinda relying on other contributions for this issue.

Assigning a co-developer is a possibility, but given the fact that the app is open source any can contribute. But in the last couple of years I have only received a single attribution. So in general there is not much effort from within this community to aid the development.

---

<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:** [March 18, 2026, 6:47am UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/71 "2026-03-18T06:47:17Z")

</div>

@rkokkelk Thanks for your response. I understand.

Too bad that there’s very little contribution. I would love to help myself, but I don’t know \*\*\*\* about programming. I’m now looking into Homeyscripts (with the help of AI) for doing basic things with the charger (starting stopping status ampere).

I will post my succes or fail here later…

@Sen-Sai Do you run your script for a status update regularly? If yes: How often without running into the limits of the Wallbox API?

---

<div class="post-metadata">

**Author:** ![Sen-Sai](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/sen-sai/32/13164_2.png) [@Sen-Sai](https://community.homey.app/u/Sen-Sai)\
**Post date:** [March 18, 2026, 7:26am UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/72 "2026-03-18T07:26:51Z")

</div>

In the Forum there already is a homey script that does that. It’s just need two extra lines to work with new api restrictions. I don’t repeatedly call the api, from this topic here I think I remember once a minute is fine, not sure though.

When I’m back home I’ll have a look what those two extra lines were, might help the developer here as well.

---

<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:** [March 18, 2026, 11:06am UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/73 "2026-03-18T11:06:27Z")

</div>

Met onderstaand script lukt het me om de dingen te doen die ik wil.  
Status opvragen, laden starten en stoppen, Amperes instellen.  
Gemaakt met behulp van Grok (AI).

Het wordt allemaal aangestuurd via flows en gemonitord via het [Dashboard](https://community.homey.app/t/app-pro-new-dashboard-studio-a-completely-free-form-dashboard-designer/151169) van @Satoer . Ik heb er dus geen Virtual Device voor aangemaakt. Maar wellicht is dit ook mogelijk.  
Status flow loopt iedere 2 minuten, meer kan waarschijnlijk, maar voor mij volstaat het en loopt het momenteel zonder errors 🙂

```auto
// === WALLBOX PULSAR PLUS - HOMEYSCRIPT (volledig werkend 2026) ===
// Vul je gegevens in:
const username = 'hidden'; // myWallbox e-mail
const password = 'hidden'; // myWallbox wachtwoord
const MYCHARGERID = hidden; // Numeriek ID uit je JSON: 417955

const BASEURL = "https://api.wall-box.com/";
const URL_AUTH = 'auth/token/user';
const URL_GROUPS = 'v3/chargers/groups'; // Voor status ophalen
const URL_REMOTE = `v3/chargers/${MYCHARGERID}/remote-action`;
const URL_SET_CURRENT = `v2/charger/${MYCHARGERID}`;

// Handmatige base64 (nodig in HomeyScript)
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 authString = username + ':' + password;
  const base64Auth = toBase64(authString);

  const response = await fetch(BASEURL + URL_AUTH, {
    method: 'POST',
    headers: {
      'Authorization': 'Basic ' + base64Auth,
      'Accept': 'application/json',
      'Content-Type': 'application/json'
    }
  });

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

  const data = await response.json();
  if (!data.jwt) {
    const err = 'Geen JWT in response';
    console.log(err);
    await tag('Wallbox_error', err);
    throw new Error(err);
  }
  return data.jwt;
}

// Status ophalen via groups (meest betrouwbaar)
async function getStatus(token) {
  const response = await fetch(BASEURL + 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 chargerStatus = {
    status: 0,
    chargingPower: 0,
    maxChargingCurrent: 0,
    addedEnergy: 0,
    locked: false,
    connected: 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) {
            chargerStatus = {
              status: ch.status || 0,
              chargingPower: ch.chargingPower || 0,
              maxChargingCurrent: ch.maxChargingCurrent || 0,
              addedEnergy: ch.addedEnergy || 0,
              locked: ch.locked === 1,
              connected: ch.ocppConnectionStatus === 1
            };
            break;
          }
        }
      }
    }
  }

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

  return chargerStatus;
}

// Start / resume opladen
async function startCharging(token) {
  const response = await fetch(BASEURL + URL_REMOTE, {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer ' + token,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ action: 1 }) // 1 = resume/start
  });

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

// Stop / pause opladen
async function stopCharging(token) {
  const response = await fetch(BASEURL + URL_REMOTE, {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer ' + token,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ action: 2 }) // 2 = pause/stop
  });

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

// Set max laadvermogen (amps)
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(BASEURL + 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);
  }
}

// === Hoofdscript: run met argument via Flow ===
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);

    // Maak expliciete tags (nu verschijnen ze echt!)
    await tag('Wallbox_status', status.status); // Number: bijv. 182
    await tag('Wallbox_chargingPower', status.chargingPower); // Number: kW
    await tag('Wallbox_maxCurrent', status.maxChargingCurrent); // Number: A
    await tag('Wallbox_addedEnergy', status.addedEnergy); // Number: kWh deze sessie
    await tag('Wallbox_locked', status.locked ? 'true' : 'false');
    await tag('Wallbox_connected', status.connected ? 'true' : 'false');
    await tag('Wallbox_lastUpdate', new Date().toLocaleString()); // Text: wanneer laatste update

    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', ''); // Reset error
    console.log('Opladen gestart / hervat');
    return 'Gestart';

  } else if (arg === 'stop') {
    await stopCharging(token);
    await tag('Wallbox_lastAction', 'Gestopt');
    await tag('Wallbox_error', ''); // Reset error
    console.log('Opladen gestopt / gepauzeerd');
    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); // Update direct
    await tag('Wallbox_error', ''); // Reset error
    console.log(`Max current gezet op ${amps}A`);
    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:** ![rvdeijk](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/rvdeijk/32/22542_2.png) [@rvdeijk](https://community.homey.app/u/rvdeijk)\
**Post date:** [April 2, 2026, 4:22pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/74 "2026-04-02T16:22:48Z")

</div>

@rkokkelk I have a question: why has version 1.0.0 been in testing since July 2025? The latest formal release is version 0.3.1, is this intentional?

I don’t own a car charger yet, but I’ve done some research on what to buy in case I get a new car. Homey integration would be great. So the wallbox popped up

Edit: I read this topic and the reason became more clear.

---

<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:** [April 5, 2026, 9:49am UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/75 "2026-04-05T09:49:17Z")

</div>

At this moment I think the main reason is that the original developper doesn’t really have the time anymore, and also issues with his own charger… So he hasn’t got the possibilities to test new stuff.

With the above script you can do basic things with the Wallbox. If you want more things to be done, or differently, you can upload the script to Gemini, ChatGPT, Grok,… and ask it to help you adapt the script to your needs…

On the other hand, if your choice of charger is still open, I would consider a charger with an official Homey App…

---

<div class="post-metadata">

**Author:** ![Edwin\_Biemond](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/edwin_biemond/32/72686_2.png) [@Edwin\_Biemond](https://community.homey.app/u/Edwin_Biemond)\
**Post date:** [April 5, 2026, 9:56am UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/76 "2026-04-05T09:56:20Z")

</div>

did a checkout of the code, changed the interval of polling and install it locally

```auto

const POLL_INTERVAL = 122; // Follow API guidelines

```

---

<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:** [April 5, 2026, 12:18pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/77 "2026-04-05T12:18:09Z")

</div>

That’s the code of the app? I don’t know how to do that, but feel free to give a little more explanation 😉

For me with the script works fine. (Runs every 2 minutes, roughly the same as the 122 seconds, i guess) In the beginning I had an error now and then, but that was mainly my own fault trying to start charging while the car was disconnected ands..

Where do you find the API guidelines?

---

<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:** [April 25, 2026, 12:19pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/78 "2026-04-25T12:19:53Z")

</div>

> [@Bert\_Onraedt](#):
>
> On the other hand, if your choice of charger is still open, I would consider a charger with an official Homey App…

I consider another charger due to ERE-certificate. Do you know of a carcharger which fulfils the ERE-demands (build-in MIDI-meter) and is supported by Homey Pro?

Thank you.

---

<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:** [April 25, 2026, 12:33pm UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/79 "2026-04-25T12:33:08Z")

</div>

I don’t know what the ERE-regulations are.

I would look into the Best Buy Guide from Homey and look up which ones have an official app. I think a while ago it wa only 2 or 3…

Then I would look these chargers up to find out if they match the ERE-regulations?

I know Tesla has a version of it’s charger with a MID-meter in it, but I don’t see it on their website, so I’m afraid it’s not available in Belgium…

---

<div class="post-metadata">

**Author:** ![P\_Janssen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/p_janssen/32/125500_2.png) [@P\_Janssen](https://community.homey.app/u/P_Janssen)\
**Post date:** [May 17, 2026, 6:34am UTC](https://community.homey.app/t/app-pro-wallbox-charger-smart-ev-charging-technology-made-simple/139333/80 "2026-05-17T06:34:51Z")

</div>

Bought a Wallbox and know I m trying to connect it to my Homy pro

I always get an 403 error what I m doing wrong ???

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

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