Action #slider# pour script php

Bonjour

j’ouvre un nouveau sujet suite à celui-ci qui a été résolu mais maintenant j’ai un probléme avec le #slider# pour que la valeur se mette dans le script php

si je teste le script php avec scénario et une valeur ca fonctionne :

le script :

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

curl_setopt($ch, CURLOPT_URL, 'http://192.168.1.155:8123/api/services/number/set_value');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"entity_id\": \"number.lave_linge_duree_de_lavage\", \"value\": 50}");

$headers = array();
$headers[] = 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI0NDkyMWRjMjg0N2Q0MDIyYTcyM2U1MTkxM2NiNzRjNiIsImlhdCI6MTczNjg4MTE3MCwiZXhwIjoyMDUyMjQxMTcwfQ.C8TKDtIVU6L1axI7mpQ2dntAsltHW99pkpEHVp4pUKk';
$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);

Maintenant si je met comme la doc le dit $argv[2]

voici mon script php avec $argv[2] et la cde dans jeedom

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

curl_setopt($ch, CURLOPT_URL, 'http://192.168.1.155:8123/api/services/number/set_value');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"entity_id\": \"number.lave_linge_duree_de_lavage\", \"value\": $argv[2]}");

$headers = array();
$headers[] = 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI0NDkyMWRjMjg0N2Q0MDIyYTcyM2U1MTkxM2NiNzRjNiIsImlhdCI6MTczNjg4MTE3MCwiZXhwIjoyMDUyMjQxMTcwfQ.C8TKDtIVU6L1axI7mpQ2dntAsltHW99pkpEHVp4pUKk';
$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);

les logs :

[2025-02-16 14:48:08] DEBUG  Exécution de : sudo chmod +x /var/www/html/plugins/script/data/LL_duree_lavage.php 2>/dev/null;php /var/www/html/plugins/script/data/LL_duree_lavage.php VOL 25 => // Generated by curl-to-PHP: http://incarnate.github.io/curl-to-php/
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://192.168.1.155:8123/api/services/number/set_value');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"entity_id\": \"number.lave_linge_duree_de_lavage\", \"value\": $argv[2]}");
$headers = array();
$headers[] = 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI0NDkyMWRjMjg0N2Q0MDIyYTcyM2U1MTkxM2NiNzRjNiIsImlhdCI6MTczNjg4MTE3MCwiZXhwIjoyMDUyMjQxMTcwfQ.C8TKDtIVU6L1axI7mpQ2dntAsltHW99pkpEHVp4pUKk';
$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);

Core : 4.5 (alpha)
DNS Jeedom : oui

Plugin : Script
Version : 2024-07-02 08:47:52 (stable)

bon dimanche

Bonjour,

Tu ne peux pas utiliser une variable comme ca dans une chaine de caractères
Tu dois, par exemple, la fermer, concatener la variable et ensuite concaténer la suite (en php la concatenation se fait avec un point .)

Il doit surement exister de tutos pour débutant sur le net :wink:

pourtant ca fonctionne bien avec #select# et arg[1]

je vais essayer de decripter ce que tu me dit :slight_smile:

ok j’ai posé la question à chatgpt et ca fonctionne avec ce code.

<?php
// Initialisation de cURL
$ch = curl_init();

// Vérification que l'argument est bien passé
if (!isset($argv[2])) {
    die("Erreur : valeur manquante pour la durée de lavage.\n");
}

// Construction des données à envoyer
$postData = json_encode([
    "entity_id" => "number.lave_linge_duree_de_lavage",
    "value" => (float) $argv[2] // Conversion en float pour éviter les erreurs JSON
]);

// Configuration de l'URL et des options cURL
curl_setopt($ch, CURLOPT_URL, 'http://192.168.1.155:8123/api/services/number/set_value');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);

// Configuration des headers
$headers = [
    'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI0NDkyMWRjMjg0N2Q0MDIyYTcyM2U1MTkxM2NiNzRjNiIsImlhdCI6MTczNjg4MTE3MCwiZXhwIjoyMDUyMjQxMTcwfQ.C8TKDtIVU6L1axI7mpQ2dntAsltHW99pkpEHVp4pUKk',
    'Content-Type: application/json'
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

// Exécution de la requête
$result = curl_exec($ch);

// Vérification des erreurs
if (curl_errno($ch)) {
    echo 'Erreur cURL : ' . curl_error($ch) . "\n";
} else {
    echo "Réponse API : " . $result . "\n";
}

// Fermeture de la session cURL
curl_close($ch);

c’est beaucoup plus propre que de concaténer des chaine de caractères :+1:

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.