[Plugin Tiers][Sujet Principal] Remora : gestion de chauffage par fil pilote
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
Les modifs a faire sont données juste au dessus
Envoyé de mon A0001 en utilisant Tapatalk
Envoyé de mon A0001 en utilisant Tapatalk
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
La modif de la ligne 50 corrige les remontées téléinfo mais pas les remontées FP (en tous cas chez moi).
Code : Tout sélectionner
08-01-2016 09:06:06 | debug | getTeleinfo
08-01-2016 09:06:08 | debug | Retour
08-01-2016 09:06:08 | debug | Retour Teleinfo _UPTIME valeur 2278
08-01-2016 09:06:11 | debug | getCEStatus
08-01-2016 09:06:11 | debug | getStatus
08-01-2016 09:06:14 | debug | Retour
08-01-2016 09:06:14 | debug | Retour Status zone 1 valeur
08-01-2016 09:06:18 | debug | Retour Status zone 2 valeur
08-01-2016 09:06:20 | debug | Retour Status zone 3 valeur
08-01-2016 09:06:20 | debug | Retour Status zone 4 valeur
08-01-2016 09:06:20 | debug | Retour Status zone 5 valeur
08-01-2016 09:06:20 | debug | Retour Status zone 6 valeur
08-01-2016 09:06:20 | debug | Retour Status zone 7 valeur
08-01-2016 09:06:24 | debug | Retour Status nivdelest valeur
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
@kaktusatomik et @Albinoz vous avez aussi le problème ?
Envoyé de mon A0001 en utilisant Tapatalk
Envoyé de mon A0001 en utilisant Tapatalk
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
Comme le retour du relais ne fonctionne pas non plus j'ai modifié le code :
A la ligne 94 remplacer :
Par :
Je regarde pour faire pareil sur les FP.
A la ligne 94 remplacer :
Code : Tout sélectionner
$addr = config::byKey('addr', 'remora', 0);
$devAddr = 'http://' . $addr . '/relais';
$devResult = file($devAddr);
$retour = $devResult[0];
$jsonob = json_decode($devResult);
$result = $jsonob['relais'];
Code : Tout sélectionner
$addr = config::byKey('addr', 'remora', 0);
$devAddr = 'http://' . $addr . '/relais';
$devResult = file_get_contents($devAddr);
$jsonob = json_decode($devResult);
$result = $jsonob->{'relais'};
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
Ligne 128 ca serait pas ca :
$devResult = file_get_contents($devAddr);
$result = json_decode($devResult);
En tout cas j'ai modifier pour la v2 les 2 fonctions
$devResult = file_get_contents($devAddr);
$result = json_decode($devResult);
En tout cas j'ai modifier pour la v2 les 2 fonctions
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
en 128 j'ai mis ca :
if (config::byKey('type', 'remora', 0) == "esp") {
$addr = config::byKey('addr', 'remora', 0);
$devAddr = 'http://' . $addr . '/fp';
$devResult = file_get_contents($devAddr);
$result = json_decode($devResult);
ensuite en 129
$izone = 1;
while ($izone <= 7) {
if (config::byKey('type', 'remora', 0) == "esp") {
$fp = "fp$izone";
$value = $result->{$fp};
} else {
$value = $result[$izone];
}
$logical = 'zone' . $izone-1;
log::add('remora', 'debug', 'Retour Status zone ' . $izone . ' valeur ' . $value);
$remora = self::byLogicalId($logical, 'remora');
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),'status');
$remoraCmd->setConfiguration('value', $value);
$remoraCmd->save();
$remoraCmd->event($value);
$izone ++;
}
En 167 (même si je n'ai pas encore compris le principe du "delestage") :
if (config::byKey('type', 'remora', 0) == "esp") {
$devAddr = 'http://' . $addr . '/delestage';
$devResult = file_get_contents($devAddr);
$json = json_decode($retour);
$result = $json->{'niveau'};
Si c'est plus simple je te pousse le .php en MP ?
Je n'ai pas pu vérifier pour la téléinfo car je ne l'ai pas encore connectée, j'ai juste le uptime qui s'affiche donc je pense que c'est ok.
Le relais et les FP fonctionnent nickel.
if (config::byKey('type', 'remora', 0) == "esp") {
$addr = config::byKey('addr', 'remora', 0);
$devAddr = 'http://' . $addr . '/fp';
$devResult = file_get_contents($devAddr);
$result = json_decode($devResult);
ensuite en 129
$izone = 1;
while ($izone <= 7) {
if (config::byKey('type', 'remora', 0) == "esp") {
$fp = "fp$izone";
$value = $result->{$fp};
} else {
$value = $result[$izone];
}
$logical = 'zone' . $izone-1;
log::add('remora', 'debug', 'Retour Status zone ' . $izone . ' valeur ' . $value);
$remora = self::byLogicalId($logical, 'remora');
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),'status');
$remoraCmd->setConfiguration('value', $value);
$remoraCmd->save();
$remoraCmd->event($value);
$izone ++;
}
En 167 (même si je n'ai pas encore compris le principe du "delestage") :
if (config::byKey('type', 'remora', 0) == "esp") {
$devAddr = 'http://' . $addr . '/delestage';
$devResult = file_get_contents($devAddr);
$json = json_decode($retour);
$result = $json->{'niveau'};
Si c'est plus simple je te pousse le .php en MP ?
Je n'ai pas pu vérifier pour la téléinfo car je ne l'ai pas encore connectée, j'ai juste le uptime qui s'affiche donc je pense que c'est ok.
Le relais et les FP fonctionnent nickel.
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
Correctif, dans le bloc ligne 129 remplacer :
$logical = 'zone' . $izone-1;
par :
$logical = 'zone' . $izone;
$logical = 'zone' . $izone-1;
par :
$logical = 'zone' . $izone;
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
Mouais enfin en meme temps t'avais modifié toute la boucle en deplacant le ++ par exemple, t'as fait plus de modif que nécessaire en mettant un bug
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
Aucune obligation d'intégrer ces modifs. Je ne les ai faites que parce que cela ne fonctionnait pas (pour moi).
Comme a priori je suis le seul à avoir eu des soucis le mieux est de ne rien changer.
Comme a priori je suis le seul à avoir eu des soucis le mieux est de ne rien changer.
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
J'ai intégré juste $devResult = file_get_contents($devAddr);
$result = json_decode($devResult);
Qui est nécessaire sur esp
Mais ca sera diffusé à la sortie de V2
$result = json_decode($devResult);
Qui est nécessaire sur esp
Mais ca sera diffusé à la sortie de V2
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
Non tu n'es pas le seul à avoir des soucis.specimen a écrit :Aucune obligation d'intégrer ces modifs. Je ne les ai faites que parce que cela ne fonctionnait pas (pour moi).
Comme a priori je suis le seul à avoir eu des soucis le mieux est de ne rien changer.
Je n'ai pas encore intégré tes modifications ni pris le temps de debugger le plug-in.
Pour que ça marche sans plug-in, j'utilise des scripts pour le moment.
Tu peux faire un copier coller du PHP en intégralité, je prendrai quelques minutes pour l'intégrer et le tester.
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
Bonsoir Lunarok. Oui, j'ai le même problème et j'essaie de faire les modifs (c'est ok pour la teleinfo mais pas pour les status) ... du moins pour le moment.lunarok a écrit :@kaktusatomik et @Albinoz vous avez aussi le problème ?
Envoyé de mon A0001 en utilisant Tapatalk
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
donc le fichier /usr/share/nginx/www/jeedom/plugins/remora/core/class/remora.class.php (sur jeedom mini) modifié.
bien sur c'est juste pour vous dépanner en attendant la version officielle qui viendra avec jeedom v2,
bien sur c'est juste pour vous dépanner en attendant la version officielle qui viendra avec jeedom v2,
Code : Tout sélectionner
<?php
/* This file is part of Jeedom.
*
* Jeedom is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Jeedom is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Jeedom. If not, see <http://www.gnu.org/licenses/>.
*/
/* * ***************************Includes********************************* */
require_once dirname(__FILE__) . '/../../../../core/php/core.inc.php';
require_once dirname(__FILE__) . '/../../core/php/phpSpark.class.php';
class remora extends eqLogic {
/* * *************************Attributs****************************** */
/* * ***********************Methode static*************************** */
public static function cron() {
$elogic = self::byLogicalId('teleinfo', 'remora');
if ($elogic->getIsEnable() == 1) {
$elogic->getTeleinfo();
}
$elogic = self::byLogicalId('chauffeeau', 'remora');
if ($elogic->getIsEnable() == 1) {
$elogic->getCEStatus();
}
self::getStatus();
}
public function getTeleinfo() {
//https://api.spark.io/v1/devices/[DEVICE_ID]/indexhp?access_token=[ACCESS_TOKEN]
$elogic = self::byLogicalId('teleinfo', 'remora');
log::add('remora', 'debug', 'getTeleinfo ');
if (config::byKey('type', 'remora', 0) == "esp") {
$addr = config::byKey('addr', 'remora', 0);
$devAddr = 'http://' . $addr . '/tinfo';
$devResult = file($devAddr);
//$ticall = $devResult[0];
$ticall =implode($devResult);
} else {
$accessToken = config::byKey('token', 'remora', 0);
$deviceid = config::byKey('deviceid', 'remora', 0);
$spark = new phpSpark();
$spark->setDebug(false);
$spark->setDebugType("TXT");
$spark->setAccessToken($accessToken);
if($spark->getVariable($deviceid, "tinfo") == true) {
$obj = $spark->getResult();
$ticall = $obj['result'];
} else {
log::add('remora', 'error', 'Teleinfo Erreur d\'appel ' . $spark->getError()) . ' source ' . $spark->getErrorSource();
return false;
}
}
log::add('remora', 'debug', 'Retour ' . print_r($tinfo,true));
$tinfo = json_decode($ticall);
foreach($tinfo as $key => $value ) {
log::add('remora', 'debug', 'Retour Teleinfo ' . $key . ' valeur ' . $value);
$remora = self::byLogicalId('teleinfo', 'remora');
$cmdlogic = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),$key);
if (!is_object($cmdlogic)) {
$cmdlogic = new remoraCmd();
$cmdlogic->setName($key);
$cmdlogic->setEqLogic_id($remora->id);
$cmdlogic->setEqType('remora');
$cmdlogic->setLogicalId($key);
$cmdlogic->setType('info');
$cmdlogic->setSubType('numeric');
$cmdlogic->setEventOnly(1);
}
$cmdlogic->setConfiguration('value', $value);
$cmdlogic->save();
$cmdlogic->event($value);
}
return ;
}
public function getCEStatus() {
//https://api.spark.io/v1/devices/[DEVICE_ID]/indexhp?access_token=[ACCESS_TOKEN]
if (config::byKey('type', 'remora', 0) == "esp") {
$addr = config::byKey('addr', 'remora', 0);
$devAddr = 'http://' . $addr . '/relais';
$devResult = file_get_contents($devAddr);
$jsonob = json_decode($devResult);
$result = $jsonob->{'relais'};
} else {
$accessToken = config::byKey('token', 'remora', 0);
$deviceid = config::byKey('deviceid', 'remora', 0);
$spark = new phpSpark();
$spark->setDebug(false);
$spark->setDebugType("TXT");
$spark->setAccessToken($accessToken);
if($spark->getVariable($deviceid, "etatrelais") == true) {
$obj = $spark->getResult();
$result = $obj['result'];
} else {
log::add('remora', 'error', 'Teleinfo Erreur d\'appel ' . $spark->getError()) . ' source ' . $spark->getErrorSource();
return false;
}
}
log::add('remora', 'debug', 'getCEStatus ' . $result);
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($this->getId(),'status');
$remoraCmd->setConfiguration('value', $result);
$remoraCmd->save();
$remoraCmd->event($result);
return ;
}
public function getStatus() {
log::add('remora', 'debug', 'getStatus ');
if (config::byKey('type', 'remora', 0) == "esp") {
$addr = config::byKey('addr', 'remora', 0);
$devAddr = 'http://' . $addr . '/fp';
$devResult = file_get_contents($devAddr);
//$retour = $devResult[0];
$result = json_decode($devResult);
} else {
$accessToken = config::byKey('token', 'remora', 0);
$deviceid = config::byKey('deviceid', 'remora', 0);
$spark = new phpSpark();
$spark->setDebug(false);
$spark->setDebugType("TXT");
$spark->setAccessToken($accessToken);
if($spark->getVariable($deviceid, "etatfp") == true) {
$obj = $spark->getResult();
$result = $obj['result'];
} else {
log::add('remora', 'error', 'Teleinfo Erreur d\'appel ' . $spark->getError()) . ' source ' . $spark->getErrorSource();
return false;
}
}
log::add('remora', 'debug', 'Retour ' . print_r($result,true));
$izone = 1;
while ($izone <= 7) {
if (config::byKey('type', 'remora', 0) == "esp") {
$fp = "fp$izone";
$value = $result->{$fp};
} else {
$value = $result[$izone];
}
$logical = 'zone' . $izone;
log::add('remora', 'debug', 'Retour Status zone ' . $izone . ' valeur ' . $value);
$remora = self::byLogicalId($logical, 'remora');
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),'status');
$remoraCmd->setConfiguration('value', $value);
$remoraCmd->save();
$remoraCmd->event($value);
$izone ++;
}
if (config::byKey('type', 'remora', 0) == "esp") {
$devAddr = 'http://' . $addr . '/delestage';
$devResult = file_get_contents($devAddr);
//$retour = $devResult[0];
$json = json_decode($retour);
$result = $json->{'niveau'};;
} else {
if($spark->getVariable($deviceid, "nivdelest") == true) {
$obj = $spark->getResult();
$result = $obj['result'];
} else {
log::add('remora', 'error', 'Teleinfo Erreur d\'appel ' . $spark->getError()) . ' source ' . $spark->getErrorSource();
return false;
}
}
log::add('remora', 'debug', 'Retour Status nivdelest valeur ' . $result);
$remora = self::byLogicalId('global', 'remora');
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),'nivdelest');
$remoraCmd->setConfiguration('value', $value);
$remoraCmd->save();
$remoraCmd->event($value);
return ;
}
public function remoraCall($zone,$request) {
log::add('remora', 'debug', 'Recu commande ' . $request . ' vers ' . $zone);
//curl https://api.spark.io/v1/devices/[DEVICE_ID]/fp -d access_token=[ACCESS_TOKEN] -d params=[ORDRES]
$params = $zone.$request;
if (config::byKey('type', 'remora', 0) == "esp") {
$addr = config::byKey('addr', 'remora', 0);
$devAddr = 'http://' . $addr . '?setfp=' . $params;
$devResult = file_get_contents($devAddr);
//$retour = $devResult[0];
//$result = json_decode($retour);
} else {
$accessToken = config::byKey('token', 'remora', 0);
$deviceid = config::byKey('deviceid', 'remora', 0);
$spark = new phpSpark();
$spark->setDebug(false);
$spark->setDebugType("TXT");
$spark->setTimeout("5");
$spark->setAccessToken($accessToken);
if($spark->callFunction($deviceid, "setfp", $params) == true) {
} else {
log::add('remora', 'error', 'Erreur d\'appel ' . $spark->getError()) . ' source ' . $spark->getErrorSource();
return false;
}
}
$logical = 'zone' . $zone;
$remora = self::byLogicalId($logical, 'remora');
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),'status');
$remoraCmd->setConfiguration('value', $request);
$remoraCmd->save();
$remoraCmd->event($request);
}
public function remoraRelais($request) {
log::add('remora', 'debug', 'Recu commande relais vers ' . $request);
if (config::byKey('type', 'remora', 0) == "esp") {
$addr = config::byKey('addr', 'remora', 0);
$devAddr = 'http://' . $addr . '?relais=' . $request;
$devResult = file_get_contents($devAddr);
//$retour = $devResult[0];
//$result = json_decode($retour);
} else {
$accessToken = config::byKey('token', 'remora', 0);
$deviceid = config::byKey('deviceid', 'remora', 0);
$spark = new phpSpark();
$spark->setDebug(false);
$spark->setDebugType("TXT");
$spark->setTimeout("5");
$spark->setAccessToken($accessToken);
if($spark->callFunction($deviceid, "relais", $request) == true) {
} else {
log::add('remora', 'error', 'Erreur d\'appel ' . $spark->getError()) . ' source ' . $spark->getErrorSource();
return false;
}
}
$remora = self::byLogicalId('chauffeeau', 'remora');
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),'status');
$remoraCmd->setConfiguration('value', $request);
$remoraCmd->save();
$remoraCmd->event($request);
}
public static function populate() {
$izone = 1;
while ($izone <= 7) {
$logical = 'zone' . $izone;
$remora = self::byLogicalId($logical, 'remora');
if (!is_object($remora)) {
log::add('remora', 'info', 'Equipement n existe pas, création ' . $logical);
$remora = new remora();
$remora->setEqType_name('remora');
$remora->setLogicalId($logical);
$remora->setName('Zone ' . $izone);
$remora->setIsEnable(true);
$remora->save();
$remora->setLogicalId('zone' . $izone);
$remora->setConfiguration('zone', $izone);
$remora->save();
//log::add('remora', 'info', print_r($remora,true));
}
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),'confort');
if (!is_object($remoraCmd)) {
$remoraCmd = new remoraCmd();
$remoraCmd->setEqLogic_id($remora->getId());
$remoraCmd->setEqType('remora');
$remoraCmd->setLogicalId('confort');
$remoraCmd->setName( 'Confort' );
$remoraCmd->setConfiguration('request', 'C');
$remoraCmd->setType('action');
$remoraCmd->setSubType('other');
$remoraCmd->save();
}
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),'arret');
if (!is_object($remoraCmd)) {
$remoraCmd = new remoraCmd();
$remoraCmd->setEqLogic_id($remora->getId());
$remoraCmd->setEqType('remora');
$remoraCmd->setLogicalId('arret');
$remoraCmd->setName( 'Arrêt' );
$remoraCmd->setConfiguration('request', 'A');
$remoraCmd->setType('action');
$remoraCmd->setSubType('other');
$remoraCmd->save();
}
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),'eco');
if (!is_object($remoraCmd)) {
$remoraCmd = new remoraCmd();
$remoraCmd->setEqLogic_id($remora->getId());
$remoraCmd->setEqType('remora');
$remoraCmd->setLogicalId('eco');
$remoraCmd->setName( 'Eco' );
$remoraCmd->setConfiguration('request', 'E');
$remoraCmd->setType('action');
$remoraCmd->setSubType('other');
$remoraCmd->save();
}
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),'horsgel');
if (!is_object($remoraCmd)) {
$remoraCmd = new remoraCmd();
$remoraCmd->setEqLogic_id($remora->getId());
$remoraCmd->setEqType('remora');
$remoraCmd->setLogicalId('horsgel');
$remoraCmd->setName( 'Hors Gel' );
$remoraCmd->setConfiguration('request', 'H');
$remoraCmd->setType('action');
$remoraCmd->setSubType('other');
$remoraCmd->save();
}
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),'status');
if (!is_object($remoraCmd)) {
$remoraCmd = new remoraCmd();
$remoraCmd->setName('Statut');
$remoraCmd->setEqLogic_id($remora->id);
$remoraCmd->setEqType('remora');
$remoraCmd->setLogicalId('status');
$remoraCmd->setType('info');
$remoraCmd->setSubType('string');
$remoraCmd->setEventOnly(1);
$remoraCmd->save();
}
//incrémentation
$izone++;
}
$logical = 'global';
$remora = self::byLogicalId($logical, 'remora');
if (!is_object($remora)) {
log::add('remora', 'info', 'Equipement n existe pas, création ' . $logical);
$remora = new remora();
$remora->setEqType_name('remora');
$remora->setLogicalId($logical);
$remora->setName('Global');
$remora->setConfiguration('zone', '0');
$remora->setIsEnable(true);
$remora->save();
}
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),'confort');
if (!is_object($remoraCmd)) {
$remoraCmd = new remoraCmd();
$remoraCmd->setEqLogic_id($remora->getId());
$remoraCmd->setEqType('remora');
$remoraCmd->setLogicalId('confort');
$remoraCmd->setName( 'Confort' );
$remoraCmd->setConfiguration('request', 'C');
$remoraCmd->setType('action');
$remoraCmd->setSubType('other');
$remoraCmd->save();
}
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),'arret');
if (!is_object($remoraCmd)) {
$remoraCmd = new remoraCmd();
$remoraCmd->setEqLogic_id($remora->getId());
$remoraCmd->setEqType('remora');
$remoraCmd->setLogicalId('arret');
$remoraCmd->setName( 'Arrêt' );
$remoraCmd->setConfiguration('request', 'A');
$remoraCmd->setType('action');
$remoraCmd->setSubType('other');
$remoraCmd->save();
}
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),'eco');
if (!is_object($remoraCmd)) {
$remoraCmd = new remoraCmd();
$remoraCmd->setEqLogic_id($remora->getId());
$remoraCmd->setEqType('remora');
$remoraCmd->setLogicalId('eco');
$remoraCmd->setName( 'Eco' );
$remoraCmd->setConfiguration('request', 'E');
$remoraCmd->setType('action');
$remoraCmd->setSubType('other');
$remoraCmd->save();
}
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),'horsgel');
if (!is_object($remoraCmd)) {
$remoraCmd = new remoraCmd();
$remoraCmd->setEqLogic_id($remora->getId());
$remoraCmd->setEqType('remora');
$remoraCmd->setLogicalId('horsgel');
$remoraCmd->setName( 'Hors Gel' );
$remoraCmd->setConfiguration('request', 'H');
$remoraCmd->setType('action');
$remoraCmd->setSubType('other');
$remoraCmd->save();
}
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),'nivdelest');
if (!is_object($remoraCmd)) {
$remoraCmd = new remoraCmd();
$remoraCmd->setName('Niveau Délestage');
$remoraCmd->setEqLogic_id($remora->id);
$remoraCmd->setEqType('remora');
$remoraCmd->setLogicalId('nivdelest');
$remoraCmd->setType('info');
$remoraCmd->setSubType('string');
$remoraCmd->setEventOnly(1);
$remoraCmd->save();
}
$logical = 'teleinfo';
$remora = self::byLogicalId($logical, 'remora');
if (!is_object($remora)) {
log::add('remora', 'info', 'Equipement n existe pas, création ' . $logical);
$remora = new remora();
$remora->setEqType_name('remora');
$remora->setLogicalId($logical);
$remora->setName('Téléinfo');
$remora->setIsEnable(true);
$remora->save();
}
$logical = 'chauffeeau';
$remora = self::byLogicalId($logical, 'remora');
if (!is_object($remora)) {
log::add('remora', 'info', 'Equipement n existe pas, création ' . $logical);
$remora = new remora();
$remora->setEqType_name('remora');
$remora->setLogicalId($logical);
$remora->setName('Chauffe-Eau');
$remora->setConfiguration('chauffeeau', '1');
$remora->setIsEnable(true);
$remora->save();
}
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),'on');
if (!is_object($remoraCmd)) {
$remoraCmd = new remoraCmd();
$remoraCmd->setEqLogic_id($remora->getId());
$remoraCmd->setEqType('remora');
$remoraCmd->setLogicalId('on');
$remoraCmd->setName( 'Allumer' );
$remoraCmd->setConfiguration('request', '1');
$remoraCmd->setType('action');
$remoraCmd->setSubType('other');
$remoraCmd->save();
}
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),'off');
if (!is_object($remoraCmd)) {
$remoraCmd = new remoraCmd();
$remoraCmd->setEqLogic_id($remora->getId());
$remoraCmd->setEqType('remora');
$remoraCmd->setLogicalId('off');
$remoraCmd->setName( 'Eteindre' );
$remoraCmd->setConfiguration('request', '0');
$remoraCmd->setType('action');
$remoraCmd->setSubType('other');
$remoraCmd->save();
}
$remoraCmd = remoraCmd::byEqLogicIdAndLogicalId($remora->getId(),'status');
if (!is_object($remoraCmd)) {
$remoraCmd = new remoraCmd();
$remoraCmd->setName('Statut');
$remoraCmd->setEqLogic_id($remora->id);
$remoraCmd->setEqType('remora');
$remoraCmd->setLogicalId('status');
$remoraCmd->setType('info');
$remoraCmd->setSubType('string');
$remoraCmd->setEventOnly(1);
$remoraCmd->save();
}
return true;
}
}
class remoraCmd extends cmd {
/* * *************************Attributs****************************** */
/* * ***********************Methode static*************************** */
/* * *********************Methode d'instance************************* */
public function execute($_options = null) {
switch ($this->getType()) {
case 'info' :
return $this->getConfiguration('value');
break;
case 'action' :
$request = $this->getConfiguration('request');
switch ($this->getSubType()) {
case 'slider':
$request = str_replace('#slider#', $value, $request);
break;
case 'color':
$request = str_replace('#color#', $_options['color'], $request);
break;
case 'message':
if ($_options != null) {
$replace = array('#title#', '#message#');
$replaceBy = array($_options['title'], $_options['message']);
if ( $_options['title'] == '') {
throw new Exception(__('Le sujet ne peut être vide', __FILE__));
}
$request = str_replace($replace, $replaceBy, $request);
}
else
$request = 1;
break;
default : $request == null ? 1 : $request;
}
$eqLogic = $this->getEqLogic();
$LogicalID = $this->getLogicalId();
if ($eqLogic->getConfiguration('chauffeeau') == 1) {
remora::remoraRelais($request);
} else {
$zone = $eqLogic->getConfiguration('zone');
if ($zone == '0') {
$izone = 1;
while ($izone <= 7) {
remora::remoraCall($izone,$request);
$izone ++;
}
} else {
remora::remoraCall($zone,$request);
}
}
return $request;
}
return true;
}
}
?>
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
Ok , donc c'est bon pour moi. Je récupère les status (fp), le délestage et le statut du relais
En fait, j'ai appliqué la première correction partout :
Le paramètre "true" de json_decode permet d'avoir le tableau associatif, et ça change tout (en tout cas chez moi).
Pour la fonction statut, au lieu de la boucle while, j'ai fais une boucle foreach sur le modèle de la fonction teleinfo, et c'est nicket.
Du coup, on doit même pouvoir faire une fonction getDatas ($adresseIpRemora, $page) qui nous retournera le tableau associatif qui va bien.
Par exemple, getDatas(IP, "tinfo"), etc ...
Après pour le délestage, nous avons en fait 2 variables : niveau et zone. Hors le plugin ne prend en compte que le niveau dans "global".
Il faudrait rajouter la variable "zone".
En fait, j'ai appliqué la première correction partout :
Code : Tout sélectionner
$devResult = file($devAddr);
$retour = implode($devResult);
$result = json_decode($retour, true);
Pour la fonction statut, au lieu de la boucle while, j'ai fais une boucle foreach sur le modèle de la fonction teleinfo, et c'est nicket.
Du coup, on doit même pouvoir faire une fonction getDatas ($adresseIpRemora, $page) qui nous retournera le tableau associatif qui va bien.
Par exemple, getDatas(IP, "tinfo"), etc ...
Après pour le délestage, nous avons en fait 2 variables : niveau et zone. Hors le plugin ne prend en compte que le niveau dans "global".
Il faudrait rajouter la variable "zone".
-
- Timide
- Messages : 119
- Inscription : 04 déc. 2015, 21:48
- Localisation : La Rochelle
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
Effectivement cette correction fonctionne. Il faut modifier également la ligneAlbinoz a écrit :Ok , donc c'est bon pour moi. Je récupère les status (fp), le délestage et le statut du relais
En fait, j'ai appliqué la première correction partout :Le paramètre "true" de json_decode permet d'avoir le tableau associatif, et ça change tout (en tout cas chez moi).Code : Tout sélectionner
$devResult = file($devAddr); $retour = implode($devResult); $result = json_decode($retour, true);
Pour la fonction statut, au lieu de la boucle while, j'ai fais une boucle foreach sur le modèle de la fonction teleinfo, et c'est nicket.
Du coup, on doit même pouvoir faire une fonction getDatas ($adresseIpRemora, $page) qui nous retournera le tableau associatif qui va bien.
Par exemple, getDatas(IP, "tinfo"), etc ...
Après pour le délestage, nous avons en fait 2 variables : niveau et zone. Hors le plugin ne prend en compte que le niveau dans "global".
Il faudrait rajouter la variable "zone".
Code : Tout sélectionner
$fp = 'fp'.$izone+1;
Code : Tout sélectionner
$fp = 'fp'.($izone+1);
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
Salut,
Petit bug en installant la V2 de jeedom
Il manque un ";" à la ligne 50
Petit bug en installant la V2 de jeedom
Code : Tout sélectionner
2016/02/09 14:53:23 [error] 558#0: *82294 FastCGI sent in stderr: "PHP message: PHP Parse error: syntax error, unexpected '}' in /usr/share/nginx/www/jeedom/plugins/remora/core/class/remora.class.php on line 51" while reading response header from upstream, client: ***, server: , request: "GET /index.php?v=d&m=remora&p=remora HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "***", referrer: "http://88.125.136.1/index.php?v=d&p=administration"
Code : Tout sélectionner
if (config::byKey('type', 'remora', 0) == "esp") {
$addr = config::byKey('addr', 'remora', 0);
$devAddr = 'http://' . $addr . '/tinfo';
$devResult = file($devAddr);
$ticall =implode($devResult);
} else {
Application JeedomApp pour Windows 10 (non officielle)
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
corrigé et dispo au market en stable
trituré la version dans tous les sens pour vérifier tout parcequ'il y a peut etre (surement) d'autres trucs en erreur
trituré la version dans tous les sens pour vérifier tout parcequ'il y a peut etre (surement) d'autres trucs en erreur
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
bonjour a tous
quelqu'un sais il ou je peut me procurer un remora (ou kit mais assemblé serrais idéal)
ca j'ai tout mes fil pilotes au tableau et d coup ca serrais je pense la solution la plus adaptéee
l'idée et d'avoir une installation fiable j'ai ma 2eme petite qui va arriver je ne peut pas me permettre de ne plus avoir de chauffage
mercii
quelqu'un sais il ou je peut me procurer un remora (ou kit mais assemblé serrais idéal)
ca j'ai tout mes fil pilotes au tableau et d coup ca serrais je pense la solution la plus adaptéee
l'idée et d'avoir une installation fiable j'ai ma 2eme petite qui va arriver je ne peut pas me permettre de ne plus avoir de chauffage
mercii
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
Tu peux trouver tous les plans, schémas, liste des composants sur http://community.hallard.me.
Tu trouveras sur le forum un topic dédié Remora.
Il y a aussi le github de Thibault et de charles sur lesquels tout est disponible.
https://github.com/hallard/remora_soft
https://github.com/thibdct/programmateu ... ilote-wifi
Voilà, vas sur le forum ,n'hésite pas.
Tu trouveras sur le forum un topic dédié Remora.
Il y a aussi le github de Thibault et de charles sur lesquels tout est disponible.
https://github.com/hallard/remora_soft
https://github.com/thibdct/programmateu ... ilote-wifi
Voilà, vas sur le forum ,n'hésite pas.
Re: [Sujet officie] Remora : gestion de chauffage par fil pi
Sinon, vous pouvez me confirmer que tout est bon ou pas (je serais pas étonné ) avec Spark et ESP ?
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 6 invités