[tuto] bloc code PHP scénario (petite commande simple)
Publié : 02 août 2016, 22:46
récapitulatif de petite commande PHP dans le bloc code d'un scénario
Pour récupérer une valeur
Récupérer la valeur et la date de derniere mise à jour
Pour modifier une valeur
pour cacher une info
pour cacher un objet
ou qui marche chez certains
pour cacher et desactivé un scénario
pour connaitre (équipement, objet, scénario)
variable (attribué 0)
récupérer la valeur d'une variable
Action
pour piloter une commande
Pour exécuter une commande action avec message: thk @yoguiti
Lancer un scénario
pour arrêter un scenario on peut faire
Pour modifier l'historique
Pour rechercher une valeur
Plusieurs index possibles : avg, min, max, sum, count, std, variance, last
__ exemple __ (à vous d'en ajouté)
variable dans variable
viewtopic.php?f=27&t=19351&p=347602#p347602
variable dans une fonction
viewtopic.php?f=32&t=17908&p=322540#p322540
pour aller plus loin le tuto reveil ou scénario heure levée/couché de soleil
ou encore plus loin (pour connaisseur)
[Framework SC] les scenarios en php
viewtopic.php?f=27&t=17645&hilit=framework+php
Code : Tout sélectionner
$cmd = cmd::byString("#[EQUIPEMENT]#");
ou
$cmd = cmd::byId($ID);
Code : Tout sélectionner
$cmd = cmd::byString("#[Maison][Motion Sensor Couloir][Présence]#");
$value = $cmd->execCmd();
$scenario->setData("test_php", $value);
Code : Tout sélectionner
$cmd = cmd::byString("#[sondes][Sondes SdB][Humidité]#");
$value = $cmd->execCmd();
$collectDate = $cmd->getCollectDate();
$scenario->setData("test_php", $collectDate);
Code : Tout sélectionner
$cmd::byId(471)->event("ma_valeur");
ou
$cmdC = "#[Appart][Elec][Test]#";
$cmd = cmd::byString($cmdC);
$cmd->event(("100"));
ou
cmd::byString("#[EQUIPEMENT]#")->event(("100"));
Code : Tout sélectionner
$o=cmd::byId(1647);
$o->setIsVisible(0); // valeur à 1 pour rendre visible
$p=$o->save();
Code : Tout sélectionner
$o=eqLogic::byId(IDOBJECT);
$o->setIsVisible(1); ou 0 pour rendre non visible
$p=$o->save();
Code : Tout sélectionner
$o=object::byId(2);
$o->setIsVisible(0);
$p=$o->save();
Code : Tout sélectionner
$o=scenario::byId(29);
$o->setIsVisible(0);
$o->setIsActive(0);
$p=$o->save();
Code : Tout sélectionner
$cmd=scenario::byId(78);
$visible = $cmd->getIsVisible();
$Active = $cmd->getIsActive(); // ne fonctionne pas pour equipement
$scenario->setData("test_php", $visible);
ou
$scenario->setData("test_php", scenario::byString("#[test expression]#)->getIsVisible());
variable (attribué 0)
Code : Tout sélectionner
$Variable_J = "#nom#";
$scenario->setData($Variable_J, '0');
Code : Tout sélectionner
$Variable_J = "#nom#";
$tabJ = $scenario->getData($Variable_J);
Action
pour piloter une commande
Code : Tout sélectionner
$commande='#[test][setdate][on]#';
$cmd = cmd::byString($commande);
$cmd->execCmd();
Pour exécuter une commande action avec message: thk @yoguiti
Code : Tout sélectionner
$cmd=cmd::byString('#[MAISON][TEST][nom]#');
$cmd->execCmd($options=array('title'=>'Jeedom', 'message'=> "Bla Bla bla"), $cache=0);
Code : Tout sélectionner
$scenario = scenario::byId(ID);
$scenario->launch();
Code : Tout sélectionner
$scenario = scenario::byId(ID);
$scenario->stop();
Code : Tout sélectionner
$cmd = cmd::byId(773);
$cmd->addHistoryValue( 0, $_datetime = '2016-06-02 08:30:00') ;
$cmd->addHistoryValue( 1, $_datetime = '2016-06-02 09:30:00') ;
Code : Tout sélectionner
$cmdId = cmd::byString("#[sondes][Sondes SdB][Humidité]#")->getId();
$debut = date("Y-m-d H:i:s", strtotime("Yesterday"));
$fin = date("Y-m-d H:i:s", strtotime("-10 min"));
$value = history::getStatistique($cmdId, $debut, $fin)["last"];
$scenario->setData("test", $value);
Plusieurs index possibles : avg, min, max, sum, count, std, variance, last
__ exemple __ (à vous d'en ajouté)
tous les soir à 23h59
commande cmdj / variable J
récupération de la variable J
attribué la valeur à la commande cmdj
mettre la variable à 0
Code : Tout sélectionner
$cmdJ1 ="#[Stat Chauffage][Stat Chauffage J+1 scenario][Allumer]#";
$Variable_J = "Stat chauffage J";
// variable d'hier
$tabJ = $scenario->getData($Variable_J);
// affichage N-1
$cmd = cmd::byString($cmdJ1);
$cmd->event(($tabJ));
// variable à 0
$scenario->setData($Variable_J, '0');
attribué l'heure de l'éxecution du scénario
Code : Tout sélectionner
$cmdC ="#[Cuisine][VR Cuisine][Le]#"; // Id 486
$temp = date('d-m à H:i');
$cmd = cmd::byString($cmdC);
$cmd->event(($temp));
déclenché toutes les 15mn
si retour de la sonde dépasse 10 mn affecté la valeur binaire
Code : Tout sélectionner
$_cmd = "262"; // sondes temp chambre adrien rfx
$mkt=mktime();
$tmp = scenarioExpression::collectDate($_cmd, $_format = 'U');
$tmp2 = ($mkt - $tmp);
if ($tmp2 < 600) {
$cmd =cmd::byId(921);
$cmd->event((1)); // OK
} else {
$cmd =cmd::byId(921);
$cmd->event((0)); // NOK
}
idem avec detecteur de porte en affectant une variable en plus
Code : Tout sélectionner
$_cmd = "296"; // Porte Entree rfx
$mkt=mktime();
$tmp = scenarioExpression::collectDate($_cmd, $_format = 'U');
$tmp2 = ($mkt - $tmp);
if ($tmp2 < 43200) {
$scenario->setData('Kontrol_Porte_Entr', "1"); // OK SCENARIO
$cmd =cmd::byId(471); // Detecteur Porte Entr
$cmd->event((1)); // OK
} else {
$scenario->setData('Kontrol_Porte_Entr', "0"); // NOK SCENARIO
$cmd =cmd::byId(471); // Detecteur Porte Entr
$cmd->event((0)); // NOK
}
viewtopic.php?f=27&t=19351&p=347602#p347602
variable dans une fonction
viewtopic.php?f=32&t=17908&p=322540#p322540
pour aller plus loin le tuto reveil ou scénario heure levée/couché de soleil
Tauks a écrit : code :
ou encore plus loin (pour connaisseur)
[Framework SC] les scenarios en php
viewtopic.php?f=27&t=17645&hilit=framework+php