Petite idée qui m'a traversé l'esprit, mes tablettes "monitoring" sont branché sur une prise on/off controlable par domoticz. L'idée est de charger la tablette quand elle atteint un seuil que je definit, puis de mettre la prise a off lorsque la batterie est chargée, de maniere a economiser en energie.
Avant de pouvoir utiliser ce script, vous devrez installer "adb" et passer votre tablette en mode developpeur(les premiers liens de googles montrent comment faire l'un et l'autre
normalement quand vous aurez fait ca vous devriez avoir en lancant la commande adb devices, votre tablette qui est reconnue.
Si c'est le cas, voici le script que j'ai créé et que je vous partage. En gros il sert a aller chercher le niveau de charge de la batterie de votre tablette/ mobile/quesaisje sous android, en %. Puis le stock dans une variable IDX de domoticz. De la libre a vous de creer une regle du genre si "variable tablette<10" alors active le chargeur, sinon si variable tablette >90 alors desactive" par exemple
voici le code(meme si j'en suis l'auteur c'est plus du copier coller de bout de code d'autres scripts pour parvenir a mes fins)
Code : Tout sélectionner
<?php
$IDX = '241'; // votre dummy text IDX de domoticz
$IPdomoticz = '192.168.1.10:8080'; // votre ip port domoticz
$rChariot = "\n";
exec( 'adb shell dumpsys battery >batteriesinfos.txt', $output, $return_val );
$searchthis = "level";
$matches = array();
$handle = @fopen("batteriesinfos.txt", "r");
if ($handle)
{
while (!feof($handle))
{
$buffer = fgets($handle);
if(strpos($buffer, $searchthis) !== FALSE)
$matches[] = $buffer;
}
fclose($handle);
}
$batterie = substr($matches[0],9,11);
//show results:
print_r($batterie);
$json_result = maj_periph($IDX,$batterie); //Mise à jour Domoticz
//vire les accents
function supprimer_accents($str, $encoding='ISO-8859-1')
{
// transformer les caractères accentués en entités HTML
$str = htmlentities($str, ENT_NOQUOTES, $encoding);
// remplacer les entités HTML pour avoir juste le premier caractères non accentués
// Exemple : "&ecute;" => "e", "&Ecute;" => "E", "Ã " => "a" ...
$str = preg_replace('#&([A-za-z])(?:acute|grave|cedil|circ|orn|ring|slash|th|tilde|uml);#', '\1', $str);
// Remplacer les ligatures tel que : Œ, Æ ...
// Exemple "Å“" => "oe"
$str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str);
// Supprimer tout le reste
$str = preg_replace('#&[^;]+;#', '', $str);
// Supprimer les espaces
$str = preg_replace('/\s/', '', $str);
return $str;
}
//met a jour le peripherique
function maj_periph( $periphID, $val )
{
global $IPdomoticz;
global $rChariot;
// Remplacement des blancs par le code hexa
$val = str_replace(' ', '%20', $val);
// Remplacement des points virgules par le blanc
$val = str_replace(';','%20', $val);
// Remplacement des accents
$val = supprimer_accents($val);
$val = utf8_encode($val);
//Contruction de l'url Local
$url = "http://".$IPdomoticz."/json.htm?type=command";
$url .= "¶m=udevice";
$url .= "&idx=$periphID";
$url .= "&vnalue=0";
$url .= "&svalue=$val";
echo 'Domoticz Mis a jour - Idx : '.$periphID.' - Valeur donnee :'.$val.$rChariot;
// Mis à jour du périphérique
$result = @file_get_contents($url);
$pos = strpos($result, '"OK"');
if ($pos === false)
{
echo $rChariot."Une erreur est survenue lors de la mise à jour [".$result."]".$rChariot;//}
}
return $result;
}
?>