Librairie d'émulation eedomus pour developpeurs de scripts

Discussion et échanges de scripts pour la box eedomus

Librairie d'émulation eedomus pour developpeurs de scripts

Messagepar Havok » 13 Juin 2019 10:40

Bonjour amis developpeurs,

Mes developpements sont souvent fait hors de chez moi (donc loin de ma eedomus). Je teste donc mes scripts sur un serveur "standard". Ce qui me pose quelques soucis pour le remplacement des fonctions "standards" de php par les fonctions "maison" (genre getArg ou httpQuery).

Mon idée est d'utiliser une librairie qui emule les fonctions spécifiques eedomus afin de construire le fonctionnement global, l'algorythme, etc... sur n'importe quel serveur web.
Ensuite, quand cela fonctionne je paufine et je test en étant à la maison.

Cette solution à plusieurs avantages :
- Pas besoin d'être physiquement sur le reseau de la box (on garde la sécurité qui oblige à être sur le réseau de la box pour upload un script)
- Ca permet de faire les test ailleurs que sur ca box (j'avoue que j'ai pas envie de tout planter avec mes scripts pas finis)

J'ai donc commencé à créé une librairie qui émule ces fonctions (et qui peuvent servir dans des projets standards).
Si vous êtes interessés je vous invite donc à participer au développement de celle-ci directement sur github :
https://github.com/aussitot/eedomus.emulation.lib

Pour l'instant les fonctions supportées :
Code : Tout sélectionner
function httpQuery($url, $action = 'GET'/*GET,POST,PUT,DELETE*/, $post = NULL, $oauth_token = NULL, $headers = NULL, $use_cookies = false, $ignore_errors = false, &$info = null)

function sdk_json_decode($json)

function getArg($var, $mandatory = true, $default = ' ')

function saveVariable($variable_name, $variable_content)

function loadVariable($variable_name)

function jsonToXML($json)

function getValue($periph_id /*Code API*/, $value_text = false)

function xpath($xml, $path)
Dernière édition par Havok le 26 Juin 2019 10:22, édité 1 fois.
Havok
 
Messages : 703
Inscription : 06 Fév 2015


Re: Librairie d'émulation eedomus pour developpeurs de scrip

Messagepar eedomusbox » 26 Juin 2019 15:40

Très bonne idée
Comment tu sais ce que font exactement ces fonctions?
eedomusbox
 
Messages : 899
Inscription : 12 Sep 2014
Localisation : 69

Re: Librairie d'émulation eedomus pour developpeurs de scrip

Messagepar Havok » 27 Juin 2019 08:13

Je sais ce qu'elles doivent faire (c'est dans la doc des scripts eedomus). Par contre je ne sais pas comment elles le font donc je recrée la fonction pour qu'elle fasse à priori ce qui est prévu.

L'avantage c'est aussi que la librairie peut servir dans d'autres projets classiques. Le httpQuery est par exemple bien utile pour ne pas avoir à jouer avec le curl, le jsonToXML, saveVariable etc...
Havok
 
Messages : 703
Inscription : 06 Fév 2015

Re: Librairie d'émulation eedomus pour developpeurs de scrip

Messagepar merguez07 » 08 Mai 2020 08:55

thrymartin a écrit:Excellent, j'ai mis ton lien dans mes trucs et astuces, par contre si je puis me permettre, getArg n'est prévu que pour une seule variable, en rajoutant juste des conditionnels sur $var et en complétant avec le nom de la variable et sa valeur, on a les 1, 2 ou 3 GetArg...


Salut thrymartin,
je n'ai pas compris ta remarque ni le but de ton code. En effet getArg peut être utilisé avec plusieurs variables. Il te suffit d'utiliser un séparateur entre chaque variable et d'utiliser un explode pour les séparer dans le code.
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2352
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: Librairie d'émulation eedomus pour developpeurs de scrip

Messagepar merguez07 » 08 Mai 2020 19:14

Effectivement.
je me recouche :D
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2352
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: Librairie d'émulation eedomus pour developpeurs de scrip

Messagepar Havok » 08 Mai 2020 19:27

@thrymartin si effectivement la fonction eedomus fonctionne ainsi alors n’hesite pas à changer le code, il est disponible sur github et à le soumettre, je le validerai.
Havok
 
Messages : 703
Inscription : 06 Fév 2015

Re: Librairie d'émulation eedomus pour developpeurs de scrip

Messagepar Havok » 11 Mai 2020 11:18

Salut,

Bon en fait je ne comprends pas trop.
La fonction getArg est l'équivalent php de $_GET[$var]
donc si tu veux récupérer les variables de
Code : Tout sélectionner
http://localhost/script/?exec=plugin.php&var1=[VAR1]&var2=[VAR2]&var3=[VAR3]


Tu fais
Code : Tout sélectionner
$var1 = getArg("var1");
$var2 = getArg("var2");
$var3 = getArg("var3");


getArg('eedomus_controller_module_id') n'est pas géré mais avec ta modification non plus.
Je ne comprends pas bien tes modifications à vrai dire :)
Havok
 
Messages : 703
Inscription : 06 Fév 2015

Re: Librairie d'émulation eedomus pour developpeurs de scrip

Messagepar Havok » 12 Mai 2020 10:32

Oula faut se calmer mon garçon....

Je suis désolé je ne comprends vraiment pas ton problème. Peut-être que je me trompe, si quelqu'un veut me l'expliquer de manière plus sympathique :D

Je recommence :

J'ai par exemple
Code : Tout sélectionner
http://localhost/script/?exec=plugin.php&tata=25&toto=50&titi=100


Si Tu appelles 3 fois la fonction getArg avec le bon argument :
Code : Tout sélectionner
$tata = getArg("tata");
$toto = getArg("toto");
$titi = getArg("titi");


Et bien tu te retrouve avec $tata=25, $toto=50 et $titi=100.
Donc tu récupère bien tes 3 variables. Je ne vois pas ou est le problème.

Moi je ne comprends pas ce code....
@merguez07 ou un autre si tu vous pouvez m'expliquer :D

Code : Tout sélectionner
// http://localhost/script/?exec=plugin.php&var1=[VAR1]&var2=[VAR2]&var1=[VAR3]
function getArg($var, $mandatory = true, $default = ' ') {
   if ($var=="var1")                     {  $return = "valeur1";}
   if ($var=="var2")                     {  $return = "valeur2";}
   if ($var=="var3")                     {  $return = "valeur3";}
   if ($var=="eedomus_controller_module_id")   {  $return = 1234567;}
if (isset($_GET[$var])) $return = $_GET[$var];
return $return;
}
Havok
 
Messages : 703
Inscription : 06 Fév 2015

Re: Librairie d'émulation eedomus pour developpeurs de scrip

Messagepar merguez07 » 12 Mai 2020 10:45

perso j'ai pas non plus vraiment compris la réponse de Thierry, ni pourquoi il semble s'emporter (ils ont le sang chaud à la réunion :D )
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2352
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: Librairie d'émulation eedomus pour developpeurs de scrip

Messagepar merguez07 » 12 Mai 2020 12:56

En fait perso j'utilise parfois phptester pour tester des brins de code mais je n'ai jamais eu vraiment besoin d'une emulation complète car ma box est toujours à proximité.

Ce que j'ai du mal à comprendre dans ton explication thierry ( car le code je l'ai parfaitement compris) c'est en fait, pourquoi tu veux émuler le getArg . On est d'accord le GetArg sert à faire passer des informations entre la requête et le code PHP. Or, sauf erreur de ma part on ne peut faire de requête sur un bac à sable (c'est peut être là où je me trompe).

Donc si je dois emuler la transmission de ma requête &var1=1&var2=2&var3=3 je vais pas utiliser getArg mais mettre directement dans mon code php

$var1=1;
$var2=2;
$var3=3;

c'est là ou je bloque dans ton explication. Il est possible, que je sois, une nouvelle fois, complètement à la ramasse, mais STP Thierry, keep cool :D
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2352
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: Librairie d'émulation eedomus pour developpeurs de scrip

Messagepar Havok » 12 Mai 2020 13:15

Oui j'ai compris. Effectivement sur son bac à sable on ne peut pas passer de requête avec des arguments. Donc il rajoute, en dur, dans la fonction un renvoi des valeurs. Ainsi son code qui fait appel à getArg pourra être mis sur la eedomus sans changement.

A chaque nouveau programme il faut modifier le code de getArg pour renvoyer les bonnes valeurs. Ce qui n'est pas le principe d'une librairie que tu ajoutes à ton projet. Ca doit être transparent.

Bref cette librairie n'est absolument pas faite pour un bac à sable mais pour un serveur web tout à fait normal. Donc tu peux effectivement la modifier pour tes besoins propres mais je ne peux pas valider cette modification.
Havok
 
Messages : 703
Inscription : 06 Fév 2015


Retour vers Scripts & Périphériques du store

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 104 invité(s)