Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/alice-smart-home.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2021-12-07 12:57:29 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2021-12-07 12:57:29 +0300
commit3d80960f94dcaae92d1aa768d702f0df2d28bee9 (patch)
tree9a1d792110b73f0edf19ffbf46290ca462e3c2d0
parentb01c027998979c01cc19e4685d0c7fa5c0c619e6 (diff)
Readme and examples
-rw-r--r--README.md7
-rw-r--r--devices/pc.py4
2 files changed, 6 insertions, 5 deletions
diff --git a/README.md b/README.md
index 8bf62f0..a4ba6ed 100644
--- a/README.md
+++ b/README.md
@@ -60,7 +60,7 @@
}
}
```
-* Создайте файл _имя-устройства_.py в директории __devices__ и напишите Python скрипт с двумя методами: *имя-устройства*_query(capability_type, instance) и *имя-устройства*_command(capability_type, instance, value, relative)
+* Создайте файл _имя-устройства_.py в директории __devices__ и напишите Python скрипт с двумя методами: *query(capability_type, instance) и *command(capability_type, instance, value, relative)
Пример скрипта для включения/выключения компьютера:
```python
@@ -70,7 +70,8 @@ def pc_query(capability_type, instance):
if capability_type == "devices.capabilities.on_off":
p = subprocess.run(["ping", "-c", "1", "192.168.0.2"], stdout=subprocess.PIPE)
state = p.returncode == 0
- return state
+ # Возвращаем состояние и опционально instance
+ return state, "on"
def pc_action(capability_type, instance, value, relative):
if capability_type == "devices.capabilities.on_off":
@@ -80,7 +81,7 @@ def pc_action(capability_type, instance, value, relative):
subprocess.run(["sh", "-c", "echo shutdown -h | ssh clust@192.168.0.2"])
return "DONE"
```
-Первая функция должна возвращать текущее состояние устройства, а вторая используется для управления им. В параметрах __capability_type__ и __instance__ передаётся, чем мы управляем, а в параметрах __value__ и __relative__ само значение. Подробности опять же смотрите в документации Яндекса.
+Первая функция должна возвращать текущее состояние устройства и опционально __instance__ (если он не указан ни в запросе, ни в описании устройства), а вторая используется для управления им. В параметрах __capability_type__ и __instance__ передаётся, чем мы управляем, а в параметрах __value__ и __relative__ само значение. Подробности опять же смотрите в документации Яндекса.
* Откройте вкладку "Тестирование" в панели управления Яндекс диалогами и попробуйте связать аккаунты, используя ваши имя пользователя и пароль
* Проверяйте, должно работать как в панели для тестирования, так и на всех устройствах привязанных к вашему аккаунту
diff --git a/devices/pc.py b/devices/pc.py
index 05640b8..7d711a2 100644
--- a/devices/pc.py
+++ b/devices/pc.py
@@ -3,13 +3,13 @@ import subprocess
logger = logging.getLogger()
-def pc_query(capability_type, instance):
+def query(capability_type, instance):
if capability_type == "devices.capabilities.on_off":
p = subprocess.run(["ping", "-c", "1", "192.168.0.2"], stdout=subprocess.PIPE)
state = p.returncode == 0
return state, "on" # State and instance
-def pc_action(capability_type, instance, value, relative):
+def action(capability_type, instance, value, relative):
if capability_type == "devices.capabilities.on_off":
if value:
logger.debug("sending WoL to PC")