[SDK] SDK PHP pour la Zibase

Comment interfacer la Zibase avec Homeseer ? Comment programmer votre Zibase avec un script ? Comment capturer les informations de la Zibase ...

Re: [SDK] SDK PHP pour la Zibase

Messagede Triskell2k1 » 03 Jan 2013, 22:05

Bravo pour la rapidité de maj.
Triskell2k1
P'tit Guru de domotique
 
Messages: 61
Inscription: 20 Juin 2012, 16:23

Re: [SDK] SDK PHP pour la Zibase

Messagede scanab » 03 Jan 2013, 22:33

Il n'aurai pas été plus naturel d'appeler la fonction avec za2 et de tester si le code commençais par z, puis de découper ce code afin de supprimer le z ? J'ai le php qui fait ça si ça intéresse quelqu'un.

Envoyé depuis mon A500 avec Tapatalk
<| ZiBase2 | Synology | Karotz | X2D | Z-Wave | Oregon | Chacon |>
scanab
Dieu de domotique
 
Messages: 309
Inscription: 25 Mar 2012, 23:12

Re: [SDK] SDK PHP pour la Zibase

Messagede bgarel » 04 Jan 2013, 12:05

Pour rester cohérent avec la méthode sendCommand(), j'ai préféré garder la même nomenclature d'adresse passé en paramètre.

Encore une fois, si vous souhaitez participer au code source du sdk sur google code, envoyez moi votre adresse gmail pour que je vous donne les droits de contributeur sur le projet google code.
bgarel
P'tit Guru de domotique
 
Messages: 63
Inscription: 05 DĂ©c 2010, 16:08

Re: [SDK] SDK PHP pour la Zibase

Messagede paceo » 02 Avr 2013, 13:09

Salut, :)

Une question qui me taraude depuis quelques temps et a laquelle je n'ai jamais eu de réponse claire:

Est-il possible, avec le SDK PHP, d'utiliser la fonction "dimLevel" sur des modules dimmer ZWAVE (expl: Fibaro FGD-211 et FGR-221). :?:

Je souhaiterai utiliser des "sliders" dans mon integration OpenRemote pour faire varier lumières et volets mais je m'interroge sur la ligne:
@param int $dimLevel Non supporté par la zibase pour l'instant

Code: Tout sélectionner
/**
    * Lance la commande RF de l'actionneur spĂ©cifiĂ© par son adresse et son protocol
    * @param string $address Adresse au format X10 de l'actionneur (ex: B5)
    * @param int $action Action Ă  rĂ©aliser (Utiliser l'enum ZbAction)
    * @param int $protocol Protocole RF (Utiliser l'enum ZbProtocol)
    * @param int $dimLevel Non supportĂ© par la zibase pour l'instant
    * @param int $nbBurst Nombre d'Ă©missions RF
    */
   public function sendCommand($address, $action, $protocol = ZbProtocol::PRESET, $dimLevel = 0, $nbBurst = 1) {         
      if (strlen($address) > 1) {
        $address = strtoupper($address);
        $request = new ZbRequest();
        $request->command = 11;
       
        if ($action == ZbAction::DIM_BRIGHT && $dimLevel == 0)
           $action = 0;
       
        $request->param2 = $action;
        $request->param2 |= ($protocol & 0xFF) << 0x08;
        if ($action == ZbAction::DIM_BRIGHT)
           $request->param2 |= (dimLevel & 0xFF) << 0x10;
        if ($nbBurst > 1)
           $request->param2 |= ($nbBurst & 0xFF) << 0x18;
           
         $request->param3 = intval(substr($address, 1)) - 1;
         $request->param4 = ord($address[0]) - 0x41;
         
         $this->sendRequest($request);
      }
   }


Y a t'il un moyen d'utiliser la fonction "dimmer" grace au SDK? Si non, le sera t'elle dans un futur proche? :roll:

Merci :wink:
<| ZiBase 2| Karotz | Kira128 | Light Manager | Chacon | Zwave | Oregon Scientific | Logitech Harmony 900 | Synology | Calybox 220 | Edimax | OWL | OpenRemote |>
Avatar de l’utilisateur
paceo
Guru de domotique
 
Messages: 140
Inscription: 11 Mai 2012, 16:55
Localisation: Istres, FRANCE

Re: [SDK] SDK PHP pour la Zibase

Messagede bgarel » 06 Avr 2013, 07:30

En relisant la spec 1.14, le dimLevel est maintenant supporté pour Chacon et Zwave.

Tu peux donc utiliser cette méthode avec :
- $action = 2
- $dimLevel = ton pourcentage entre 0 et 100
bgarel
P'tit Guru de domotique
 
Messages: 63
Inscription: 05 DĂ©c 2010, 16:08

Re: [SDK] SDK PHP pour la Zibase

Messagede paceo » 09 Avr 2013, 14:51

bgarel a écrit:En relisant la spec 1.14, le dimLevel est maintenant supporté pour Chacon et Zwave.

Tu peux donc utiliser cette méthode avec :
- $action = 2
- $dimLevel = ton pourcentage entre 0 et 100

Merci pour l'info :wink: J' essaye d’intégrer le truc sur mon interface OpenRemote des que j'ai un peu de temps. Pas sur de m'en sortir car autant j'arrive à d'effectuer une action ON/OFF de type:

Code: Tout sélectionner
<?php
require_once("ZiBase.php");
$zibase = new ZiBase("192.168.0.17");
    $ordre = $_GET['ordre'];
     
    switch ($ordre)
    {
    // 1 : ON ETEIND
   
    case OFF:
    # Envoi de la commande OFF en ZWAVE
    $zibase->sendCommand("B7", ZbAction::OFF, ZbProtocol::ZWAVE);
     break;

/// 2 : ON ALLUME
    case ON:
    # Envoi de la commande ON en ZWAVE
    $zibase->sendCommand("B7", ZbAction::ON, ZbProtocol::ZWAVE);
   break;
   
}
?>

Autant je ne sais trop comment m'y prendre avec la fonction dimLevel :roll:
Bref, Ă  tester.... :roll:
<| ZiBase 2| Karotz | Kira128 | Light Manager | Chacon | Zwave | Oregon Scientific | Logitech Harmony 900 | Synology | Calybox 220 | Edimax | OWL | OpenRemote |>
Avatar de l’utilisateur
paceo
Guru de domotique
 
Messages: 140
Inscription: 11 Mai 2012, 16:55
Localisation: Istres, FRANCE

Re: [SDK] SDK PHP pour la Zibase

Messagede ZygOm4t1k » 09 Avr 2013, 18:03

salut .

J'utilise dans open remote

ipzibase/cgi-bin/domo.cgi?cmd=DIM%20B3%20P6%20${param}


et cela fonctionne.

c'est un choix de passer via php?? plus rapide??
ZygOm4t1k
Dieu de domotique
 
Messages: 238
Inscription: 25 AoĂ» 2012, 18:40

Re: [SDK] SDK PHP pour la Zibase

Messagede paceo » 09 Avr 2013, 21:20

ZygOm4t1k a Ă©crit:salut .
J'utilise dans open remote
ipzibase/cgi-bin/domo.cgi?cmd=DIM%20B3%20P6%20${param}

et cela fonctionne.

Justement ce que je souhaiterai, c'est créer un slider graphique variant la luminosité de 0% a 100% et qui incrémenterai la variable {param} en fonction de son état. Mais je ne sais pas trop comment m'y prendre :roll:

ZygOm4t1k a Ă©crit:c'est un choix de passer via php?? plus rapide??

Le php me permet en mĂŞme temps de mettre Ă  jour un fichier xml et de simuler un pseudo "retour d'Ă©tat" sur des modules Chacon... :wink:
<| ZiBase 2| Karotz | Kira128 | Light Manager | Chacon | Zwave | Oregon Scientific | Logitech Harmony 900 | Synology | Calybox 220 | Edimax | OWL | OpenRemote |>
Avatar de l’utilisateur
paceo
Guru de domotique
 
Messages: 140
Inscription: 11 Mai 2012, 16:55
Localisation: Istres, FRANCE

Re: [SDK] SDK PHP pour la Zibase

Messagede quikdav » 04 Juil 2013, 09:31

scanab a écrit:Il n'aurai pas été plus naturel d'appeler la fonction avec za2 et de tester si le code commençais par z, puis de découper ce code afin de supprimer le z ? J'ai le php qui fait ça si ça intéresse quelqu'un.

Envoyé depuis mon A500 avec Tapatalk



Salut

J'ai un souci avec le détecteur HSM02 !!! je supprime bien le Z pour les détecteurs Fibaro et ca fonctionne nickel. Par contre, pas pour les HSM02 !!!

Y a t-il quelqu'un qui utilise ces mêmes détecteurs et pour qui cela fonctionnerait ?

Merci
quikdav
Dieu de domotique
 
Messages: 454
Inscription: 23 Mar 2011, 13:15
Localisation: Toulouse

Re: [SDK] SDK PHP pour la Zibase

Messagede smalldragoon » 22 Juil 2013, 11:41

Bonjour
Je suis en train je jouer avec le SDK, tout passe nickel suaf un point : la recuperation des logs de la Zibase, rien ne se passe ... Si je lance l URL, elle reste en "chargement" mais je ne recupere rien.
QQ un aurait il eut le meme probleme ? il y a une astuce a connaitre ? J ai tenté du coup egalement un telnet sur le port mais rien du tout non plus ( pas de Firewall bien sur sur ma machine, j ai verifié )
Merci pour vos lumieres
Lionel
smalldragoon
Membre Actif
 
Messages: 22
Inscription: 22 Nov 2009, 16:05

Re: [SDK] SDK PHP pour la Zibase

Messagede Cmoi20 » 18 AoĂ» 2013, 20:29

Bonjour,

une fonction possible a ajouter au SDK php :
Code: Tout sélectionner
        /**
        * fonction permettantrecuperer la liste des peripheriquesde la zibase
        */
        public function getSensorList($idprincipalzibase,$tokenzibase) {
                $url = "http://zibase.net/m/get_xml.php?device=".$idprincipalzibase."&token=".$tokenzibase;
                $handle = fopen($url, "rb");
                $xmlContent = stream_get_contents($handle);
                fclose($handle);
                $i = 0;
                $xmlDoc = simplexml_load_string($xmlContent);
                $node = $xmlDoc->xpath('//e');
                foreach ($node as $ua) {
                        $attributes = $ua[0]->attributes();
                        $info[$i]['c'] = $attributes["c"];
                        $info[$i]['n'] = $ua->n;
                        $info[$i]['t'] = $attributes["t"];
                        $info[$i]['i'] = $attributes["i"];
                        $i = $i + 1;
                }
        return $info;
        }


et une évolution de la récupération des données d'une sonde pour obtenir l'information batterie faible :
Code: Tout sélectionner
        public function getSensorInfo($idSensor) {
                $url = "http://" . $this->ip . "/sensors.xml";
                $handle = fopen($url, "rb");
                $xmlContent = stream_get_contents($handle);
                fclose($handle);
               
                date_default_timezone_set('Europe/Paris');
                setlocale(LC_TIME, 'fr_FR', 'fra');
                $type = substr($idSensor, 0, 2);
                $number = substr($idSensor, 2);
                $xmlDoc = simplexml_load_string($xmlContent);
                $node = $xmlDoc->xpath("//ev[@id='".$number."' and @pro='".$type."']");                 
                if ($node != null && $node[0]) {                       
                        $info = array();
                        date_default_timezone_set($this->timeZone);
                        $dateSensor = new DateTime();
                        $attributes = $node[0]->attributes();
                        //BUGFIX MISTERQUELLEGOULE
                        $dateSensor->setDate(date("Y", intval($attributes["gmt"])), date("n", intval($attributes["gmt"])), date("j", intval($attributes["gmt"])));                     
                        $dateSensor->setTime(date("H", intval($attributes["gmt"])), date("i", intval($attributes["gmt"])), date("s", intval($attributes["gmt"])));
                        $info[0] = $dateSensor;
                        $info[1] = intval($attributes["v1"]);
                        $info[2] = intval($attributes["v2"]);                   
                        $info[3] = intval($attributes["lowbatt"]);
                        return $info;
                }
                else
                        return null;           
        } 


ce ne sont que des propositions ...
1 JeeDom mini = RFXCOM en esclave | 1 OWL CM180 | 1 Prolian ML350 G5 avec JeeDom maitre | 1 DAS HP MSA20
3 modules Fibaro FGBS321 avec 12 sondes 1Wire DS18B20 cablés en RJ45 (sonde sertie directement dans la tete RJ45)
7 contacts sec Fibaro FGS211 | 1 double contact sec Fibaro FGS221 | 7 WallPlugs Fibaro | 5 dimmers Fibaro FGD-211
1 Anémomètre WGR800 et 1 Sonde Thermomètre Hygromètre THGN801 alimentés par Capteur solaire STC800
1 detecteur d'inondation Fibaro FGFS-101
Cmoi20
Dieu de domotique
 
Messages: 967
Inscription: 20 Juin 2013, 12:53
Localisation: Laventie

Re: [SDK] SDK PHP pour la Zibase

Messagede bgarel » 26 AoĂ» 2013, 19:37

C'est inclus dans la version 1.9.5.
Merci pour la contribution.



Cmoi20 a Ă©crit:Bonjour,

une fonction possible a ajouter au SDK php :
Code: Tout sélectionner
        /**
        * fonction permettantrecuperer la liste des peripheriquesde la zibase
        */
        public function getSensorList($idprincipalzibase,$tokenzibase) {
                $url = "http://zibase.net/m/get_xml.php?device=".$idprincipalzibase."&token=".$tokenzibase;
                $handle = fopen($url, "rb");
                $xmlContent = stream_get_contents($handle);
                fclose($handle);
                $i = 0;
                $xmlDoc = simplexml_load_string($xmlContent);
                $node = $xmlDoc->xpath('//e');
                foreach ($node as $ua) {
                        $attributes = $ua[0]->attributes();
                        $info[$i]['c'] = $attributes["c"];
                        $info[$i]['n'] = $ua->n;
                        $info[$i]['t'] = $attributes["t"];
                        $info[$i]['i'] = $attributes["i"];
                        $i = $i + 1;
                }
        return $info;
        }


et une évolution de la récupération des données d'une sonde pour obtenir l'information batterie faible :
Code: Tout sélectionner
        public function getSensorInfo($idSensor) {
                $url = "http://" . $this->ip . "/sensors.xml";
                $handle = fopen($url, "rb");
                $xmlContent = stream_get_contents($handle);
                fclose($handle);
               
                date_default_timezone_set('Europe/Paris');
                setlocale(LC_TIME, 'fr_FR', 'fra');
                $type = substr($idSensor, 0, 2);
                $number = substr($idSensor, 2);
                $xmlDoc = simplexml_load_string($xmlContent);
                $node = $xmlDoc->xpath("//ev[@id='".$number."' and @pro='".$type."']");                 
                if ($node != null && $node[0]) {                       
                        $info = array();
                        date_default_timezone_set($this->timeZone);
                        $dateSensor = new DateTime();
                        $attributes = $node[0]->attributes();
                        //BUGFIX MISTERQUELLEGOULE
                        $dateSensor->setDate(date("Y", intval($attributes["gmt"])), date("n", intval($attributes["gmt"])), date("j", intval($attributes["gmt"])));                     
                        $dateSensor->setTime(date("H", intval($attributes["gmt"])), date("i", intval($attributes["gmt"])), date("s", intval($attributes["gmt"])));
                        $info[0] = $dateSensor;
                        $info[1] = intval($attributes["v1"]);
                        $info[2] = intval($attributes["v2"]);                   
                        $info[3] = intval($attributes["lowbatt"]);
                        return $info;
                }
                else
                        return null;           
        } 


ce ne sont que des propositions ...
bgarel
P'tit Guru de domotique
 
Messages: 63
Inscription: 05 DĂ©c 2010, 16:08

PrécédenteSuivante

Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

Copyright © 2011 - Touteladomotique.com - Tous droits rĂ©servĂ©s
Les blogs partenaires : Abavala, Domo-Blog, Domotique34, Maison et Domotique