Opensprinkler

Utilitaires développés par les utilisateurs

Opensprinkler

Messagepar epierre » 12 Sep 2017 21:41

Bonsoir,

J'avais vu le périphérique GreenIQ, et utilisant un similaire Opensprinkler (https://opensprinkler.com/) sur une base Raspberry alimenté par le 24V j'ai voulu faire l'interface équivalente.

J'ai tout mis dans mon github ici, et si une bonne ame veut bien m'expliquer comment le mettre dans la marketplace je suis preneur !

https://github.com/empierre/eedomus/blob/master/ospi

list_device.jpg
list_device.jpg (6.62 Kio) Consulté 4354 fois

device_actions.jpg
device_actions.jpg (11.26 Kio) Consulté 4354 fois

new_device_values.jpg
new_device_values.jpg (48.03 Kio) Consulté 4354 fois
Imperihome & Domoticz: MyDomoAtHome !
eedomus+ - Domoticz+RFXTRX433+MySensors
epierre
 
Messages : 49
Inscription : 20 Août 2017

Re: Opensprinkler

Messagepar technoman63 » 13 Sep 2017 07:47

Mes Scripts eedomus : windDirection, rainTrend

Blog: https://devotics.fr
technoman63
 
Messages : 568
Inscription : 09 Avr 2015

Re: Opensprinkler

Messagepar epierre » 13 Sep 2017 08:08

merci ;-) j'avais soumis sur la page du store mais elle n'indiquait pas de lien vers le tuto, j evais enrichir !
Imperihome & Domoticz: MyDomoAtHome !
eedomus+ - Domoticz+RFXTRX433+MySensors
epierre
 
Messages : 49
Inscription : 20 Août 2017

Re: Opensprinkler

Messagepar epierre » 13 Sep 2017 08:22

par contre, il ne décrit pas la définition des valeurs ni de mettre les icones, comment récupère-t-on ce fichier d'un plugin installé ?

voici mon début mais je ne sais pas finir, ce n'est pas documenté et google ne remonte rien ...

https://github.com/empierre/eedomus/blo ... lugin.json
Imperihome & Domoticz: MyDomoAtHome !
eedomus+ - Domoticz+RFXTRX433+MySensors
epierre
 
Messages : 49
Inscription : 20 Août 2017

Re: Opensprinkler

Messagepar Bart (eedomus team) » 28 Sep 2017 08:21

Bonjour,

Le script est en ligne, un grand bravo pour votre travail et merci pour l'avoir partagé avec les autres utilisateurs !
Bart (eedomus team)
 
Messages : 315
Inscription : 23 Sep 2013

Re: Opensprinkler

Messagepar epierre » 28 Sep 2017 08:29

:D :D :D

Je suis content que cela permette de découvrir un très bon produit qui est ouvert en plus !
Imperihome & Domoticz: MyDomoAtHome !
eedomus+ - Domoticz+RFXTRX433+MySensors
epierre
 
Messages : 49
Inscription : 20 Août 2017

Re: Opensprinkler

Messagepar gabvoir » 03 Mai 2019 22:11

Bonjour,
Je viens d'installer ce super API :)
Simple petite correction que j'ai du faire pour qu'il soit fonctionnel avec ospi 2.1.8.
J'ai du cocher la case "Convertir le JSON en XML".
Merci ca marche impec !
gabvoir
 
Messages : 106
Inscription : 24 Juin 2015

Re: Opensprinkler

Messagepar BingO » 07 Mai 2019 16:28

Ca m'intéresse ce petit truc pour mon arrosage automatique, faut que je jette un oeil.
Et si une app du store est dispo, c'est royal au bar! Merci!

Edit: Simple question, la version vendue sur leur site est 100% autonome? Pas RPi à mettre au cul?
BingO
 
Messages : 247
Inscription : 16 Jan 2016

Re: Opensprinkler

Messagepar epierre » 07 Mai 2019 16:47

héhé moi j'en suis très content
Imperihome & Domoticz: MyDomoAtHome !
eedomus+ - Domoticz+RFXTRX433+MySensors
epierre
 
Messages : 49
Inscription : 20 Août 2017

Re: Opensprinkler

Messagepar gabvoir » 09 Juil 2019 12:18

Bonjour epierre,

J'ai un brumisateur monté derrière mes EV.
Je souhaiterai utiliser l'opensprinkler pour gérer les cycles court de ce brumisateur, plutot que de consommer la ressource de l'eedomus.
As tu déjà essayé de controler des programmes ?

Simplement la modif du statut d'un programme, en passant par
12. Change Program Data [Keyword /cp]
/cp?pw=xxx&pid=x&v=[flag,days0,days1,[start0,start1,start2,start3],[dur0,dur1,dur2…]]&name=x
Parameters:
• pid: Program index (starting from 0). Acceptable range is -1 to N-1, where N is number of existing programs.
If pid=-1, this is adding a new program; otherwise this is modifying an existing program.
• v: Program data structure. The format is the same as explained in Section 11 above, except the name field, given below.
• name: Program name (url encoded, without quotes).


Merci
gabvoir
 
Messages : 106
Inscription : 24 Juin 2015

Re: Opensprinkler

Messagepar epierre » 09 Juil 2019 12:33

hmmmm....

un programme est répétable un certain nombre de fois ou avec un délais entre chaque démarrage, il faudrait creuser pour voir si cela s'adapte à ton cas
Imperihome & Domoticz: MyDomoAtHome !
eedomus+ - Domoticz+RFXTRX433+MySensors
epierre
 
Messages : 49
Inscription : 20 Août 2017

Re: Opensprinkler

Messagepar gabvoir » 30 Juil 2019 10:10

Bonjour,
epierre, je pense avoir trouver la solution.
J'ai créé un programme du type :
faible durée : 30 sec
Fréquence haute : 1440 fois (ça semble être le max)
Intervalle moyen : 4 minutes
Donc côté opensprinkler on est bon.

Maintenant côté plugin, je pense également avoir trouvé la solution sur le forum officiel.
La doc de l'API ne semble pas encore documenté, mais au vue de la source, la ligne suivante devrait fonctionné :
http://x.x.x.x/cp?pw=xxx&pid=x&en=0
ou
http://x.x.x.x/cp?pw=xxx&pid=x&en=1

Pourrais tu implémenter cela au format :
&action=programenable/programdisable
&pid=program index

Ne resterai plus qu'à savoir comment trouver ce "pid".
Malheureusement je ne vois nulle part où récupérer ce pid, ni sur l'appli, ni sur la page web.
Une chose possible serait d'intégrer au plugin un retour de la page :
http://x.x.x.x//jp?pw=xxx

Penses tu avoir le temps de t'atteler à cela ?
Merci
gabvoir
 
Messages : 106
Inscription : 24 Juin 2015

Re: Opensprinkler

Messagepar gabvoir » 06 Août 2019 21:41

Bonjour epierre et les autres si intéressé,

Je viens de développer la partie activation/désactivation d'un programme, et le retour d'état du programme.
J'ai au passage trouvé comment récupéré le fameux 'pid'.

Ci-dessous le code ajouté :
Code : Tout sélectionner
function sdk_get_program_state()
{
  $response = httpQuery($GLOBALS['api_url'].'jp?pw='.$GLOBALS['api_key'], 'GET', $post);
  return $response;
}

function sdk_enable_program($pid)
{
  $response = httpQuery($GLOBALS['api_url'].'cp?pw='.$GLOBALS['api_key'].'&pid='.($pid).'&en=1', 'GET', $post);
  return $response;
}

function sdk_disable_program($pid)
{
  $response = httpQuery($GLOBALS['api_url'].'cp?pw='.$GLOBALS['api_key'].'&pid='.($pid).'&en=0', 'GET', $post);
  return $response;
}

function sdk_get_pid($program_name)
{
  $response = httpQuery($GLOBALS['api_url'].'jp?pw='.$GLOBALS['api_key'], 'GET', $post);
  $arr = sdk_json_decode($response);
  foreach($arr["pd"] as $item) {
    if($item[5] == utf8_encode($program_name)) return $k+1;
    $k++;
  }
  return 0;
}

  case 'programstatus':
    $program_name = getArg('program_name');
    $pid = sdk_get_pid($program_name);
    if($pid==0) {
        $result = '{"status":false,"msg":"Unknown program ['.$program_name.']"}';
    } else {
        $response = sdk_get_program_state();
        $arr = sdk_json_decode($response);
        $result = '{"status": "'.substr(decbin($arr['pd'][$pid-1][0]), -1).'"}';
    }
  break;

  case 'programenable':
    $program_name = getArg('program_name');
    $pid = sdk_get_pid($program_name);
    if($pid==0) {
        $result = '{"status":false,"msg":"Unknown program ['.$program_name.']"}';
    } else {
        $result = sdk_enable_program($pid-1);
    }
  break;
 
  case 'programdisable':
    $program_name = getArg('program_name');
    $pid = sdk_get_pid($program_name);
    if($pid==0) {
        $result = '{"status":false,"msg":"Unknown program ['.$program_name.']"}';
    } else {
        $result = sdk_disable_program($pid-1);
    }
  break;


Par ailleurs j'ai également passé en facultatif le paramètre "zone_number" et ai donc passé la ligne suivante dans chaque autre case du switch.
Code : Tout sélectionner
$zone_number = getArg('zone_number');


Ainsi les lignes de paramètres permettant le changement d'état sont :
Code : Tout sélectionner
&action=programenable&program_name=[nom du programme]
&action=programdisable&program_name=[nom du programme]

La ligne du retour d'état:
http://localhost/script/?exec=ospi.php&ip=[VAR1]&API=[VAR2]&program_name=[VAR3]&action=programstatus

A rajouter dans une future version de script cela pourra certainement intéressé d'autres personnes.
gabvoir
 
Messages : 106
Inscription : 24 Juin 2015

Re: Opensprinkler

Messagepar epierre » 09 Sep 2019 14:34

Hello,

si tu peux faire un push request ici : https://github.com/empierre/eedomus/tree/master/ospi

sinon dis moi je le ferai à la main,

Emmanuel
Imperihome & Domoticz: MyDomoAtHome !
eedomus+ - Domoticz+RFXTRX433+MySensors
epierre
 
Messages : 49
Inscription : 20 Août 2017

Re: Opensprinkler

Messagepar gabvoir » 09 Sep 2019 21:14

J'ai essayé :)
Dis moi si c'est bon :)
gabvoir
 
Messages : 106
Inscription : 24 Juin 2015

Re: Opensprinkler

Messagepar epierre » 09 Sep 2019 21:22

en tout cas je ne le vois pas, si tu as forké il faut le faire sur mon repo (là je le vois sur celui de gabvoir le tien ? )
Imperihome & Domoticz: MyDomoAtHome !
eedomus+ - Domoticz+RFXTRX433+MySensors
epierre
 
Messages : 49
Inscription : 20 Août 2017

Re: Opensprinkler

Messagepar gabvoir » 10 Sep 2019 06:55

Oups effectivement, je suis un noob
Il fallait pas que je fork
Normalement c'est bon
gabvoir
 
Messages : 106
Inscription : 24 Juin 2015

Re: Opensprinkler

Messagepar epierre » 10 Sep 2019 09:34

Yes c'est bon et mergé, merci !

@eedomus team vous pouvez mettre à jour le plugin svp (je ne me souviens plus s'il y avait une procédure particulière...):https://github.com/empierre/eedomus/tree/master/ospi
Imperihome & Domoticz: MyDomoAtHome !
eedomus+ - Domoticz+RFXTRX433+MySensors
epierre
 
Messages : 49
Inscription : 20 Août 2017


Retour vers Outils tiers

Qui est en ligne ?

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

cron