SmartLiving.ru

Обсуждение проекта
 
Текущее время: Сб апр 29, 2017 2:28 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 100 ]  На страницу 1, 2, 3, 4, 5 ... 10  След.
Автор Сообщение
СообщениеДобавлено: Сб ноя 15, 2014 2:56 pm 
Не в сети

Зарегистрирован: Ср дек 19, 2012 10:35 am
Сообщения: 130
Откуда: Ukraine/Kiev
Благодарил (а): 4 раз.
Поблагодарили: 12 раз.
Многие из нас видоизменяют систему под свое видение. Большинство ограничиваются визуальными изменениями. Но есть моменты где изменить визуальное отображение так как хочется невозможно без редактирования кода системы. К сожалению любые изменения будут потеряны при новом обновлении системы. К счастью Сергей позаботился о таких как мы и предложил некоторые механизмы, которые позволяют сохранить изменения. Естественно изменения должны быть сделаны с учетом этих механизмов. Соответственно можно изменять как угодно шаблоны html хранящиеся в папке trmplates, но для того что бы изменения не были потеряны при обновлениях, нужно помещать отредактированные шаблоны в папку templates_alt. Со скриптами .php так не выйдет, поэтому менять какие либо функции нельзя, зато можно создавать свои функции, помещая свои файлы .php в папку lib. Все php файлы в этой папке автоматически подключаются к системе и находящийся в них код функций может быть вызван в любом месте системы.
Теперь от теории к практике :)
Однажды мне надоел внешний вид окна с логом сообщений Алисы. Он был грустно-черно-белый. В шаблонах html изменить можно было только глобально цвет всех сообщений. Это же не интересно правда? К тому же все сообщения были только от Алисы, либо от пользователя который дает команды Алисе. Поскольку в моей системе таких пользователей только один (Это я),мне пришла в голову идея разделить сообщения от разных подсистем умного дома. Ну что бы не все сообщения шли от Алисы, а от системы вентиляции свои сообщения, от системы управляемых электросистем свои и т.д. Покопавшись в функции say() я заметил что в ней принудительно прописывается ID пользователя Алисы - именно поэтому все сообщения в логе отображаются от нее. Поскольку функцию менять нельзя, потому что все равно при обновлении системы изменения потеряются, я создал свою функцию saydym() которая в точности повторяет стандартную say(), но ID пользователя в ней можно задать какой угодно. Создав пользователей с именами подсистем умного дома я получил возможность персонифицировать сообщения. Теперь когда произносится время каждый час, в логе оно отображено от имени пользователя "Часы", а когда пропадает связь с глобальной сетью - от пользователя "LAN". Таких пользователей может быть сколько угодно. Алиса тоже никуда не делась - ее ID как и раньше 0! Есть в функции saydym() еще один приятный бонус. Вам не надоел однообразный "бим-бом" при сообщениях? Мне надоел. Покопавшись в сети я "нарыл" еще несколько прикольных звучков. Можно конечно переименовать свой файл в dingdong.mp3 и он будет проигрываться вместо стандартного, но я решил получить выбор, поэтому в моей функции можно задавать один из четырех звуковых файлов. Кроме того существуют моменты когда нужно заставить систему гарантировано не проигрывать этот файл, а просто произнести сообщенние - такая возможность тоже есть.
Теперь о формате вызова функции - все осталось как в стандартном say(), но функция получила два дополнительных аргумента на входе. Синтаксис следующий: saydym('текст сообщения',аргумент1,аргумент2,аргумент3). Теперь подробнее:
"Текст сообщения" - ну тут пояснения не нужны
Аргумент1 - как и в родной функции это уровень важности сообщения
Аргумент2 - выбор файла "бим-бом" где:
0 - файл "бим-бом" принудительно не проигрывается
1 - стандартный файл dingdong.mp3
2 - файл tone1.mp3
3 - файл tone2.mp3
4 - файл tone3.mp3
Свои файлы нужно положить в папку /sounds и дать им соответствующие названия. Естественно звуковые файлы должны иметь сжатие mp3.
Аргумент3 - ID пользователя системы. Этот ID можно увидеть после установки моего модуля в систему, зайдя в панель управления, вкладка "Программы", пункт "ChatBox by DYM". (Про модуль ниже)

Ну вот - лог стал информативнее, но все еще довольно грустный. Решил я его раскрасить. Для этого пришлось написать свой модуль повторяющий функции стандартного shoutbox, плюс выполняющий мои задумки. Такой модуль был создан. Скрин его работы:
Изображение
Теперь при обновлениях системы, мой модуль не затирается и продолжает работать.
О модуле:
Модуль может отображать имена пользователей, либо их аватары. Аватары добавляются в стандартном редакторе пользователей в панели управления. Если аватар не установлен модуль отображает Имя пользователя, иначе аватар. Цвет строки сообщения от каждого конкретного пользователя задается тоже в редакторе пользователей в строке "Хост" (Не по назначению конечно поле использовал, но это позволило не вносить изменений в таблицу). Задается значение в стандартном html формате #00FF00.
Теперь об использовании модуля. Все просто. Используется так же как и стандартный лог Алисы. Создайте в домашних страницах html блок с содержимым [#module name="app_chatbox" limit="50" reverse="1" mobile="1"#]

Модуль выложил для ознакомления. Возмоно позже он появится в маркете. Кому интересно вы можете скачать модуль здесь http://kda.kiev.ua/app_chatbox.zip. Хочу предупредить - у меня МЖД установлен на Linux. Работоспособность под Win не проверялась, но думаю все будет работать. Для установки распакуйте архив с соблюдением папок в корень МЖД.

Обсуждать будем здесь. Жду замечаний и предложений.

_________________
CubieBoard A10 - основной сервер Majordomo
Raspberry Pi - цифровая мини АТС ASTERISK
Arduino - блок управления реле, электросчетчик, счетчики воды, управление вентиляционной системой, СКУД.


Последний раз редактировалось ksgroup Сб ноя 15, 2014 10:46 pm, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Сб ноя 15, 2014 5:29 pm 
Не в сети

Зарегистрирован: Сб апр 26, 2014 5:06 pm
Сообщения: 115
Откуда: Новосибирск
Благодарил (а): 20 раз.
Поблагодарили: 10 раз.
красивый модуль давно хотел что то подобное!! автору спасибо))) ТЕСТИРУЕМ!

_________________
    Ubuntu Server .Esp8266)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вс ноя 16, 2014 7:33 am 
Не в сети

Зарегистрирован: Сб апр 26, 2014 5:06 pm
Сообщения: 115
Откуда: Новосибирск
Благодарил (а): 20 раз.
Поблагодарили: 10 раз.
sregeipt писал(а):
красивый модуль давно хотел что то подобное!! автору спасибо))) ТЕСТИРУЕМ!


под вин хп пока работает стабильно звуки выбираются пользователи тоже все работает Спасибо

_________________
    Ubuntu Server .Esp8266)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вс ноя 16, 2014 2:36 pm 
Не в сети

Зарегистрирован: Пт дек 14, 2012 12:24 pm
Сообщения: 1085
Откуда: Россия, Нижняя Тура
Благодарил (а): 310 раз.
Поблагодарили: 67 раз.
А как его в меню сунуть?

_________________
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вс ноя 16, 2014 2:39 pm 
Не в сети

Зарегистрирован: Ср дек 19, 2012 10:35 am
Сообщения: 130
Откуда: Ukraine/Kiev
Благодарил (а): 4 раз.
Поблагодарили: 12 раз.
BlackWarrior писал(а):
А как его в меню сунуть?

Да так же как и стандартный shoutbox, вот только не уверен что по ширине подойдет. Я в меню его совать не пробовал, мне чат Алисы в меню мешает.

_________________
CubieBoard A10 - основной сервер Majordomo
Raspberry Pi - цифровая мини АТС ASTERISK
Arduino - блок управления реле, электросчетчик, счетчики воды, управление вентиляционной системой, СКУД.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вс ноя 16, 2014 2:44 pm 
Не в сети

Зарегистрирован: Пт дек 14, 2012 12:24 pm
Сообщения: 1085
Откуда: Россия, Нижняя Тура
Благодарил (а): 310 раз.
Поблагодарили: 67 раз.
Эту штуку бы в маркет...

_________________
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вс ноя 16, 2014 2:55 pm 
Не в сети

Зарегистрирован: Пт дек 14, 2012 12:24 pm
Сообщения: 1085
Откуда: Россия, Нижняя Тура
Благодарил (а): 310 раз.
Поблагодарили: 67 раз.
А у меня Хост (адрес) (не обязательно): используется по прямому назначению. Как быть? :cry:
Может выпустить модуль и в нем цвета задавать? Пазяаааста :roll:

_________________
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вс ноя 16, 2014 3:00 pm 
Не в сети

Зарегистрирован: Ср дек 19, 2012 10:35 am
Сообщения: 130
Откуда: Ukraine/Kiev
Благодарил (а): 4 раз.
Поблагодарили: 12 раз.
BlackWarrior писал(а):
А у меня Хост (адрес) (не обязательно): используется по прямому назначению. Как быть? :cry:
Может выпустить модуль и в нем цвета задавать? Пазяаааста :roll:

А по какому назначению, если в системе это поле нигде не используется?

_________________
CubieBoard A10 - основной сервер Majordomo
Raspberry Pi - цифровая мини АТС ASTERISK
Arduino - блок управления реле, электросчетчик, счетчики воды, управление вентиляционной системой, СКУД.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вс ноя 16, 2014 3:03 pm 
Не в сети

Зарегистрирован: Пт дек 14, 2012 12:24 pm
Сообщения: 1085
Откуда: Россия, Нижняя Тура
Благодарил (а): 310 раз.
Поблагодарили: 67 раз.
Используется. Если в это поле вбить IP пользователя, то система по нему определяет пользователя. У меня так разграничение меж тремя людьми сделано

_________________
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вс ноя 16, 2014 3:17 pm 
Не в сети

Зарегистрирован: Ср дек 19, 2012 10:35 am
Сообщения: 130
Откуда: Ukraine/Kiev
Благодарил (а): 4 раз.
Поблагодарили: 12 раз.
BlackWarrior писал(а):
Используется. Если в это поле вбить IP пользователя, то система по нему определяет пользователя. У меня так разграничение меж тремя людьми сделано

У меня пользователь один, поэтому я и использовал это поле. Можно переделать под поле "SKYPE"

_________________
CubieBoard A10 - основной сервер Majordomo
Raspberry Pi - цифровая мини АТС ASTERISK
Arduino - блок управления реле, электросчетчик, счетчики воды, управление вентиляционной системой, СКУД.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 100 ]  На страницу 1, 2, 3, 4, 5 ... 10  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Fantom2, kymasya, sergejey и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB