ayrel/karotz

此包最新版本(dev-master)没有可用的许可证信息。

karotz api

维护者

详细信息

github.com/Ayrel/Karotz

源代码

dev-master 2018-06-15 15:30 UTC

This package is auto-updated.

Last update: 2024-09-19 23:40:32 UTC


README

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.

WTFPL

Sommaire des fonctions

创建新的 OpenKarotz 对象

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().

Fonctions

信息

getStatus()

您将获得兔子的状态。

$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
)

getStorage()

您将返回兔子内部存储和USB存储上使用的空间。

$out = $karotz->getStorage();
返回示例
Array
(
	[karotz_percent_used_space] => 37
	[usb_percent_used_space] => -1
)

getList()

您将返回指定的数据列表。

$out = $karotz->getList($categorie);

类别可以是 "rfid", "rfidInfos"(包含可读的 typecolor 值,见 返回示例,相当于 API 官方的 /cgi-bin/rfid_infos_ext),"sound","voice","moods","snapshot","stories" 或 "radio"。

返回示例
Array
(
	[tags] => Array
	(
		[0] => Array
		(
			[id] => D0021A053B4A21CB
			[name] => 
			[type] => KAROTZ
			[type_name] => KEYRING
			[color] => 4
			[color_name] => YELLOW
		)
	)
	[return] => 0
)

状态

wakeUp()

唤醒 Karotz。

$out = $karotz->wakeUp([$silent = false]);

如果 $silenttrue,则 Karotz 将静音唤醒。

返回示例
Array
(
	[return] => 0
	[silent] => 1
)

sleep()

让 Karotz 睡觉。

$out = $karotz->sleep();

LED灯

led()

更改 Karotz LED 灯的颜色。

$out = $karotz->led([$color = '000000']);

颜色必须指定为十六进制字符串。

返回示例
Array
(
	[color] => FF0066
	[secondary_color] => 000000
	[pulse] => 0
	[no_memory] => 0
	[speed] => 
	[return] => 0
)

pulse()

使Karotz的LED闪烁。

$out = $karotz->pulse($primaryColor [, $secondaryColor = '000000' [, $speed = 700]]);

颜色必须指定为十六进制字符串。速度应在0到2000之间。

返回示例
Array
(
	[color] => FF0066
	[secondary_color] => 00FF00
	[pulse] => 1
	[no_memory] => 0
	[speed] => 1000
	[return] => 0
)

耳朵

earsMode()

激活或禁用Karotz耳朵的运动。

$out = $karotz->earsMode([$disable = false]);
返回示例
Array
(
	[return] => 0
	[disabled] => 1
)

ears()

更改Karotz耳朵的位置。

$out = $karotz->ears([$left = 0 [, $right = 0 [, $reset = false]]]);

left或right的位置从0到16,但您可以超出此范围或使用负值,如果需要多圈转动或改变旋转方向等。

如果$reset值为true,耳朵将首先移动到初始位置,然后再定位。

返回示例
Array
(
	[left] => 13
	[right] => 18
	[return] => 0
)

earsReset()

重置耳朵的位置。

$out = $karotz->earsReset();

earsRandom()

随机定位耳朵。

$out = $karotz->earsRandom([$reset = false]);

如果$reset值为true,耳朵将首先移动到初始位置,然后再定位。

RFID

rfidStartRecord()

启动RFID标签的记录。

$out = $karotz->rfidStartRecord();

注意:此功能当前不返回任何内容!

rfidStopRecord()

停止RFID标签的记录。

$out = $karotz->rfidStopRecord();

rfidDelete()

删除已记录的RFID标签。

$out = $karotz->rfidDelete($id);
返回示例
Array
(
	[return] => 0
	[tag] => D0021A053B4A21CB
)

rfidUnassign()

删除与RFID标签关联的动作。

$out = $karotz->rfidUnassign($id);
返回示例
Array
(
	[return] => 0
	[tag] => D0021A053B4A21CB
)

rfidAssignURL()

将RFID标签分配给URL调用。

$out = $karotz->rfidAssignUrl($id, $url, $name)

TTS(文本到语音=语音合成)

getCache()

获取Karotz的TTS缓存。

$out = $karotz->getCache();
返回示例
Array
(
	[cache] => Array
	(
		[0] => Array
		(
			[id] => 4d509419511635e0fce55a929629fbbb
			[text] =>  Bonjour tout le monde ! 
			[voice] => claire
		)
	)
	[return] => 0
)

clearCache()

清除Karotz的TTS缓存。

$out = $karotz->clearCache();
返回示例
Array
(
	[return] => 0
	[msg] => Cache cleared
)

say()

使Karotz说话。

$out = $karotz->say($text [, $voice='claire' [, nocache = false]]);

$voice可以是alice(法)、claire(法)、julie(法)、margaux(法)、antoine(法)、bruno(法)、louise(加)、justine(比)、heater(美)、ryan(美)、lucy(英)、graham(英)、andreas(德)、julia(德)、chiara(意)或Vittorio(意)。

如果$nocache值为true,音频文件将不会保存到缓存中。

返回示例
Array
(
	[id] => cfcb12bf12e8bccffe7e48c791e0b870
	[played] => 1
	[cache] => 0
	[return] => 0
	[voice] => alice
	[mute] => 0
)

照片

clearSnapshots()

删除所有已记录的照片。

$out = $karotz->clearSnapshots();

takeSnapshot()

从Karotz拍摄照片。

$out = $karotz->takeSnapshot([$silent = true [, $ftp = false, $server, $user, $password, $remoteDirectory]]);

如果$silent值为false,兔子在拍照时会发出声音。

如果$ftp值为true,则必须填写$server$user$password$remoteDirectory参数。这些字段不验证连接或数据的有效性,因此请务必注意您输入的值!

$server是FTP服务器的地址,$user是用户名,$password是密码,$remoteDirectory是图像的保存目录。

声音

play()

播放Karotz上记录的音频文件(您可以通过getList('sound')命令获取已记录音频文件的列表)。

$out = play($id);

注意$id是一个字符串,即音频文件名,而不是一个整数!

playStream()

从互联网播放音频文件或流。

$out = $karotz->playStream($url);

pause()

暂停正在播放的文件或流,或如果已暂停,则继续播放。

$out = $karotz->pause();
返回示例
Array
(
	[return] => 0
	[cmd] => pause
)

注意:目前,返回的cmd索引值始终为pause,无法知道曲目是否已暂停。

stop()

退出音频文件或流的播放。

$out = $karotz->stop();
返回示例
Array
(
	[return] => 0
	[cmd] => quit
)

squeezeboxStart()

启动Squeezebox。

$out = $karotz->squeezeboxStart();

squeezeboxStop()

停止Squeezebox。

$out = $karotz->squeezeboxStop();

应用

playMood()

在Karotz上播放心情。

$out = $karotz->playMood([$id = NULL]);

如果未指定$id,则播放随机心情。

返回示例
Array
(
	[moods] => 279
	[return] => 0
)

playClock()

在Karotz上播放时间。

$out = $karotz->playClock([$hour = NULL]);

如果未指定$hour,则播放当前时间。

返回示例
Array
(
	[return] => 0
	[hour] => 20
)