public static function setPinValue($_logicalId, $_value) { $General_Debug = config::byKey('generalDebug', 'arduidom', 0, true); $DaemonReady = self::get_daemon_mode(); if ($General_Debug) { log::add('arduidom', 'debug', 'setPinValue(' . $_logicalId . ',' . $_value . ') called'); } $func_start_time = getmicrotime(true); if ($DaemonReady != "OK" && $DaemonReady != "STARTED") { if ($General_Debug) { log::add("arduidom", "debug", "le démon n'est pas pret"); } return "DAEMON_NOT_OK"; } $arduid = 0; if ($_logicalId > 999) { $arduid = $_logicalId[0]; $_logicalId = intval(substr($_logicalId, 1)); } $cachekey = "arduidom::lastSetPin" . (intval($arduid) * 1000 + intval($_logicalId)); cache::set($cachekey, $_value, 0); if ($General_Debug) { log::add('arduidom', 'debug', ' cache::set(' . $cachekey . ',' . $_value . ')'); } $tcpmsg = ""; log::add('arduidom', 'debug', 'setPinValue(' . $_logicalId . ',' . $_value . ') for arduino ' . $arduid); $config = config::byKey('A' . $arduid . '_pin::' . $_logicalId, 'arduidom'); if ($General_Debug) { log::add('arduidom', 'debug', ' $config=' . $config); } if ($config == 'disable') { $tcpmsg = "SP" . sprintf("%02s", $_logicalId) . $_value; } if ($config == 'out') { $tcpmsg = "SP" . sprintf("%02s", $_logicalId) . $_value; } if ($config == 'pup' || $config == 'pdwn' || $config == 'blnk') { $tcpmsg = "SP" . sprintf("%02s", $_logicalId) . sprintf("%04s", $_value); } if ($config == 'oinv') { $tcpmsg = "SP" . sprintf("%02s", $_logicalId) . $_value; } if ($config == 'rout') { $tcpmsg = "SP" . sprintf("%02s", $_logicalId) . $_value; } if ($config == 'pout') { $tcpmsg = "SP" . sprintf("%02s", $_logicalId) . sprintf("%03s", $_value); } if ($config == 'custout') { $tcpmsg = "SP" . sprintf("%02s", $_logicalId) . sprintf("%010s", $_value); } $tcpcheck = arduidom::sendtoArduino($tcpmsg, $arduid); if ($tcpcheck != $tcpmsg . "_OK") { //if ($tcpcheck != "SP_OK") { if ($tcpcheck == $tcpmsg . "_BAD") { log::add('arduidom', 'error', "Erreur sur setPinValue(" . $arduid . ',' . $tcpmsg . ") - (Recu : " . $tcpcheck . ") Vérifiez votre configutation des pins !"); if (substr(jeedom::version(), 0, 1) == 2) { event::add('jeedom::alert', array('level' => 'error', 'message' => __("Erreur sur setPinValue(" . $arduid . ',' . $tcpmsg . ") - (Recu : " . $tcpcheck . ") Vérifiez votre configutation des pins !", __FILE__))); } } else { log::add('arduidom', 'error', "Erreur sur setPinValue(" . $arduid . ',' . $tcpmsg . ") - (Recu : " . $tcpcheck . ")"); if (substr(jeedom::version(), 0, 1) == 2) { event::add('jeedom::alert', array('level' => 'error', 'message' => __("Erreur sur setPinValue(" . $arduid . ',' . $tcpmsg . ") - (Recu : " . $tcpcheck . ")", __FILE__))); } } } $elapsed_time = getmicrotime(true) - $func_start_time; $elapsed_time = $elapsed_time * 1000; $elapsed_time = number_format($elapsed_time, 1, '.', '') . " ms"; if ($General_Debug) { log::add('arduidom', 'debug', 'setPinValue(' . $_logicalId . ',' . $_value . ') takes ' . $elapsed_time); } return $tcpcheck; }