# Création d’un script pour allumer éteindre une prise connectée en fonction de l’état de la batterie d’une tablette

**URL:** <https://community.homey.app/t/creation-d-un-script-pour-allumer-eteindre-une-prise-connectee-en-fonction-de-l-etat-de-la-batterie-d-une-tablette/131397>\
**Category:** Questions & Aide\
**Created:** [February 23, 2025, 1:59pm UTC](https://community.homey.app/t/creation-d-un-script-pour-allumer-eteindre-une-prise-connectee-en-fonction-de-l-etat-de-la-batterie-d-une-tablette/131397 "2025-02-23T13:59:46Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jonathan\_Visage](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/jonathan_visage/32/120728_2.png) [@Jonathan\_Visage](https://community.homey.app/u/Jonathan_Visage)\
**Post date:** [February 23, 2025, 1:59pm UTC](https://community.homey.app/t/creation-d-un-script-pour-allumer-eteindre-une-prise-connectee-en-fonction-de-l-etat-de-la-batterie-d-une-tablette/131397/1 "2025-02-23T13:59:46Z")

</div>

Bonjour à tous, j’ai créé un script pour allumer ou Éteindre une prise connectée en fonction de l’état de la batterie de ma tablette, le script me renvoie une erreur lors du contrôle du chargeur : Missing Parameter :capacitéId.  
Avez-vous une piste ou une solution pour remédier au problème ?

 ![IMG_3C811AE5-D089-44AC-B917-E1374E28DD1A](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/0/7/07df0991c6083d43ffadfc1726277926a4cfb96e.jpeg)

[/details]

---

<div class="post-metadata">

**Author:** ![OH2TH](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/oh2th/32/111414_2.png) [@OH2TH](https://community.homey.app/u/OH2TH)\
**Post date:** [February 23, 2025, 2:49pm UTC](https://community.homey.app/t/creation-d-un-script-pour-allumer-eteindre-une-prise-connectee-en-fonction-de-l-etat-de-la-batterie-d-une-tablette/131397/2 "2025-02-23T14:49:25Z")

</div>

Bienvenue sur le forum,

> Ce sujet a été déplacé dans la partie française du forum, merci de votre attention pour choisir la bonne catégorie/langue.

> Si vous rencontrez des problèmes avec les actions de modération, n’hésitez pas à me contacter ou à contacter un autre modérateur via Message Privé.  
> [translated by Google]

---

<div class="post-metadata">

**Author:** ![sebyldino](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/sebyldino/32/20067_2.png) [@sebyldino](https://community.homey.app/u/sebyldino)\
**Post date:** [February 24, 2025, 5:40am UTC](https://community.homey.app/t/creation-d-un-script-pour-allumer-eteindre-une-prise-connectee-en-fonction-de-l-etat-de-la-batterie-d-une-tablette/131397/3 "2025-02-24T05:40:54Z")

</div>

Bonjour,

Peux tu partager ton script stp.

Je pense qu’il te manque `capabilityId, onoff`

Et il n’ y’ a pas un problème de traduction?  
“consoler.log” devrait être “console.log”, également “attraper” , “autre”,…

---

<div class="post-metadata">

**Author:** ![Jonathan\_Visage](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/jonathan_visage/32/120728_2.png) [@Jonathan\_Visage](https://community.homey.app/u/Jonathan_Visage)\
**Post date:** [February 24, 2025, 5:22pm UTC](https://community.homey.app/t/creation-d-un-script-pour-allumer-eteindre-une-prise-connectee-en-fonction-de-l-etat-de-la-batterie-d-une-tablette/131397/4 "2025-02-24T17:22:51Z")

</div>

bonjour, merci pour le retour rapide.

voici mon scritp

// Variables  
const batteryUrl = “\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*”;  
const chargerId = “08:dd:eb:ff:fe:d0:2f:10”; // ID réel du chargeur

// Fonction pour récupérer le niveau de batterie  
async function getBatteryLevel() {  
try {  
const response = await fetch(batteryUrl);  
const data = await response.json();  
console.log(“Réponse complète de Firebase:”, data);

```
    if (data && data.niveau) {
        return parseInt(data.niveau, 10); // Convertit le niveau de batterie en entier
    } else {
        throw new Error("Niveau de batterie introuvable dans la réponse.");
    }
} catch (err) {
    throw new Error("Erreur lors de la récupération des données Firebase: " + err.message);
}

```

}

// Fonction pour controler le chargeur  
async function setChargerState(state) {  
try {  
await Homey.devices.setCapabilityValue(chargerId, “onoff”, state);  
console.log(“Chargeur mis a jour :”, state ? “Activé” : “Désactivé”);  
} catch (err) {  
console.error(“erreur lors du contrôle du chargeur :”, err.message);  
}  
}

// Logique principale  
(async () =\> {  
try {  
const batteryLevel = await getBatteryLevel();  
console.log(“Niveau de batterie:”, batteryLevel);

```
    if (batteryLevel >= 99) {
        console.log("Condition remplie : batteryLevel >= 99.");
        console.log("Tentative de désactivation du chargeur.");
        await setChargerState(false); // Désactive le chargeur
    } else if (batteryLevel <= 25) {
        console.log("Condition remplie : batteryLevel <= 25.");
        console.log("Tentative d'activation du chargeur.");
        await setChargerState(true); // Active le chargeur
    } else {
        console.log("Batterie dans la plage normale. Aucun changement.");
    }
} catch (err) {
    console.error("Erreur dans le script:", err.message);
}

```

})();

homey me traduit le script en français

---

<div class="post-metadata">

**Author:** ![sebyldino](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/sebyldino/32/20067_2.png) [@sebyldino](https://community.homey.app/u/sebyldino)\
**Post date:** [February 26, 2025, 6:28am UTC](https://community.homey.app/t/creation-d-un-script-pour-allumer-eteindre-une-prise-connectee-en-fonction-de-l-etat-de-la-batterie-d-une-tablette/131397/5 "2025-02-26T06:28:18Z")

</div>

Bonjour,

`chargerId ` est il correcte? Car cela ne ressemble pas à un ID Homey (voir [developper tools → Devices](https://tools.developer.homey.app/tools/devices))  
 ![id](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/0/3/036a29b64c6592a87eba2d4c93c563460a7da47b.jpeg)

Sinon en remplaçant ce block:

```auto
// Fonction pour controler le chargeur
async function setChargerState(state) {
    try {
        await Homey.devices.setCapabilityValue(chargerId, "onoff", state);
        console.log("Chargeur mis a jour :", state ? "Activé" : "Désactivé");
    } catch (err) {
        console.error("erreur lors du contrôle du chargeur :", err.message);
    }
}

```

Par ce block:

```auto
// Fonction pour controler le chargeur
async function setChargerState(state) {
    await Homey.devices.setCapabilityValue({
        deviceId: chargerId,
        capabilityId: 'onoff',
        value: state,
    }).catch(console.error);
}

```

Ça donne quoi?

---

<div class="post-metadata">

**Author:** ![Jonathan\_Visage](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/jonathan_visage/32/120728_2.png) [@Jonathan\_Visage](https://community.homey.app/u/Jonathan_Visage)\
**Post date:** [February 26, 2025, 5:56pm UTC](https://community.homey.app/t/creation-d-un-script-pour-allumer-eteindre-une-prise-connectee-en-fonction-de-l-etat-de-la-batterie-d-une-tablette/131397/6 "2025-02-26T17:56:58Z")

</div>

Bonjour.

Effectivement l’ID est incorrecte je l’avais pris sur l’application Homey et non sur tool developer.

J’ai remplacé l’ID j’attends que la tablette soit chargé pour voir si le chargeur s’éteint bien.

Je fait un retour dès que j’ai le résultat.

---

<div class="post-metadata">

**Author:** ![Jonathan\_Visage](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/jonathan_visage/32/120728_2.png) [@Jonathan\_Visage](https://community.homey.app/u/Jonathan_Visage)\
**Post date:** [February 27, 2025, 5:58am UTC](https://community.homey.app/t/creation-d-un-script-pour-allumer-eteindre-une-prise-connectee-en-fonction-de-l-etat-de-la-batterie-d-une-tablette/131397/7 "2025-02-27T05:58:39Z")

</div>

Le chargeur ne s’éteint pas, je change le bloc ce soir

---

<div class="post-metadata">

**Author:** ![Jonathan\_Visage](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/jonathan_visage/32/120728_2.png) [@Jonathan\_Visage](https://community.homey.app/u/Jonathan_Visage)\
**Post date:** [February 27, 2025, 7:17pm UTC](https://community.homey.app/t/creation-d-un-script-pour-allumer-eteindre-une-prise-connectee-en-fonction-de-l-etat-de-la-batterie-d-une-tablette/131397/8 "2025-02-27T19:17:12Z")

</div>

Après remplacement du bloc, il y a toujours une erreur dans le script onoff n’est pas défini

---

<div class="post-metadata">

**Author:** ![Jonathan\_Visage](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/jonathan_visage/32/120728_2.png) [@Jonathan\_Visage](https://community.homey.app/u/Jonathan_Visage)\
**Post date:** [February 27, 2025, 7:50pm UTC](https://community.homey.app/t/creation-d-un-script-pour-allumer-eteindre-une-prise-connectee-en-fonction-de-l-etat-de-la-batterie-d-une-tablette/131397/9 "2025-02-27T19:50:51Z")

</div>

C’est bon le script fonctionne, il manquait juste les guillemets à onoff.

Merci de m’avoir aidé 😁😁
