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 ?
[/details]
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”,…
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
Bonjour,
chargerId
est il correcte? Car cela ne ressemble pas à un ID Homey (voir developper tools → Devices)

Sinon en remplaçant ce block:
// 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:
// 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?
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.
Le chargeur ne s’éteint pas, je change le bloc ce soir
Après remplacement du bloc, il y a toujours une erreur dans le script onoff n’est pas défini
C’est bon le script fonctionne, il manquait juste les guillemets à onoff.
Merci de m’avoir aidé 

1 Like