[Résolu] on ne se moque pas

Discussion et échanges de scripts pour la box eedomus

[Résolu] on ne se moque pas

Messagepar flouret » 08 Mars 2019 17:44

Bonjour,
Néophyte en script, je me lance.
Je récupère de ma zibase dans un périphérique cette information : OS439210756;217;40;0 qui contient identifiant de la sonde oregon T° Humidité
J'ai commencé à écrire un petit script pour faire passer cette info au bon endroit de la eedomus.
Las, je bute déjà. Quand j'éxécute mon script, je ne récupère que l'identifiant dans $valeursonde.

debut_MF.JPG
debut_MF.JPG (43.32 Kio) Consulté 7730 fois
Dernière édition par flouret le 11 Mars 2019 10:25, édité 2 fois.
flouret
 
Messages : 184
Inscription : 29 Jan 2019

Re: on ne se moque pas

Messagepar flc85 » 09 Mars 2019 08:00

Pourquoi tu ne récupères pas les infos via le fichier xml généré par la zibase via une requête http?
adresse_ip_zibase/sensors.xml
Je procède comme cela pour récuperer les valeurs d'un capteur de luminosité en enocean

Capture.JPG
Capture.JPG (34.03 Kio) Consulté 7690 fois
flc85
 
Messages : 70
Inscription : 17 Jan 2019

Re: on ne se moque pas

Messagepar flouret » 09 Mars 2019 08:59

Bonjour,
Parce que je voudrais avoir l'info en temps réel, dès qu'une sonde se manifeste et ne pas récupérer l'info d'une sonde qui date de plusieurs heures.
flouret
 
Messages : 184
Inscription : 29 Jan 2019

Re: on ne se moque pas

Messagepar flouret » 09 Mars 2019 10:31

Bon, j'avance à petits pas car je ne maitrise pas grand chose.
J'ai résolu avec peine le point de mon premier post.
Tout fonctionne comme je veux, sauf que je n'arrive pas à stocker mes 2 tableaux que je rentre en dur avec LoadVariable et Save Variable.
:(

Test2.JPG
Test2.JPG (96.1 Kio) Consulté 7668 fois
flouret
 
Messages : 184
Inscription : 29 Jan 2019

Re: on ne se moque pas

Messagepar merguez07 » 09 Mars 2019 10:36

bonjour flouret,

plusieurs choses à dire par rapport à ta demande :
1 - Récupération des données sur la zibase
si tu as une zibase et pas de Rf player ou RFXcom tu peux très bien, comme te le suggère flc85, récupérer les données contenues dans sensors.xml. Si ta zibase fonctionne, les données seront à jour et tu n'as pas a avoir peur d'avoir des infos périmées
2 - Récupération sur Eedomus
Si tu as un RF player ou RFX com, tu peux récupérer les valeurs des sondes sans te prendre la tête ni passer par un script et donc je ne comprends pas pourquoi tu veux faire un script
3 - Script
la valeur ne se trouve pas dans "value-text" mais dans "value"
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 : 2346
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: on ne se moque pas

Messagepar flouret » 09 Mars 2019 11:03

merguez07 a écrit:bonjour flouret,

plusieurs choses à dire par rapport à ta demande :
1 - Récupération des données sur la zibase
si tu as une zibase et pas de Rf player ou RFXcom tu peux très bien, comme te le suggère flc85, récupérer les données contenues dans sensors.xml. Si ta zibase fonctionne, les données seront à jour et tu n'as pas a avoir peur d'avoir des infos périmées
2 - Récupération sur Eedomus
Si tu as un RF player ou RFX com, tu peux récupérer les valeurs des sondes sans te prendre la tête ni passer par un script et donc je ne comprends pas pourquoi tu veux faire un script
3 - Script
la valeur ne se trouve pas dans "value-text" mais dans "value"


Bonjour et merci de m'aider,

1 Dans le fichier "sensors.xml", il y a la dernière valeur reçue. Il arrive assez souvent que la zibase perde le contact pendant un certain temps avec les sondes oregon. Du coup, dans le fichier xml, tu as une valeur erronée. Je testais cela avec la zibase, mais à partir du 29 mars, je ne pourrais plus le faire.
2 J'ai un RFXcom avec la eedomus. L'idée est de me servir de la zibase comme passerelle dans les zones où la liaison avec le rfxcom est mauvaise. (comme avec la zibase l'info des sondes ne passe pas parfois).
3 Ok j'ai enlevé value_text. Effectivement il ne me servait à rien.
Par contre, il ne sauve pas mes variables. Ou ne load pas ?
flouret
 
Messages : 184
Inscription : 29 Jan 2019

Re: on ne se moque pas

Messagepar merguez07 » 09 Mars 2019 11:47

flouret a écrit:Je testais cela avec la zibase, mais à partir du 29 mars, je ne pourrais plus le faire.

https://www.abavala.com/la-zibase-termine-sa-carriere-en-frontal-radio-multiprotocoles-via-une-api-locale/

flouret a écrit:Par contre, il ne sauve pas mes variables. Ou ne load pas ?


normal :
saveVariable($variable_name, $variable_content)
loadVariable($variable_name)

$variable_name doit être une chaine de caractères.
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 : 2346
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: on ne se moque pas

Messagepar flouret » 09 Mars 2019 11:59

J'ai l'imression d'avoir mis une chaine de caracteres.
Faut que je mette $savetype="savetype" avec des cotes ?
flouret
 
Messages : 184
Inscription : 29 Jan 2019

Re: on ne se moque pas

Messagepar merguez07 » 09 Mars 2019 12:29

flouret a écrit:J'ai l'imression d'avoir mis une chaine de caracteres.
Faut que je mette $savetype="savetype" avec des cotes ?


oui une chaine de caractère (string) est définit par des guillemets (simple ou double quote)

en faisant $savetype = savetype tu affectes à la variable $savetype la valeur de la constante savetype
cette dernière n'étant pas définit ça plante.
il faut donc écrire $savetype = 'savetype' ou "savetype"
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 : 2346
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: on ne se moque pas

Messagepar flouret » 09 Mars 2019 12:41

Ok, j'avais pas saisi que savetype était une variable.
Ceci dit, j'ai mis les côtes et quand je ne mets pas action à majtab et que donc il ne passe pas dans le if, le loadvariable ne récupère pas mes datas.
j'ai du faire une annerie supplémentaire
flouret
 
Messages : 184
Inscription : 29 Jan 2019

Re: on ne se moque pas

Messagepar flouret » 09 Mars 2019 12:44

debut_MF_step3.JPG
debut_MF_step3.JPG (111.62 Kio) Consulté 7655 fois
flouret
 
Messages : 184
Inscription : 29 Jan 2019

Re: on ne se moque pas

Messagepar merguez07 » 09 Mars 2019 12:51

es tu sûr d'être passé dans le if au moins une fois ?


sinon quand tu mets du code dans le forum utilise plutôt le bouton Code du forum de manière à ce qu'on puisse utiliser le code pour tester sans tout refrapper

Code : Tout sélectionner
echo 'tu mets le code là';
echo 'et tout le monde en profite';
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 : 2346
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: on ne se moque pas

Messagepar flouret » 09 Mars 2019 13:41

Code : Tout sélectionner
<?
// Script eedomus ...
//**********************************************************************************************************
// V0 : Recuperation des valeurs de sondes venues de la Zibase
//*************************************** ******************************************************************
// recuperation des infos depuis la requete
$api_periph = getArg("apisonde", true, 'undefined');
$action = getArg("action");
//**********************************************************************************
// mise a jour du tableau de correspondance identifiant versus ID
// $type = 1 pour la T°
// $type = 2 pour l'humidité
//**********************************************************************************
$savetype="savetype" ;
$saveid="saveid" ;
if ($action == 'majtab') {
    $tab_id['OS440205825'] = 1387886 ;
    $tab_id['OS4392046091'] = 1388026 ;      
    $tab_id['OS4392046092'] = 1388030 ;      
    $tab_id['OS439173634'] = 1388031 ;      
    $tab_id['OS439221250'] = 1388034 ;      
    $tab_id['OS439210756'] = 1388035 ;      
    $tab_id['OS3930908676'] = 1388036 ;      
    $tab_id['OS3930883332'] = 1388037 ;   
    $tab_id['OS439186690'] = 1388038 ;      
    $tab_id['OS439189505'] = 1388041 ;      

    $tab_type['OS440205825'] = 1 ;
    $tab_type['OS4392046091'] = 1 ;      
    $tab_type['OS4392046092'] = 2 ;      
    $tab_type['OS439173634'] = 1 ;      
    $tab_type['OS439221250'] = 1 ;      
    $tab_type['OS439210756'] = 2 ;      
    $tab_type['OS3930908676'] = 1 ;      
    $tab_type['OS3930883332'] = 1 ;   
    $tab_type['OS439186690'] = 1 ;      
    $tab_type['OS439189505'] = 2 ;
   
    saveVariable($savetype,$tab_type) ;
    saveVariable($saveid,$tab_id) ;
   
    echo 'je passe dans le if' ;
    echo $tab_id['OS3930908676'] ;
}
loadVariable($savetype) ;
loadVariable($saveid) ;

echo 'je sors du if if' ;
echo $tab_id['OS3930908676'] ;

$valeurPeriph = getValue($api_periph);
$infosonde = explode ("$",$valeurPeriph['value']);

// *********************************************************
// cas des sondes dont il faut exploiter la T° et l'Hum%
// *********************************************************
if ($infosonde[0] == OS439204609) {
    $type = $tab_type[$infosonde[0]."1"] ;
    $ID = $tab_id[$infosonde[0]."1"] ;
    $val = $infosonde[$type] /10 ;
    setValue ($ID,$val) ;
    $type = $tab_type[$infosonde[0]."2"] ;
    $ID = $tab_id[$infosonde[0]."2"] ;
    $val = $infosonde[$type] ;
    setValue ($ID,$val) ;
    }
else {
    $type = $tab_type[$infosonde[0]] ;
    $ID = $tab_id[$infosonde[0]] ;
    $val = $infosonde[$type] ;
    if ($type == 1) {
        $val = $val / 10 ;
    }
    setValue ($ID,$val) ;
}

?>


Oui je suis déjà passé dans le if
flouret
 
Messages : 184
Inscription : 29 Jan 2019

Re: on ne se moque pas

Messagepar flouret » 10 Mars 2019 10:02

Serait-il possible que le non stockage de mes variables soit un problème de droit d'écriture ?
flouret
 
Messages : 184
Inscription : 29 Jan 2019

Re: on ne se moque pas

Messagepar merguez07 » 10 Mars 2019 10:16

flouret a écrit:Serait-il possible que le non stockage de mes variables soit un problème de droit d'écriture ?


non, c'est juste un problème de syntaxe.
il ne faut pas écrire
Code : Tout sélectionner
loadVariable($saveid) ;

mais
Code : Tout sélectionner
$a=loadVariable($saveid) ;


ainsi ta variable $a contiendra la sauvegarde de la variable $saveid
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 : 2346
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: on ne se moque pas

Messagepar flouret » 10 Mars 2019 10:26

Oki merci
Je teste, mais je pense que ça va marcher.
Manque un peu d'exemples sur la doc eedomus.
Par contre à ma charge, j'avais regardé ta publi et j'avais pas bien lu, la réponse y était
flouret
 
Messages : 184
Inscription : 29 Jan 2019

Re: on ne se moque pas

Messagepar flouret » 10 Mars 2019 10:34

perfecto
flouret
 
Messages : 184
Inscription : 29 Jan 2019

Re: on ne se moque pas

Messagepar flouret » 11 Mars 2019 09:10

Bonjour,
Comment mettre ce sujet en RESOLU ?
flouret
 
Messages : 184
Inscription : 29 Jan 2019

Re: [Résolu] on ne se moque pas

Messagepar merguez07 » 11 Mars 2019 09:33

flouret a écrit:Comment mettre ce sujet en RESOLU ?


fait. En tant que modo je peux réediter les posts. Ne peux tu pas rééditer les tiens (je me rappelle plus si avant d'être modo je pouvais le faire)
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 : 2346
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: [Résolu] on ne se moque pas

Messagepar flouret » 11 Mars 2019 09:43

Je peux éditer un post, mais je ne vois pas la possibilité de mettre en RESOLU
flouret
 
Messages : 184
Inscription : 29 Jan 2019

Suivant

Retour vers Scripts & Périphériques du store

Qui est en ligne ?

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