Bonjour tout le monde, je suis GilDev, et voici la documentation de ma classe PHP qui vous permet de contrôler votre OpenKarotz facilement. Elle utilise l'API HTTP officielle d'OpenKarotz. Vous aurez besoin de PHP 5.4+ ainsi que la bibliothèque cURL pour utiliser cette classe.
J'ai essayé de documenter du mieux que j'ai pu, notamment en essayant de me rapprocher au maximum de la syntaxe des synopsis des fonctions de la documentation PHP officielle.
Par exemple, voici le synopsis de la fonction pulse()
:
$out = $karotz->pulse($primaryColor [, $secondaryColor = '000000' [, $speed = 700]]);
Cet exemple appelle la fonction pulse()
sur l'objet $karotz
. Le paramètre $primaryColor
est indispensable, cependant, les paramètres $secondaryColor
et $speed
sont optionnels (entre crochets) et ont par défaut les valeurs respectives '000000'
et 700
s'ils ne sont pas renseignés.
Si aucun exemple de retour n'est présent pour une fonction, c'est que la fonction retourne uniquement :
Array
(
[return] => 0
)
S'il y a une erreur dans un appel de fonction, l'index return
vaudra 1
et l'index msg
contiendra le message d'erreur.
Pour toute question, me contacter sur Twitter ou par mail.
Pour commencer, crééz un nouvel objet OpenKarotz comme ceci :
require 'OpenKarotz.class.php';
try {
$karotz = new OpenKarotz('x.x.x.x');
} catch (Exception $e) {
echo 'Erreur : ' . $e->getMessage();
die();
}
Remplacez "x.x.x.x" par l'adresse IP de votre OpenKarotz.
Toutes les fonctions de la classe retournent un tableau associatif. En cas d'erreur, l'index "retour" du tableau sera égal à 1 et l'index "msg" contiendra le message d'erreur.
S'il n'y a pas d'erreur, le tableau associatif sera le retour de l'API officielle (qui est au format JSON), décodé grâce à la fonction json_decode()
.
Vous retourne le status du lapin.
$out = $karotz->getStatus();
Array
(
[version] => 200
[ears_disabled] => 0
[sleep] => 0
[sleep_time] => 0
[led_color] => 00FF00
[led_pulse] => 1
[tts_cache_size] => 2
[usb_free_space] => -1
[karotz_free_space] => 147.3M
[eth_mac] => 00:00:00:00:00:00
[wlan_mac] => 00:0E:8E:2C:D4:98
[nb_tags] => 1
[nb_moods] => 305
[nb_sounds] => 14
[nb_stories] => 0
[karotz_percent_used_space] => 37
[usb_percent_used_space] =>
[data_dir] => /usr/openkarotz
)
Vous retourne l'espace utilisé sur la mémoire interne du lapin et la mémoire USB.
$out = $karotz->getStorage();
Array
(
[karotz_percent_used_space] => 37
[usb_percent_used_space] => -1
)
Vous retourne la liste de données spécifié.
$out = $karotz->getList($categorie);
La catégorie peut être "rfid", "rfidInfos" (contient une version lisible des valeurs type
et color
, voir l'exemple de retour, équivalent de /cgi-bin/rfid_infos_ext
de l'API officielle), sound", "voice", "moods", "snapshot", "stories" ou "radio".
Array
(
[tags] => Array
(
[0] => Array
(
[id] => D0021A053B4A21CB
[name] =>
[type] => KAROTZ
[type_name] => KEYRING
[color] => 4
[color_name] => YELLOW
)
)
[return] => 0
)
Réveille le Karotz.
$out = $karotz->wakeUp([$silent = false]);
Si $silent
vaut true
, le Karotz se réveillera silencieusement.
Array
(
[return] => 0
[silent] => 1
)
Endors le Karotz.
$out = $karotz->sleep();
Change la couleur de la led du Karotz.
$out = $karotz->led([$color = '000000']);
La couleur doit être spécifié sous forme d'une chaîne hexadécimale.
Array
(
[color] => FF0066
[secondary_color] => 000000
[pulse] => 0
[no_memory] => 0
[speed] =>
[return] => 0
)
Fait clignoter la led du Karotz.
$out = $karotz->pulse($primaryColor [, $secondaryColor = '000000' [, $speed = 700]]);
Les couleurs doivent être spécifiés sous forme d'une chaîne hexadécimale. La vitesse doit être comprise entre 0 et 2000.
Array
(
[color] => FF0066
[secondary_color] => 00FF00
[pulse] => 1
[no_memory] => 0
[speed] => 1000
[return] => 0
)
Active ou désactive le mouvement des oreilles du Karotz.
$out = $karotz->earsMode([$disable = false]);
Array
(
[return] => 0
[disabled] => 1
)
Modifie la position des oreilles du Karotz.
$out = $karotz->ears([$left = 0 [, $right = 0 [, $reset = false]]]);
Les positions $left ou $right vont de 0 à 16, vous pouvez cependant dépasser ou mettre une valeur négative si vous souhaitez faire plusieurs tours ou changer le sens de rotation par exemple.
Si $reset
vaut true
, les oreilles se mettront d'abord en position initiale avant de se positionner.
Array
(
[left] => 13
[right] => 18
[return] => 0
)
Réinitialise la position des oreilles.
$out = $karotz->earsReset();
Positionne les oreilles de manière aléatoire.
$out = $karotz->earsRandom([$reset = false]);
Si $reset
vaut true
, les oreilles se mettrong d'abord en position initiale avant de se positionner.
Lance l'enregistrement des tags RFID.
$out = $karotz->rfidStartRecord();
Attention : Cette fonction ne retourne actuellement rien !
Stoppe l'enregistrement des tags RFID.
$out = $karotz->rfidStopRecord();
Supprime un tag RFID enregistré.
$out = $karotz->rfidDelete($id);
Array
(
[return] => 0
[tag] => D0021A053B4A21CB
)
Supprime l'action associée au tag RFID.
$out = $karotz->rfidUnassign($id);
Array
(
[return] => 0
[tag] => D0021A053B4A21CB
)
Assigne le tag RFID à un appel d'URL.
$out = $karotz->rfidAssignUrl($id, $url, $name)
Récupère le cache TTS du Karotz.
$out = $karotz->getCache();
Array
(
[cache] => Array
(
[0] => Array
(
[id] => 4d509419511635e0fce55a929629fbbb
[text] => Bonjour tout le monde !
[voice] => claire
)
)
[return] => 0
)
Efface le cache TTS du Karotz.
$out = $karotz->clearCache();
Array
(
[return] => 0
[msg] => Cache cleared
)
Fait parler le Karotz.
$out = $karotz->say($text [, $voice='claire' [, nocache = false]]);
$voice peut être alice
(FR), claire
(FR), julie
(FR), margaux
(FR), antoine
(FR), bruno
(FR), louise
(CA), justine
(BE), heater
(US), ryan
(US), lucy
(UK), graham
(UK), andreas
(DE), julia
(DE), chiara
(IT) ou Vittorio
(IT).
Si $nocache
vaut true
, le fichier audio ne sera pas sauvegardé dans le cache.
Array
(
[id] => cfcb12bf12e8bccffe7e48c791e0b870
[played] => 1
[cache] => 0
[return] => 0
[voice] => alice
[mute] => 0
)
Efface toutes les photos enregistrées.
$out = $karotz->clearSnapshots();
Prends une photo depuis le Karotz.
$out = $karotz->takeSnapshot([$silent = true [, $ftp = false, $server, $user, $password, $remoteDirectory]]);
Si $silent
vaut false
, le lapin fera du bruit lors de la prise de photo.
Si $ftp
vaut true
, les paramètres $server
, $user
, $password
et $remoteDirectory
doivent absolument être renseignés. Ces champs ne vérifient pas la connexion ni la validité des données, faites donc bien attention aux valeurs que vous entrez !
$server
est l'adresse du serveur FTP, $user
l'identifiant, $password
le mot de passe et $remoteDirectory
le répertoire de sauvegarde de l'image.
Joue un fichier audio enregistré sur le Karotz (vous pouvez obtenir la liste des fichiers audio enregistrés via la commande getList('sound')
).
$out = play($id);
Note : $id
est une chaîne de caractère, à savoir le nom du fichier audio, et non un entier !
Joue un fichier audio ou un flux audio depuis internet.
$out = $karotz->playStream($url);
Met en pause le fichier ou flux audio en cours de lecture, ou continue le morceau s'il est déjà en pause.
$out = $karotz->pause();
Array
(
[return] => 0
[cmd] => pause
)
Note : Pour le moment, la valeur de l'index cmd
retourné sera toujours sur pause
, on ne peut pas savoir si le morceau est déjà en pause.
Quitte la lecture du fichier ou flux audio.
$out = $karotz->stop();
Array
(
[return] => 0
[cmd] => quit
)
Lance la Squeezebox.
$out = $karotz->squeezeboxStart();
Stoppe la Squeezebox.
$out = $karotz->squeezeboxStop();
Joue une humeur sur le Karotz.
$out = $karotz->playMood([$id = NULL]);
Si $id
n'est pas renseigné, une humeur aléatoire sera jouée.
Array
(
[moods] => 279
[return] => 0
)
Joue une heure sur le Karotz.
$out = $karotz->playClock([$hour = NULL]);
Si $hour
n'est pas renseigné, l'heure actuelle sera jouée.
Array
(
[return] => 0
[hour] => 20
)