Xor

 
<<< Назад

Irbis как терминал

Захотелось использовать штатную функцию sayto() для отправки сообщения на колонку

У меня есть колонка Ирбис с облачным управлением.
Сейчас предлагается использовать Я.колонку либо для проговаривания сообщений с помощью уровня важности minMsgLevel, либо используя функцию callAPI('/api/module/yadevices','GET',array('station'=>1,'say'=>'раз-два-три'));
Заметил, что моя колонка может проговорить фразу, содержащую не более 100 символов.
Для произнесения длинных сообщений родилась функция:

//Скажем через Ирбис с учётом ограничения в 100 символов
function say_irbis($phrase)
{
    if($phrase == '') return 0;
    if(mb_strlen($phrase,'UTF-8')>100){ //если фраза > 100 букв, поделим на предложения
      $phs = explode('.',$phrase);
      foreach($phs as $ph){ //переберем предложения
        if(mb_strlen($ph,'UTF-8')<100){
           callAPI('/api/module/yadevices','GET',array('station'=>1,'say'=>$ph));
        }else{
           $ph = mb_strimwidth($ph, 0,99, "..."); //не получилось( обрежем
           callAPI('/api/module/yadevices','GET',array('station'=>1,'say'=>$ph));
        }
       sleep(2);// на всякий случай
      }
    }else{ //скажем, как есть
      callAPI('/api/module/yadevices','GET',array('station'=>1,'say'=>$phrase));
    } 
return 1;
}

Теперь прогноз погоды произносится нормально.
А потом захотелось использовать колонку как терминал, чтобы можно было использовать стандартную функцию sayto("hello",3,"Irbis")
Для этого сделал файлик \modules\terminals\tts\irbisnotifier.addon.php

<?php

class irbisnotifier extends tts_addon {

    function __construct($terminal) {
        $this->title="Yandex Irbis";
        parent::__construct($terminal);
    }

    function say($phrase, $level = 0)
    {
      say_irbis($phrase);
      return true;
    }

}

Потом создал терминал Irbis с настройками TTC irbisnotifier
pic1

проверяем
sayto("приветики",5,"Irbis");

Спасибо за внимание
ps.
Так как у меня только одна колонка(, я прошил хардкодом ее номер в функции ('station'=>1)

Обсуждение (9) (14)

Смотрите так же:
12.02.2024 Китайская панель в подрозетник с экраном 480*480
29.10.2023 MQTT в МДМ - способ обработки топика через метод
03.04.2023 Todoer: обмен данными с Яндекс календарём
31.03.2023 Todoer: календарь на год
30.03.2023 Todoer: анонс + программное создание задачи
08.05.2022 Глобальный поиск - добавление своих сущностей. Upd Внедрено
05.01.2022 Яндекс Лампочка в Yandex Devices - добавление сцен
18.04.2021 Переезд на мастер спустя год
24.03.2021 Ещё о старте/остановке МДМ в Винде
18.02.2021 Модуль Todoer
06.01.2021 Для виндузятников - перенос бд на рам-диск
22.11.2020 Календарь-планировщик
18.05.2020 Китайская камера rtsp + vlc как перекодировщик для html
12.05.2020 Опыт интеграции МДМ с Я.Алисой ещё одним способом - без белого адреса, москита, ПУ.(дополнено)
07.05.2020 Поправим формат даты в Панели управления
11.04.2020 Баловство с шаблонами
26.03.2020 Простые правила - вариант модуля. ч. 2
25.03.2020 Простые правила - вариант модуля
20.12.2019 расширение средств работы с events updated
20.11.2019 По следам наших выступлений - сколько мы наэкономили?
04.11.2019 Группа как объект - экономим на коде - 2
26.10.2019 Прикручиваем Grafana к Мажордому
11.10.2019 Группа как объект - экономим на коде
25.09.2019 Если у вас нет телеги...
11.09.2019 Датчик присутствия из ип камеры
30.07.2019 Win-платформа-замена ffmpeg для получения скриншотов из rstp - потока
24.06.2019 Форматированный отчет в телеграм - имитация таблицы
30.04.2019 Используем зомбо-ящик в Мажордомо
24.03.2019 О среднем в Мажордомо
31.10.2018 Об "обделённых" пользователях Win-систем -- с точки зрения кэширования winTTS сообщений
16.09.2018 Перезагрузка Мажордомо в Win-системах

Домодедово, Россия

На форуме: xor