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