Цитата Сообщение от Нияз070 Посмотреть сообщение
Приветствую
А как связать Алису и owencloud?!
ну собственно как и в названии темы, почитать документацию https://yandex.ru/dev/dialogs/ и https://cloud.yandex.ru/docs/functions/
в общих чертах нужна учетная запись на яндексе, знать API owencloud и терпение, пока навык будет модерироваться
мой код выглядит так
Код:
from random import randint
import requests
import json
import os

class ApiClient:
    def __init__(self, base_address):
        self.base_address = base_address

    def post(self, path="/", params=None, data=None, json=None, headers=None):
        url = f"{self.base_address}{path}"
        return requests.post(url=url, params=params, data=data, json=json, headers=headers)

def ol_api():
    return ApiClient(base_address="https://api.owencloud.ru/")

def last_data(ol_api, token, unit):
    headers = { 'Authorization' : 'Bearer ' + token }
    data = "{\"ids\":["+unit+"]}" #
    response = ol_api.post("v1/parameters/last-data",headers=headers,data=data)
    unit = response.json()
    refer = unit[0]["values"]
    return refer[0]["v"]

def get_response(name="Чего изволите?\nМожно посмотреть значение температуры или уставки"):
    return {
        "version": "1.0",
        "response": {
            'text': name
        },
        "end_session": "false"
    }

dict_ = {1:'Запрос не понятен',2:'Ответа нет',3:'Сформулируйте вопрос, помощь наше всё'}

def handler(event, context):
    response = ''
    if 'request' in event and event['request']['command'] == '':
        response = get_response()
    elif 'request' in event and 'nlu' in event['request']:
        name = dict_[randint(1,3)]
        for unit in event['request']['nlu']['tokens']:
            unit = unit.lower()
            if 'температур' in unit:
                name = "Температура: "+last_data(ol_api(), os.environ.get('SEC_TOK'), '4337438')
            elif 'уставк' in unit:
                name = "Уставка: "+last_data(ol_api(), os.environ.get('SEC_TOK'), '4337428')
            elif 'помощь' in unit:
                name = "Запрос может звучать как: покажи температу или покажи уставку"
            elif 'умеешь' in unit:
                name = "Цель навыка обеспечить информацией о текущем состоянии объекта ГВС. Отобразить по запросу текущую температуру или уставку температуры, которой надо придерживаться"
        response = get_response(name)
    
    return response
сам навык после трех дней модерации здесь

os.environ.get('SEC_TOK') это токен из овеновского облака, сохраненный в переменной окружения среды выполнения навыка
это самый простой вариант, есть и более предпочтительные