Forum eedomus
https://forum.eedomus.com/

Opensprinkler
https://forum.eedomus.com/viewtopic.php?f=16&t=5873
Page 1 sur 2  Suivant »
Auteur:  epierre [ 12 Sep 2017 21:41 ]
Sujet du message:  Opensprinkler

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é 24605 fois

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

new_device_values.jpg
new_device_values.jpg (48.03 Kio) Consulté 24605 fois
Auteur:  technoman63 [ 13 Sep 2017 07:47 ]
Sujet du message:  Re: Opensprinkler

http://doc.eedomus.com/view/Le_store_eedomus ;)
Auteur:  epierre [ 13 Sep 2017 08:08 ]
Sujet du message:  Re: Opensprinkler

merci ;-) j'avais soumis sur la page du store mais elle n'indiquait pas de lien vers le tuto, j evais enrichir !
Auteur:  epierre [ 13 Sep 2017 08:22 ]
Sujet du message:  Re: Opensprinkler

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
Auteur:  Bart (eedomus team) [ 28 Sep 2017 08:21 ]
Sujet du message:  Re: Opensprinkler

Bonjour,

Le script est en ligne, un grand bravo pour votre travail et merci pour l'avoir partagé avec les autres utilisateurs !
Auteur:  epierre [ 28 Sep 2017 08:29 ]
Sujet du message:  Re: Opensprinkler

:D :D :D

Je suis content que cela permette de découvrir un très bon produit qui est ouvert en plus !
Auteur:  gabvoir [ 03 Mai 2019 22:11 ]
Sujet du message:  Re: Opensprinkler

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 !
Auteur:  BingO [ 07 Mai 2019 16:28 ]
Sujet du message:  Re: Opensprinkler

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?
Auteur:  epierre [ 07 Mai 2019 16:47 ]
Sujet du message:  Re: Opensprinkler

héhé moi j'en suis très content
Auteur:  gabvoir [ 09 Juil 2019 12:18 ]
Sujet du message:  Re: Opensprinkler

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
Auteur:  epierre [ 09 Juil 2019 12:33 ]
Sujet du message:  Re: Opensprinkler

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
Auteur:  gabvoir [ 30 Juil 2019 10:10 ]
Sujet du message:  Re: Opensprinkler

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
Auteur:  gabvoir [ 06 Août 2019 21:41 ]
Sujet du message:  Re: Opensprinkler

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.
Auteur:  epierre [ 09 Sep 2019 14:34 ]
Sujet du message:  Re: Opensprinkler

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
Auteur:  gabvoir [ 09 Sep 2019 21:14 ]
Sujet du message:  Re: Opensprinkler

J'ai essayé :)
Dis moi si c'est bon :)
Auteur:  epierre [ 09 Sep 2019 21:22 ]
Sujet du message:  Re: Opensprinkler

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 ? )
Auteur:  gabvoir [ 10 Sep 2019 06:55 ]
Sujet du message:  Re: Opensprinkler

Oups effectivement, je suis un noob
Il fallait pas que je fork
Normalement c'est bon
Auteur:  epierre [ 10 Sep 2019 09:34 ]
Sujet du message:  Re: Opensprinkler

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
Auteur:  gabvoir [ 27 Juil 2021 09:52 ]
Sujet du message:  Re: Opensprinkler

Salut epierre,

update poussé sur github :
https://github.com/empierre/eedomus/pull/2 -> conserver version de l'API qui fonctionne
https://github.com/empierre/eedomus/pull/3 -> ajout sur la gestion des programmes

Pour info cela me permet notemment de désactiver l'arrosage du jardin si la lumière est allumé. Histoire de pas se faire rincer un soir de barbecue :)
Et également d'enclencher des programmes à haute fréquence de déclenchement pour la brumisations.

L'amélioration précédente ne semble pas avoir été poussé sur le store par la team.
N'est-ce pas à toi à la pousser directement depuis le store ?
Auteur:  epierre [ 04 Sep 2021 14:23 ]
Sujet du message:  Re: Opensprinkler

Hello merci !

Il faut que je demande à l'équipe, je vais essayer de me souvenir comment les contacter ;-)
Page 1 sur 2 Le fuseau horaire est UTC+1 heure