Страница 59 из 69

Re: [Модуль] Терминалы2 (Terminals2)

Добавлено: Чт июл 23, 2020 2:47 pm
Chainik
Работоспособность еще от типа кавычек может зависеть
https://mjdm.ru/forum/viewtopic.php?f=5 ... &start=114

Re: [Модуль] Терминалы2 (Terminals2)

Добавлено: Чт июл 23, 2020 4:13 pm
homester
Поднял сервер под Win для проверки, функция playMedia() не работает, три бубна сменил, бесполезно. Буду разбираться. Да и с моей проблемой наверно не в этой ветке.

Re: [Модуль] Терминалы2 (Terminals2)

Добавлено: Чт июл 23, 2020 4:27 pm
tarasfrompir
tarasfrompir писал(а):
Чт июл 23, 2020 2:08 pm
yden писал(а):
Чт июл 23, 2020 1:20 pm
Сенк.
Пробую:

Код: Выделить всё

$path = "/var/www/cms/sounds/03731.mp3";
playMedia($path, $host = 'googleHomeMini', $safe_play = FALSE)
Получаю: гуглоколонка тиликнула и тишина:

Код: Выделить всё

http://10.12.10.10/admin.php?pd=cGFuZWw6e2FjdGlvbj1zY3JpcHRzfQ%3D%3Dpz_&md=scripts&inst=adm&
Maximum execution time of 90 seconds exceeded

#0 /var/www/lib/errors.class.php(116): custom_error->__construct('Maximum executi...')
#1 [internal function]: phpShutDownFunction()
#2 {main}
МДМ стоит на ubuntu server, файл по указанному пути имеется.
Хреново пробуеш - а так ?
$path = "/var/www/cms/sounds/03731.mp3";
playMedia($path, 'googleHomeMini');
ВОТ ТАК ПРОБОВАЛ??? только ж путь свой к файлу и название терминала соответственно

Re: [Модуль] Терминалы2 (Terminals2)

Добавлено: Чт июл 23, 2020 4:37 pm
homester
Если ко мне вопрос, то нет вариантов, которые я не испробовал.

Re: [Модуль] Терминалы2 (Terminals2)

Добавлено: Чт июл 23, 2020 4:38 pm
tarasfrompir
homester писал(а):
Чт июл 23, 2020 4:37 pm
Если ко мне вопрос, то нет вариантов, которые я не испробовал.
ну странно - ...

Re: [Модуль] Терминалы2 (Terminals2)

Добавлено: Чт июл 23, 2020 5:38 pm
yden
tarasfrompir писал(а):
Чт июл 23, 2020 2:08 pm
yden писал(а):
Чт июл 23, 2020 1:20 pm
Сенк.
Пробую:

Код: Выделить всё

$path = "/var/www/cms/sounds/03731.mp3";
playMedia($path, $host = 'googleHomeMini', $safe_play = FALSE)
Получаю: гуглоколонка тиликнула и тишина:

Код: Выделить всё

http://10.12.10.10/admin.php?pd=cGFuZWw6e2FjdGlvbj1zY3JpcHRzfQ%3D%3Dpz_&md=scripts&inst=adm&
Maximum execution time of 90 seconds exceeded

#0 /var/www/lib/errors.class.php(116): custom_error->__construct('Maximum executi...')
#1 [internal function]: phpShutDownFunction()
#2 {main}
МДМ стоит на ubuntu server, файл по указанному пути имеется.
Хреново пробуеш - а так ?
$path = "/var/www/cms/sounds/03731.mp3";
playMedia($path, 'googleHomeMini');
И так та же ошибка.

Re: [Модуль] Терминалы2 (Terminals2)

Добавлено: Чт июл 23, 2020 10:42 pm
tarasfrompir
Так по поводу тех кто ходил на мастер а потом на альфу - а потом опять обратно , а потом вообще хз куда...
НО Если у вас есть ошибка связанная с функцией евентс... чтото типа каннот редекларе евентс ....
ТО при удалении терминалов2 ОБЯЗАТЕЛЬНО УДАЛИТЬ ЕЩЕ И ФАЙЛ ЕВЕНТС.КЛАСС.ПХП.....
Єто для тех кто на мастере...
И вообще придерживайтесь рекомендаций - ставьте єтот модуль только на АЛЬФУ... МДМ....

Re: [Модуль] Терминалы2 (Terminals2)

Добавлено: Вс авг 02, 2020 6:46 am
Slavik398
Тарас приветствую.
У яндекса имеется ограничение в 100 символов, но вчера Xor выложил обход этой проблемы.
https://connect.smartliving.ru/profile/ ... minal.html
У себя поправил yandexcloud_tts.addon.php, проверил, работает.
СпойлерПоказать

Код: Выделить всё

<?php

class yandexcloud_tts extends tts_addon
{
    
    function __construct($terminal)
    {
        
        $this->title       = "Yandex smart device cloud";
        $this->description = '<b>Описание:</b>&nbsp;Для работы использует &nbsp;<a href="https://mjdm.ru/forum/viewtopic.php?f=5&t=6922">модуль Яндекс девайс</a>. Без этого модуля ничего работать не будет.<br>';
        //$this->description .= '<b>Проверка доступности:</b>&nbsp;service_ping (пингование проводится проверкой состояния сервиса).<br>';
        $this->description .= '<b>Поддерживаемые возможности:</b>&nbsp;say(), sayTo(), sayReply().';
        
        $this->terminal = $terminal;
        if (!$this->terminal['HOST']) return false;
        
        unsubscribeFromEvent('yadevices', 'SAY');
        unsubscribeFromEvent('yadevices', 'SAYTO');
        unsubscribeFromEvent('yadevices', 'ASK');
        unsubscribeFromEvent('yadevices', 'SAYREPLY');
    }
    
    // Say
    function say_message($message, $terminal) {
        if (file_exists(DIR_MODULES . 'yadevices/yadevices.class.php')) {
            include(DIR_MODULES . 'yadevices/yadevices.class.php');
            $yandex_cloud = new yadevices();
            $station = SQLSelectOne("SELECT * FROM yastations WHERE TTS=2 AND IOT_ID!='' AND IP='".$this->terminal['HOST']."'");
			
    if($message['MESSAGE'] == '') return;
    if(strlen($message['MESSAGE'])>100){ //если фраза > 100 букв, поделим на предложения
      $phs = explode('.',$message['MESSAGE']);
      foreach($phs as $ph){ //переберем предложения
        if(strlen($ph)<100){
           $yandex_cloud->sendCloudTTS($station['IOT_ID'],$ph);
        }else{
           $ph = mb_strimwidth($ph, 0,99, "..."); //не получилось( обрежем
		   $yandex_cloud->sendCloudTTS($station['IOT_ID'],$ph); 
        }
     //  sleep(2);// на всякий случай
      }
    }else{ //скажем, как есть
      $yandex_cloud->sendCloudTTS($station['IOT_ID'],$message['MESSAGE']);
	     }
        }
        $this->success = TRUE;
        usleep(500000);
        return $this->success;
    
 }
}

?>

Я не уверен что тут все правильно, так что лучше перепроверить.
yandex_tts.addon.php не правил т.к. не пользуюсь, но думаю тоже будет актуально.
Добавь пожалуйста в терминалы2.
И конечно спасибо Xor за решение проблемы и то что делится со всеми))

Re: [Модуль] Терминалы2 (Terminals2)

Добавлено: Вс авг 02, 2020 8:42 am
tarasfrompir
Slavik398 писал(а):
Вс авг 02, 2020 6:46 am
Тарас приветствую.
У яндекса имеется ограничение в 100 символов, но вчера Xor выложил обход этой проблемы.
https://connect.smartliving.ru/profile/ ... minal.html
У себя поправил yandexcloud_tts.addon.php, проверил, работает.
СпойлерПоказать

Код: Выделить всё

<?php

class yandexcloud_tts extends tts_addon
{
    
    function __construct($terminal)
    {
        
        $this->title       = "Yandex smart device cloud";
        $this->description = '<b>Описание:</b>&nbsp;Для работы использует &nbsp;<a href="https://mjdm.ru/forum/viewtopic.php?f=5&t=6922">модуль Яндекс девайс</a>. Без этого модуля ничего работать не будет.<br>';
        //$this->description .= '<b>Проверка доступности:</b>&nbsp;service_ping (пингование проводится проверкой состояния сервиса).<br>';
        $this->description .= '<b>Поддерживаемые возможности:</b>&nbsp;say(), sayTo(), sayReply().';
        
        $this->terminal = $terminal;
        if (!$this->terminal['HOST']) return false;
        
        unsubscribeFromEvent('yadevices', 'SAY');
        unsubscribeFromEvent('yadevices', 'SAYTO');
        unsubscribeFromEvent('yadevices', 'ASK');
        unsubscribeFromEvent('yadevices', 'SAYREPLY');
    }
    
    // Say
    function say_message($message, $terminal) {
        if (file_exists(DIR_MODULES . 'yadevices/yadevices.class.php')) {
            include(DIR_MODULES . 'yadevices/yadevices.class.php');
            $yandex_cloud = new yadevices();
            $station = SQLSelectOne("SELECT * FROM yastations WHERE TTS=2 AND IOT_ID!='' AND IP='".$this->terminal['HOST']."'");
			
    if($message['MESSAGE'] == '') return;
    if(strlen($message['MESSAGE'])>100){ //если фраза > 100 букв, поделим на предложения
      $phs = explode('.',$message['MESSAGE']);
      foreach($phs as $ph){ //переберем предложения
        if(strlen($ph)<100){
           $yandex_cloud->sendCloudTTS($station['IOT_ID'],$ph);
        }else{
           $ph = mb_strimwidth($ph, 0,99, "..."); //не получилось( обрежем
		   $yandex_cloud->sendCloudTTS($station['IOT_ID'],$ph); 
        }
     //  sleep(2);// на всякий случай
      }
    }else{ //скажем, как есть
      $yandex_cloud->sendCloudTTS($station['IOT_ID'],$message['MESSAGE']);
	     }
        }
        $this->success = TRUE;
        usleep(500000);
        return $this->success;
    
 }
}

?>

Я не уверен что тут все правильно, так что лучше перепроверить.
yandex_tts.addon.php не правил т.к. не пользуюсь, но думаю тоже будет актуально.
Добавь пожалуйста в терминалы2.
И конечно спасибо Xor за решение проблемы и то что делится со всеми))
ну это вообщето проблема модуля уадевайс - но как заплатку - сделать можно

Re: [Модуль] Терминалы2 (Terminals2)

Добавлено: Вт авг 11, 2020 1:11 pm
Alexander Znamensky
tarasfrompir писал(а):
Чт июл 23, 2020 2:08 pm
yden писал(а):
Чт июл 23, 2020 1:20 pm
Сенк.
Пробую:

Код: Выделить всё

$path = "/var/www/cms/sounds/03731.mp3";
playMedia($path, $host = 'googleHomeMini', $safe_play = FALSE)
Получаю: гуглоколонка тиликнула и тишина:

Код: Выделить всё

http://10.12.10.10/admin.php?pd=cGFuZWw6e2FjdGlvbj1zY3JpcHRzfQ%3D%3Dpz_&md=scripts&inst=adm&
Maximum execution time of 90 seconds exceeded

#0 /var/www/lib/errors.class.php(116): custom_error->__construct('Maximum executi...')
#1 [internal function]: phpShutDownFunction()
#2 {main}
МДМ стоит на ubuntu server, файл по указанному пути имеется.
Хреново пробуеш - а так ?
$path = "/var/www/cms/sounds/03731.mp3";
playMedia($path, 'googleHomeMini');
Всем привет!

У меня тоже в какой-то момент Google Mini колонка перестала воспроизводить mp3 - файлы из МЖДМ.
Попробовал, как предложил Тарас, playSound('2cellos-despacito.mp3', 'Googlemini'); - отправился файл на воспроизведение на терминал MAIN.
UPD: а так не правильно!
Правильно так: playSound('http://172.16.1.252/cms/sounds/2cellos-despacito.mp3', 'Googlemini');
*** естественно IP - указываем свой.
Так все работает.

Как всегда, спасибо кому? - Тарасу )))