Code Monkey home page Code Monkey logo

ssdpfinder's Introduction

SSDP Finder

Модуль для открытой платформы домашней автоматизации Majordomo. Основное предназначение модуля - поиск и добавление в систему UPNP устройств. Конкретный функционал(список файлов, воспроизведение...и.т.) по работе с каждым устройством(сервер, рендер, камера, хромкаст...) в основном должен быть вынесен в другой модуль на подобии Простые устройства

Возможности:

  • Поиск устройств в локальной сети на основании UPNP протокола
  • Добавление устройств в систему(Терминал, Устройства онлайн)
  • Получение списка сервисов устройства
  • Управление устройствами проигрывания MediaRenderer (автоматически создается шаблон управления отдельными устройствами) Только необходимо добавить на собственную сцену управления Для воспроизведения ссылки необходимо изменить значение MediaRenderer01.playUrl (Воспроизвести ссылку) для нужного устройства.. Остальное управление находится в шаблоне...
  • Получение списка файлов c MediaServer

ScreenShot

TODO:

  • Добавление простых устройств с помощью модуля (Сначала MediaServer, MediaRender, dial(Chromecast))
  • Получения дополнитеньных устройств с одного UPNP
  • Добавлять устрйоства в MJD в зависимости от типа. (Если не MediaRenderer, то не предлагать создавать терминал....)
  • Рефакторинг
  • Шаблоны поведения для управления устройствами

Для установки правильного адреса в виндовс :

  1. в файле C:\Windows\System32\drivers\etc\hosts Исправляем строку на нужный айпи адрес

_# localhost name resolution is handled within DNS itself.

_# 192.168.1.30 localhost

  1. в файле C:_majordomo\pms_config.ini в строке 33 изменяем на тот же адрес...

_[http]

_;--- Defines the hostname that should be shown in the browser url and that is used for the apache server

_;--- At the moment only IP addresses or the placeholder {local_ip} is allowed.

_HostName=192.168.1.30




ssdpfinder's People

Contributors

gelezako avatar t-rex-xp avatar tarasfrompir avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

ssdpfinder's Issues

Сообщение об успешном\неуспешном получении списка файлов

После того как мы добавили новый объект в ПУ моделя для сервера и привязали его на странице ssdp_finder есть возможность нажать кнопку "Get file list". Но нет никакого оповещения, удалось что-то получить или нет. Кажется что кнопка не работает, потому что визуально это никак не показано.
Как вариант предлагаю внизу писать что список файлов успешно получен или не получен.

2

3

Создать Шаблон Отображения

Найти как поставлять с плагином этот шаблон по умолчанию.
Вот пример кода (набор кнопок) для управления плеером:
<div class="btn-group"> <button onClick='callMethod("%.mute_unmute","1")' class="btn btn-custom"><span title="Play" id="play" class="glyphicon glyphicon-play aligned"></span></button> <button onclick="Stop('music.mp3','audio');" class="btn btn-custom"><span title="Stop" id="stop" class="glyphicon glyphicon-stop aligned"></span></button> <button onclick="Restart('music.mp3','audio');" class="btn btn-custom"><span title="Restart" id="restart" class="glyphicon glyphicon-step-backward aligned"></span></button> <button onclick="Backward5('music.mp3','audio');" class="btn btn-custom"><span title="-5 seconds" id="play" class="glyphicon glyphicon-fast-backward aligned"></span></button> <button onclick="Forward5('music.mp3','audio');" class="btn btn-custom"><span title="+5 seconds" id="play" class="glyphicon glyphicon-fast-forward aligned"></span></button> <button onclick="Backward1('music.mp3','audio');" class="btn btn-custom"><span title="-1 second" id="play" class="glyphicon glyphicon-chevron-left aligned"></span></button> <button onclick="Forward1('music.mp3','audio');" class="btn btn-custom"><span title="+1 second" id="play" class="glyphicon glyphicon-chevron-right aligned"></span></button> <button onclick="VolumeUp('music.mp3','audio');" class="btn btn-custom"><span title="Volume Up" id="volumeup" class="glyphicon glyphicon-plus aligned"></span></button> <button onclick="VolumeDown('music.mp3','audio');" class="btn btn-custom"><span title="Volume Down" id="volumedown" class="glyphicon glyphicon-minus aligned"></span></button> </div>

Privet вместо имени сервера

1233
Если я не выбрал категорию, то у меня почему-то в поле с именем сервера написано Privet. Может стоит убрать этот видимо дебажный текст?

На сцене список файлов пропадает после обновления

  1. Открыть ssdpdevices и выбрать рендер
  2. Перейти на вкладку "Интерфейс" и добавить отображение рендера на сцену.
  3. Открыть сцену и обновить страницу несколько раз.

Полученный результат: список файлов пропадает после обновления
Ожидаемый результат: список файлов не пропадает после обновления

Неверный IP адрес файла

Иногда IP адрес файла добавляется в список как
http://127.0.0.1:10243/WMPNSSv4/2811996591/1_e0Q0N0E5RjcyLTIwRDQtNEFBRi1CMDk4LTBERTQzQzVGQTEzOX0uMC44.mp4
И если я хочу проиграть файл не на том же сервере, то он естественно не будет найден. Нужно добавлять не локальный IP адрес файла, а реальный с точки зрения сети.
Скриншот: https://2.bp.blogspot.com/-VbwYUiwDdE4/WubIamQ8ESI/AAAAAAAAOtI/FM63Ojayju4S2mkQpJLzdS8FCy6B64ILwCLcBGAs/s1600/scr.png

Отображать имя сервера в списках медиаресурсов

Предложение: Отображать имя сервера в списках медиаресурсов.
Если в сети находится несколько UPNP Медиасерверов, то в списке расшаренных ресурсов нужно отображать имя сервера, что бы понимать откуда файл.

Неверный результат сканирования - отсутствует таблица

Старая, но очень неприятная ошибка.
Шаги для воспроизведения:

  1. Удалить все устройства и начать новый поиск.
  2. Добавить все найденные устройства. (После первого захода на страницу модуля в таблице отображаются все найденные устройства.)
  3. Нажать кнопку "Сканировать".

Фактический результат: На странице будет пусто и написано "Нет данных"

Ожидаемый результат: На странице будет отображена таблица с ранее найденными и добавленными устройствами плюс возможные новые устройства, которые найдены, но ещё не добавлены.

Испітай пожалуйста мой форк

Переисал функцию получения данных теперь работает лучше...
О результатах отпишись плиз...
Потом сделаю реквест чтобы ничего не сломать

Для отображения имени используется Title?

После последнего фикса с кодировкой остался один файл, имя которого неверно отображалось. По исследовав немного я выяснил что для отображения имени файла почему то используется Title файла. Просто интересно с чем это связано? Иногда в тайтле может вообще мусор быть как в моём примере. Может имеет смысл всё таки использовать реальное имя файла?
https://2.bp.blogspot.com/-EVFS_a-Rjhc/Wus9OELjAgI/AAAAAAAAOwQ/uTJCd4RVUBklSAtA7VB8F678pRjVMrpawCLcBGAs/s1600/scr.png

Удаление устройств

Я дополнил функцию удаления устройств для того что бы она удаляла отовсюду все созданные записи...
Если что не так пиши

Вопрос

Сделай кнопку добавить он лайн - чтобы она пропадала если устройствуо уже добавлено
2. Нету комнат..
3. и после нажатия кнопки при добавлении устрройства чтобы был переход на список устройств...

Верни назад устройства онлайн

Дело в том что устройства онлайн проверялись по хмл файлу находящемуся в устройстве.
А поскольку таких служб (файлов может быть несколько) и если одна из служб отключена то будет писать что соответстувющее устройство отключено и находится в оффлайне

Удобный поиск по расшаренным файлам

Если расшаренных файлов очень много, то выпадающий список очень большое и сложно найти нужный файл. Предлагаю добавить фильтры для удобного поиска файлов. К примеру как это реализовано в модуле MQTT. Если начать набирать нужный файл, то он будет автоматически отфильтрован и показан. Так же в качестве фильтра можно выбрать имя сервера что бы отобразить файлы только из одного источника.

Неправильно берутся данные

Данные надо брать не из ответа на запрос, а из XML там всегда есть на все ответы ...
Поэтому много устройств и не распознается...
Надо переписывать немного кода....

Интервал

Верни интервал плиз назад 10 минут достаточно для проверки связи с устройствами. Что получается что запросы пойдут ежесекундно... Это очень часто. Не нужно грузитьт сервак. А исправить под себя значение мозга в любое время...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.