Умное зеркало своими руками - расширяем функционала зеркала

25 ноября 2018, 18:23

Привет дорогие друзья! Проект с умным зеркалом набрал очень много просмотров, что побудило меня написать еще одну статью на эту тему.

Что мы будем добавлять в наше умное зеркало? Добавлять будем следующие модули и расширение функционала:

1. Научим умное зеркало воспроизводить музыку через Airplay 

2. Выведем показания нашего умного дома на зеркало

3. Выведем наши показания с Google Calendar на умное зеркало.

Обучаем умное зеркало работать с AirPlay 

Умное зеркало не только должно выводить информацию, но и быть мультимедийным устройством.

Научим наше умное зеркало работать с таким известным протоколом как AirPlay, всем пользователям техники Apple он очень известен и знают, что данный протокол нужен для беспроводной передачи Аудио или Видео. В нашем случае мы будем передавать только аудио поток нашему умному зеркалу.
Для начала нам нужно Установить и настроить Shairport Sync.
Перед началом установки обновим уже установленные в системе пакеты:
sudo apt-get update && apt-gr dist-upgrade

Теперь установим все необходимые модули для работы Shairport Sync:

sudo apt-get install build-essential git autoconf automake libtool libdaemon-dev libasound2-dev libpopt-dev libconfig-dev avahi-daemon libavahi-client-dev libssl-dev

Скопируем с Github репозитория исходники:

git clone https://github.com/mikebrady/shairport-sync.git

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

cd shairport-sync
autoreconf -i -f
./configure --sysconfdir=/etc --with-alsa --with-avahi --with-ssl=openssl --with-metadata --with-systemd
make

Создадим отдельную группу и отдельного пользователя специально для Shairport:

getent group shairport-sync &>/dev/null || sudo groupadd -r shairport-sync >/dev/null
getent passwd shairport-sync &> /dev/null || sudo useradd -r -M -g shairport-sync -s /usr/bin/nologin -G audio shairport-sync >/dev/null

Осталось установить приложение и запустить как системное

sudo make install
sudo systemctl enable shairport-sync

На этом установка почти закончена, осталось перегрузить нашу Малинку с AirPlay сервером и сделать несколько настроек 

sudo reboot

После перезагрузки нам нужно сделать следующее 

1. Отключение энергосбережения Wi-Fi

2. Переключить вывод звука с HDMI на 3.5 jack

3. Улучшить качество звука

4. Изменение названия AirPlay-ресивера

Подробно не буду останавливаться на всех пунктах, просто сделайте как будет указано ниже.

Отключаем энергосбережения Wi-Fi

sudo nano /etc/network/interfaces

Найдем в нем строку «iface wlan0 inet manual» и добавим сразу же после нее следующую строку:

wireless-power off

Переключить вывод звука с HDMI на 3.5 jack

Если у вас звук нужно выводить через 3.5 jack, то переходим в терминал и вводим следующие команды

sudo raspi-config

В результате откроется новый экран — с разнообразными настройками.

Переходим в Advanced Options и нажимаем Enter

Выбираем раздел Audio и нажимаем Enter и выбираем 3.5 Jack

После этого нажимаем Finish и перегружаем малинку.

Улучшить качество звука

sudo nano /boot/config.txt

И дописываем в конец следующую строку:

audio_pwm_mode=2

Для еще одного улучшения качества звука нужно исправить файл конфигурации самого Shairport Sync:

sudo nano /etc/shairport-sync.conf

В котором нужно найти строку:

// volume_range_db = 60 ;

И заменяем эту страну на следующую

volume_range_db = 30 ;

Перегружаем малину снова)

Изменение названия AirPlay-ресивера

Изначально наша AirPlay-колонка будет носить сетевое имя устройства, на котором развернут Shairport (в случае с «малиной» это имя по умолчанию Raspberrypi).

sudo nano /etc/shairport-sync.conf

Найти в нем строку:

// name = "%H"

Убираем 2 // и в "Пишем тут своем название "

name = "MagicMirror Airplay"

На этом настройка Airplay ресивера закончена. Теперь Наше зеркало стало еще умнее и появилась новая функция.

Выведем показания нашего умного дома на зеркало

Для получения данных из умного дома напрямую из HomeBridge невозможно это сделать, именно для этого пришлось устанавливать и изучать Home Assistant, но на портале есть отличный автор Александр Жабунин (OXOTH1K) по его мануалам я все и ставил.

После того как все настроено нам осталось забрать данные с Home Assistant в наше умное зеркало

Начнем с установки модуля для нашего зеркала. Подключаемся к малине по ssh и переходим в директорию с модулями умного зеркала.

cd ~/MagicMirror/modules

После этого нужно скланировать модуль

git clone https://github.com/aserramonner/MMM-HASS

После этого переходим с директорию с нашим новым модулем и устанавливаем его

cd ~/MagicMirror/modules/MMM-HASS
npm install

На этом установка модуля закончена и переходим к его настройкам

Переходим к конфигу

sudo nano ~/MagicMirror/config/config.js

Вставляем следующий код в наш config.js

{
        module: "MMM-HASS",
        position: "top_left",
        apipassword: "your_home_assistant_api_password",
        config: {
                host: "your_home_assistant_ip",
                port: "your_home_assistant_port",
                https: false,
                devices: [
                { deviceLabel: "Температура и влажность",
                        deviceReadings: [
                        { sensor: "sensor.temperature_158d0001ad", icon: "wi wi-thermometer", suffix: "°С"},
                        { sensor: "sensor.humidity_158d0001ad", icon: "wi wi-humidity", suffix: "%"},
                        ]
                },
{ deviceLabel: "Освещенность",
                        deviceReadings: [
                        { sensor: "sensor.illumination_7811dc64", suffix: " LUX"},
                        ]
                },
{ deviceLabel: "Люстра",
                        deviceReadings: [
                        { sensor: "light.living_room1"},
                        ]
                },

                ]
          }
},

Теперь разберем все настройки по полочкам

position: "top_left" - позиция где на зеркале будет располагаться наш модуль
apipassword: "your_home_assistant_api_password", - Апи ключ который задается в конфигурационном файле HA
host: "your_home_assistant_ip" - адрес вашего HA 
port: "your_home_assistant_port", - Порт HA по умолчанию 8123
{ deviceLabel: "Температура и влажность",                   
     deviceReadings: [                        
{ sensor: "sensor.temperature_158d0001ad36d7"- это индификатор нашего устройства дальше покажу где его брать, icon: "wi wi-thermometer", - иконка которую я прописал уже за вас  suffix: "°С" что это температура},           
{ sensor: "sensor.humidity_158d0001ad36d7", icon: "wi wi-humidity", suffix: "%"},                       
 ]               
 },

Дальше добавляем по аналогии.

Где взять идентификаторы устройств?

Заходим в браузере на наш сервер HA и переходим в раздел Состояния в Инструментах разработчика

Ну и вот наш идентификатор который нам нужен был.

Ну вот кратко рассказал как это все добро вывести, но можно выводить не только показания датчиков влажности и температуры, но и состояние приборов. Надуюсь сами разберетесь как это делать. Я оставлю свой конфиг для примера

{
        module: "MMM-HASS",
        position: "top_left",
        apipassword: "your_home_assistant_api_password",
        config: {
                host: "your_home_assistant_ip",
                port: "your_home_assistant_port",
                https: false,
                devices: [
                { deviceLabel: "Температура и влажность",
                        deviceReadings: [
                        { sensor: "sensor.temperature_158d0001ad", icon: "wi wi-thermometer", suffix: "°С"},
                        { sensor: "sensor.humidity_158d0001ad", icon: "wi wi-humidity", suffix: "%"},
                        ]
                },
{ deviceLabel: "Освещенность",
                        deviceReadings: [
                        { sensor: "sensor.illumination_7811dc64", suffix: "LUX"},
                        ]
                },
{ deviceLabel: "Люстра",
                        deviceReadings: [
                        { sensor: "light.living_room1"},
                        ]
                },

                ]
          }
},

Выведем наши показания с Google Calendar на умное зеркало.

Будем использовать стандартный модуль Calendar который по умолчанию уже есть в нашем умном зеркале. Вставляем следующий код в наш config.js

{
module: "calendar",
position: "top_left",// This can be any of the regions. Best results in left or right regions.
fetchInterval: "1000",
config: {
colored: false,
coloredSymbolOnly: false,
calendars: [
{
url: 'https://calendar.google.com/calendar/......./basic.ics',
symbol: 'calendar',
},
],
}
},

В грaфу url нам нужно вставить ваш адрес вашего календаря. Поиском этого адреса мы и займемся.

1. Заходим на Google Calendar 

2. Находим сбоку блок Мои календари

Выбираем наш календарь и нажимает три точки

Выбираем настроить общий доступ

Видим такое окно и переходим в раздел интеграция календаря 

Нам нужен адрес который Закрытый адрес в формате iCal

Копируем и вставляем в наше поле Url. На этом настройка модуля закончена.

Сейчас покажу как все заносить через мобильный телефон

Скачиваем приложение из AppStore и нажимаем открыть

Наживаем в нижнем углу красный + и выбираем создать мероприятие и заполняем все нам нужные поля

Нажимаем Сохранить и ждем от 1 до 3 минут пока данные синхронизируются с зеркалом.

Проверим что у нас выводиться на зеркало уже сейчас.

Ну и как это выглядит на самом зеркале в живую.

Ну еще очень много вопросов было по поводу пленки какую я использовал, это пленка зеркальная с 10% светопропускаимости.

На этом теперь точно все, спасибо за внимание, наберем тут 100 лайков и сделаю продолжение данной статьи еще есть интересные идеи для чего можно использовать умное зеркало. Всем удачи!


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Олег Челбаев (sprut)
    Олег Челбаев (sprut) 9 месяцев назад

    Ждём продолжения, внёс свой лайк ;)

  2. Алексей Новосельцев (novo)
    Алексей Новосельцев (novo) 9 месяцев назад

    А ведь данный способ можно применить для отображения инфы на ТВ, надо будет попробовать, спасибо за статью!

    Было бы классно, чтобы утром пока утренние процедуры выполняешь, чтобы телик включался на какие-нибудь новости или запускал фотоальбом и включал приятную музыку, а поверх отображалась инфа о погоде, данных об УД, календарь...может ещё что.

    Можно ли в твоём проекте сделать так, чтобы музыка с Apple Music запускалась или радиостанция с того же Apple Music?

    Забыл как синхронизировать календарь в iOS с Гугл-календарём, надо будет вспомнить, чтобы не плодить кучу программ с календарями

К списку статей

Скидки для сообщества

УЮТНЫЙ ДОМ

+7 495 797-21-74
Промокод:
SPRUT
Размер скидки:
5%

Z-Wave Ukraine

+380 68 641 9670
Промокод:
Sprut-UA
Размер скидки:
15%

Интернет-магазин yourhomekit.ru

+7 914 550-51-11
Промокод:
SPRUT-BLG
Размер скидки:
8%
Cамый большой ассортимент в России аксессуаров Apple HomeKit

LifeControl

+7 495 240-81-01
Промокод:
sprut10
Размер скидки:
10%
На весь ассортимент Lifecontrol

Похожие статьи

04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
02 ноября 2018, 12:14
Кнопка звонка с уведомлениями в HomeKit
15 октября 2018, 09:05
Прошивка для Sonoff c нативным HomeKit
15 ноября 2018, 09:42
Способы автоматизации механических ворот
15 ноября 2018, 13:11
Xiaomi Mi Remote 360 добавляем Apple HomeKit
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
01 октября 2018, 07:43
Нативный HomeKit на ESP8266
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
24 августа 2018, 12:18
Пошаговая установка HomeAssistant
27 августа 2018, 10:14
Интегрируем ХА в HomeKit