Govee commandé via jeedom

Bonjour,
Je cherche à mettre en route des barres de lumière « led » Govee.
Ils ont une application ainsi qu’une api.
pour l’allumer il faut jouer cette requête :

Request URL: https://developer-api.govee.com/v1/devices/control
Request Method: PUT
Request Header:
Content-Type : application/json
Govee-API-Key : 00000000-729c-4b82-b536-000000000
Request body
{
  "device": "34:20:03:15:82:ae",
  "model": "H6089",
  "cmd": {
    "name": "turn",
    "value": "on"
  }
}

Donc, je me suis dit :thinking: via le plugin script en le convertissant en php et en changeant clé et @ mac, ça devrait fonctionner !

<?php 
// Generated by curl-to-PHP: http://incarnate.github.io/curl-to-php/
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://developer-api.govee.com/v1/devices/control');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');

curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"device\": \"34:20:03:15:82:ae\",\"model\": \"H6054\",\"cmd\": {\"name\": \"turn\", \"value\": \"on\"}}");

$headers = array();
$headers[] = 'Govee-Api-Key: 00000000-729c-4b82-b536-000000000';
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);
?>

Sauf que je l’exécute, pas d’erreur mais rien ne se produit !
Si un développeur passe par ici …

Cela va pas aider mais tu as ce package node qui pourrait faire le job et donc t’aider à vérifier si cela fonctionne:

Antoine

1 « J'aime »

merci @Tonio16
je vais regarder cette piste.
si je comprends bien, j’installe son package et je me créé un lampe_on.js avec les instructions et je l’exécute !
On peut exécuter du nodejs via jeedom ?

Bonjour,

Pour connaître le code http de retour, après l’exec:

$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

et généralement moi je me base sur ceci et pas sur l’erreur tout cours:

$error = curl_error($ch);

pas le numéro définit pas curl… est-ce que cela peut jouer? pas sur.

Sinon pour l’encodage du contenu je suppose que c’est ok ainsi mais cela serait plus sur et plus propre de juste utiliser json_encode()
Et tu ne renseigne pas le header Content-Length, je ne sais plus si ca se fait tout seul mais je ne pense pas et certain serveur vont te jeter si pas présent.

1 « J'aime »

Voir:

2 « J'aime »

Bon je ne maitrise pas du tout :thinking:
Faut que je potasse pour comprendre !
En attendant un plugin, je vais passer par HomeAssistant :woozy_face:

voir ici où ça avance :

1 « J'aime »