Forum eedomus
http://forum.eedomus.fr/

[Résolu] on ne se moque pas
http://forum.eedomus.fr/viewtopic.php?f=50&t=8275
Page 1 sur 2  Suivant »
Auteur:  flouret [ 08 Mars 2019 17:44 ]
Sujet du message:  [Résolu] on ne se moque pas

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é 8999 fois
Auteur:  flc85 [ 09 Mars 2019 08:00 ]
Sujet du message:  Re: on ne se moque pas

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é 8959 fois
Auteur:  flouret [ 09 Mars 2019 08:59 ]
Sujet du message:  Re: on ne se moque pas

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.
Auteur:  flouret [ 09 Mars 2019 10:31 ]
Sujet du message:  Re: on ne se moque pas

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é 8937 fois
Auteur:  merguez07 [ 09 Mars 2019 10:36 ]
Sujet du message:  Re: on ne se moque pas

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"
Auteur:  flouret [ 09 Mars 2019 11:03 ]
Sujet du message:  Re: on ne se moque pas

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 ?
Auteur:  merguez07 [ 09 Mars 2019 11:47 ]
Sujet du message:  Re: on ne se moque pas

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.
Auteur:  flouret [ 09 Mars 2019 11:59 ]
Sujet du message:  Re: on ne se moque pas

J'ai l'imression d'avoir mis une chaine de caracteres.
Faut que je mette $savetype="savetype" avec des cotes ?
Auteur:  merguez07 [ 09 Mars 2019 12:29 ]
Sujet du message:  Re: on ne se moque pas

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"
Auteur:  flouret [ 09 Mars 2019 12:41 ]
Sujet du message:  Re: on ne se moque pas

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
Auteur:  flouret [ 09 Mars 2019 12:44 ]
Sujet du message:  Re: on ne se moque pas

debut_MF_step3.JPG
debut_MF_step3.JPG (111.62 Kio) Consulté 8924 fois
Auteur:  merguez07 [ 09 Mars 2019 12:51 ]
Sujet du message:  Re: on ne se moque pas

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';
Auteur:  flouret [ 09 Mars 2019 13:41 ]
Sujet du message:  Re: on ne se moque pas

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
Auteur:  flouret [ 10 Mars 2019 10:02 ]
Sujet du message:  Re: on ne se moque pas

Serait-il possible que le non stockage de mes variables soit un problème de droit d'écriture ?
Auteur:  merguez07 [ 10 Mars 2019 10:16 ]
Sujet du message:  Re: on ne se moque pas

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
Auteur:  flouret [ 10 Mars 2019 10:26 ]
Sujet du message:  Re: on ne se moque pas

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
Auteur:  flouret [ 10 Mars 2019 10:34 ]
Sujet du message:  Re: on ne se moque pas

perfecto
Auteur:  flouret [ 11 Mars 2019 09:10 ]
Sujet du message:  Re: on ne se moque pas

Bonjour,
Comment mettre ce sujet en RESOLU ?
Auteur:  merguez07 [ 11 Mars 2019 09:33 ]
Sujet du message:  Re: [Résolu] on ne se moque pas

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)
Auteur:  flouret [ 11 Mars 2019 09:43 ]
Sujet du message:  Re: [Résolu] on ne se moque pas

Je peux éditer un post, mais je ne vois pas la possibilité de mettre en RESOLU
Page 1 sur 2 Le fuseau horaire est UTC+1 heure