Blocs PHP utiles - rjullien/Jeedom-Plugins-Extra GitHub Wiki
Petits blocs code PHP qui peuvent être utiles
Pour récupérer une valeur
$cmd = cmd::byString("#[Maison][Motion Sensor Couloir][Présence]#");
$value = $cmd->execCmd();
$scenario->setData("test_php", $value);
Récupérer la valeur et la date de derniere mise à jour
$cmd = cmd::byString("#[sondes][Sondes SdB][Humidité]#");
$value = $cmd->execCmd();
$collectDate = $cmd->getCollectDate();
$scenario->setData("test_php", $collectDate);
Pour modifier une valeur
$cmd::byId(471)->event("ma_valeur");
ou
$cmdC = "#[Appart][Elec][Test]#";
$cmd = cmd::byString($cmdC);
$cmd->event(("100"));
ou
cmd::byString("#[EQUIPEMENT]#")->event(("100"));
Pour cacher une info
$o=cmd::byId(1647);
$o->setIsVisible(0);
// valeur à 1 pour rendre visible
$p=$o->save();
Pour cacher un objet
$o=eqLogic::byId(IDOBJECT);
$o->setIsVisible(1);
// ou 0 pour rendre non visible
$p=$o->save();[/code]
ou
$o=object::byId(2);
$o->setIsVisible(0);
$p=$o->save();
Pour cacher et desactivé un scénario
$o=scenario::byId(29);
$o->setIsVisible(0);
$o->setIsActive(0);
$p=$o->save();
Pour connaitre (équipement, objet, scénario)
$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)
$Variable_J = "#nom#";
$scenario->setData($Variable_J, '0');
Récupérer la valeur d'une variable
$Variable_J = "#nom#";
$tabJ = $scenario->getData($Variable_J);
Pour piloter une commande
$commande='#[test][setdate][on]#';
$cmd = cmd::byString($commande);
$cmd->execCmd();
Pour exécuter une commande action avec message
$cmd=cmd::byString('#[MAISON][TEST][nom]#');
$cmd->execCmd($options=array('title'=>'Jeedom', 'message'=> "Bla Bla bla"), $cache=0);
Lancer un scénario
$scenario = scenario::byId(ID);
$scenario->launch();
Pour arrêter un scenario on peut faire
$scenario = scenario::byId(ID);
$scenario->stop();
Pour modifier l'historique
$cmd = cmd::byId(773);
$cmd->addHistoryValue( 0, $_datetime = '2016-06-02 08:30:00') ;
$cmd->addHistoryValue( 1, $_datetime = '2016-06-02 09:30:00') ;
Pour rechercher une valeur
$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);
Pour aller plus loin
variable dans variable https://www.jeedom.com/forum/viewtopic.php?f=27&t=19351&p=347602#p347602
variable dans une fonction https://www.jeedom.com/forum/viewtopic.php?f=32&t=17908&p=322540#p322540