По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Итак, вы полностью укомплектовали и настроили ваш умный дом. И конечно, вам нравится периодически показывать выпендриваться перед друзьям, как круто включать лампы, проигрывать видео и фильмы подсказкой голосовому помощнику, приготовить кофе или регулировать термостат коснувшись приложения на экране смартфона. Поздравляем! Но если вы любитель автоматизации (как и мы), который редко останавливается на достигнутом, то возможно будете разочарованы количеством необходимых программ, которые нужно загрузить, интерфейсов, которые вам придётся усваивать, чтобы управлять гаджетами. Скорее всего, будут отдельные приложения для управления освещением, медиацентром, термостатом и приложение Google Home, который изо всех сил (но безнадежно) старается собрать всё это воедино. Большая вероятность того, что некоторые приложения будут несовместимы с другими и, вероятно, многие из них не будут работать, если они не в одной сети с гаджетом. Представьте если бы мы смогли управлять всем этим из одного интерфейса, на засоряя телефон или компьютер сотнями приложений, через интерфейс, который доступен как на смартфонах, так и на компьютерах, а также с помощью сторонних сценариев вне зависимости от того, находимся ли мы в одной сети с умным домом или нет. Интерфейс, который был бы легким и простым в использовании? А что если мы будем делать это через мессенджер или чат? В конце концов, разве не легче было бы контролировать наш дом, гаджеты и облачные сервисы через тот же интерфейс, который мы используем для отправки фотографий котиков нашим друзьям, и через бот, полностью адаптированный к нашим потребностям? В этой статье я покажу вам, как настроить команды и процедуры в дополнение к существующим сетапам умного дома. В данном руководстве мы используем два основных инструмента: Telegram: существует много мессенджеров и платформ, но до сих пор попытки многих из них (Facebook Messenger, Whatsapp, Hangouts и т.д.) в предоставлении пригодного для разработчиков API, мягко говоря, были тщетны. Ушли те дни, когда все использовали XMPP или IRC в качестве своего мессенджер. Сегодняшний мир мессенджеров очень разнообразен. Кроме того, поскольку в интересах многих крупных игроков создавать изолированные ИТ экосистемы, наиболее часто используемые решения не поставляются с официально поддерживаемыми API/интерфейсами разработчиков. Мало того: некоторые из них активно отговаривает пользователей от использования чего-либо, кроме официального приложения, для взаимодействия с платформой (почитайте, как Whatsapp может забанить вас). В этом чрезвычайно разнообразном мире, состоящем из нескольких несвязанных островов, Telegram представляет собой радостное исключение: их официальный bot API хорошо задокументирован и поддерживается, и для тех, кто знает немного программирования, очень легок в интеграции. Platypush: Platypush поставляется с плагином для Telegram и бэкэндом. Так что давайте начнем и создадим первый бот для автоматизации управления домом! Создание Telegram-бота Начните беседу с Botfather. Наберите /start, а затем /newbot для создания нового бота. Задайте боту ник и имя. Вы получите ссылку, чтобы начать беседу с вашим ботом и уникальный API-ключ. Сохраните его где-нибудь, так как он нам понадобится для конфигурации плагина platypush. Конфигурация бота в platypush 1. Установите platypush с основными расширения и интеграцией с Telegram: pip install 'platypush[http,db,telegram]' apt-get install redis-server [sudo] systemctl start redis [sudo] systemctl enable redis 2. Изучите platypush хотя бы немного, если еще не сделали этого. Определите несколько вещей, которыми вы хотите управлять/автоматизировать - источники света, музыку, датчики, базу данных, роботы - и установите/настройте соответствующие расширения. В этой статье мы рассмотрим, как настроить наш новый бот для управления освещением Philips Hue, воспроизведением музыки и потоковой передачей PiCamera. 3. Добавьте настройки Telegram в файл ~/.config/platypush/config.yaml: chat.telegram: api_token: <your bot token> backend.chat.telegram: enabled: true Бэкэнд-система позволяет получать события (например, новые сообщения, вложения, запросы и т.д.) и создавать на них пользовательские "хуки". Плагин позволяет писать вам чаты, программно отправлять сообщения и вложения, администрировать каналы и т.д. Допустим, мы хотим, чтобы бот реализовал следующие команды: /start Приветствие пользователя /help Показать доступные команды /lights_on Включить свет /lights_off Выключить свет /music_play Включить музыку /music_pause Приостановить музыку /music_next Перейти на следующую песню /music_prev Перейти на предыдущую песню /start_streaming Начать удаленное вещание PiCamera /stop_streaming Остановить удалённое вещание PiCamera Всё что мы должны сделать это создать действие в конфигурационном файле platypush config.yaml. В этом контексте вы должны: Установить и настроить плагины Philips Hue, mopidy и PiCamera: pip install 'platypush[hue,mpd,picamera]' # Hue lights configuration light.hue: # Hue bridge IP address bridge: 192.168.1.10 # Default groups to control groups: - Living Room # MPD/Mopidy configuration music.mpd: host: localhost port: 6600 # PiCamera configuration camera.pi: vflip: False hflip: False Чтобы не засорять файл config.yaml, создайте новый файл с названием ~/.config/platypush/include/bot.yaml: # /start command handler event.hook.OnTelegramStartCmd: if: type: platypush.message.event.chat.telegram.CommandMessageEvent command: start then: - action: chat.telegram.send_message args: chat_id: ${chat_id} text: "Welcome! Type /help to see the available commands" # /help command handler event.hook.OnTelegramHelpCmd: if: type: platypush.message.event.chat.telegram.CommandMessageEvent command: help then: - action: chat.telegram.send_message args: chat_id: ${chat_id} text: "Available commands: - /lights_on - /lights_off - /music_play [resource] - /music_pause - /music_prev - /music_next - /start_streaming - /stop_streaming " # /lights_on command handler event.hook.OnTelegramLightsOnCmd: if: type: platypush.message.event.chat.telegram.CommandMessageEvent command: lights_on then: - action: light.hue.on - action: chat.telegram.send_message args: chat_id: ${chat_id} text: "Lights turned on" # /lights_off command handler event.hook.OnTelegramLightsOffCmd: if: type: platypush.message.event.chat.telegram.CommandMessageEvent command: lights_off then: - action: light.hue.off - action: chat.telegram.send_message args: chat_id: ${chat_id} text: "Lights turned off" # /music_play command handler event.hook.OnTelegramMusicPlayCmd: if: type: platypush.message.event.chat.telegram.CommandMessageEvent command: music_play then: - if ${cmdargs}: - action: music.mpd.play args: resource: cmdargs[0] - else: - action: music.mpd.play - action: chat.telegram.send_message args: chat_id: ${chat_id} text: "Music playing" # /music_pause command handler event.hook.OnTelegramMusicPauseCmd: if: type: platypush.message.event.chat.telegram.CommandMessageEvent command: music_pause then: - action: music.mpd.pause - action: chat.telegram.send_message args: chat_id: ${chat_id} text: "Music paused" # /music_prev command handler event.hook.OnTelegramMusicPrevCmd: if: type: platypush.message.event.chat.telegram.CommandMessageEvent command: music_prev then: - action: music.mpd.previous - action: chat.telegram.send_message args: chat_id: ${chat_id} text: "Playing previous track" # /music_next command handler event.hook.OnTelegramMusicNextCmd: if: type: platypush.message.event.chat.telegram.CommandMessageEvent command: music_next then: - action: music.mpd.next - action: chat.telegram.send_message args: chat_id: ${chat_id} text: "Playing next track" # /start_streaming command handler event.hook.OnTelegramCameraStartStreamingCmd: if: type: platypush.message.event.chat.telegram.CommandMessageEvent command: start_streaming then: - action: camera.pi.start_streaming args: listen_port: 2222 - action: chat.telegram.send_message args: chat_id: ${chat_id} text: "PiCamera streaming started. Check it out with vlc tcp/h264://hostname:2222" # /stop_streaming command handler event.hook.OnTelegramCameraStopStreamingCmd: if: type: platypush.message.event.chat.telegram.CommandMessageEvent command: stop_streaming then: - action: camera.pi.stop_streaming - action: chat.telegram.send_message args: chat_id: ${chat_id} text: "PiCamera streaming stopped" Подключите файл конфигурации бота в config.yaml: include: -include/bot.yaml Запустите platypush: # Manual start platypush # Service start systemctl start platypush.service Создайте беседу в вашим ботом перейдя по ссылке, выданной BotFather и начните говорить ему, что делать: Сейчас бот доступен любому мы этого явно не хотим. Представьте, что кто-то включит на полную громкость System Of A Down- Jet Pilot вам ночью. Так себе пробуждение. Можно настроить бэкэнд Telegram так, чтобы он принимал сообщения только из определенного списка идентификаторов чатов (в Telegram chat_id используется как для частных пользователей, так и для групп). Отправьте сообщение боту и откройте журналы platypush или проверьте его стандартные выходные данные. На экране появятся следующие сообщения: 2020-01-03 19:09:32,701| INFO|platypush|Received event: {"type": "event", "target": "turing", "origin": "turing", "id": "***", "args": {"type": "platypush.message.event.chat.telegram.CommandMessageEvent", "chat_id": your_chat_id, "message": {"text": "/help", ...}, "user": {"user_id": your_user_id, "username": "****", "is_bot": false, "link": "https://t.me/you", "language_code": "en", "first_name": "***", "last_name": "***"}, "command": "help", "cmdargs": []}} Скопируйте chat_id своего пользователя и вставьте в бак-энд файл: backend.chat.telegram: authorized_chat_ids: - your_user_id Теперь бот ответит ошибкой, если вы попытаетесь отправить сообщение от неавторизованного пользователя. Вы также можете пригласить своего бота в групповой чат и позволить вашим друзьям или членам семьи регулировать свет в вашем доме, если вы захотите! Что дальше? В этой статье мы изучили только одну специфическую особенность интеграции Telegram - способность бота реагировать на события в команде, запускать действия и отвечать текстовыми сообщениями. Как видно из списка поддерживаемых событий Telegram, можно сделать больше, например: Создавать обработчики, когда кто-то делится контактной информацией - когда-нибудь думали разрешить боту автоматически хранить новые контакты, отправленные вам вашими друзьями в чате? Создавайте обработчики при совместном использовании документов, видео или изображения - например, автоматически загружайте все файлы мультимедиа, отправленные в чат, на жесткий диск или удаленную папку Dropbox. Выполнять действия с текстовыми сообщениями вместо команд - можно использовать TextNewsEvent, например, если вы предпочитаете вводить "включить свет" вместо "/lights_on." Сделайте снимок на камеру наблюдения и отправьте ее себе командой send_photo. Можно также развернуть несколько ботов, например, для каждого устройства, чтобы можно было запускать действия на конкретном устройстве из связанного чата или вместо этого использовать один бот в качестве точки входа и доставлять сообщения другим устройствам через MQTT, Kafka или HTTP API.
img
С каждым днем современные сети и системы становятся только сложнее. Даже сеть небольшого и среднего масштаба SME (Small/Medium Enterprises) могут быть использовать сложнейшие системы как с точки зрения архитектуры, так и сложности администрирования. Nagios создан как мощный инструмент для мониторинга, администрирования и уведомления об отказах систем. Во фреймворк Nagios заложен мощный инструментарий с большим количеством опций, использование которых требует помимо понимания принципов работы Nagios, а так же и глубокого понимания используемых в корпоративном контуре систем. Это очень важный момент, так как Nagios не может научить системного администратора работе с его собственными системами, но он может послужить очень мощным инструментом в работе с ними. Итак, что же может Nagios? Ниже, мы приводим лишь небольшой обобщенный список функционала: Проверка работоспособности сервера Уведомление в случаях отказа сервера (email/SMS) Проверка запуска сервиса (например почта, веб-сервер (http), pop, ssh) Проверка процессов (или Windows сервиса) Обработка статистики с сервера (ключевые перфомансы сервера) Возможность настройки уведомлений определенных событий только для назначенной группы или конкретного пользователя Формирование отчетов по downtime (времени сервера в нерабочем состоянии) Nagios не содержит никаких встроенных инструментов проверки (плагинов). Важно понять, что Nagios обеспечивает надежный и расширяемый фреймворк для любого вида мониторинга, который только может придумать пользователь. Но как Nagios выполняет мониторинг сети? Существует огромное количество уже готовых плагинов, которые позволяет выполнять различные виды мониторинга. И если для вашей сети необходимо создать специфический алгоритм мониторинга, вы можете написать данный плагин самостоятельно. Почему Nagios? Nagios - отличный выбор для тех, кто хочет иметь широкий диапазон инструментов мониторинга. Основными конкурентными преимуществами Nagios являются: Nagios это Open Source решение Надежное решение Высочайший набор возможностей для конфигурации Легко масштабируется Активное сообщество разработчиков, где постоянно совершенствуется данная система мониторинга Nagios работает на множестве операционных систем Nagios можно адаптировать под огромное количество задач. Выделим наиболее популярные адаптации этой системы мониторинга: Ping для отслеживания доступности хоста Мониторинг сервисов, таких как SMTP, DHCP, FTP, SSH, Telnet, HTTP, NTP, DNS, POP3, IMAP и так далее Сервера баз данных, такие как SQL Server, Oracle, MySQL и Postgres Мониторинг на уровне приложений, например, web – сервер Apache, Postfix, LDAP, Citrix b так далее. Как Nagios работает? Nagios работает в качестве демона (фонового процесса) на выделенном сервере, периодически отправляя ICMP запросы на хост мониторинга. Полученная информация обрабатывается на сервере и отображается администратору в рамках WEB – интерфейса. Опционально, администратор может настроить уведомления на почту, интегрируя сервер мониторинга с почтовым сервером, либо настроить СМС уведомления.
img
Windows Terminal это программное обеспечение, которое соединяет в себе командную строку, PowerShell и WSL (Windows Subsystem for Linux). На данный момент имеется две его версии, это основной Windows Terminal версии 1.3 и Предварительной сборки версии 1.4. Терминал можно полностью настроить индивидуально: изменять темы, цветовые стили, добавлять конфигурации и даже устанавливать фоновые изображения. Установить Windows Terminal можно из магазина Microsoft или по ссылке https://aka.ms/terminal. По умолчанию, всегда открывается PowerShell. Также терминал устанавливается с преднастроенными профилями Windows PowerShell, командной строки и облачной оболочки Azure.Если в будущем будет установлен дополнительный WSL, он также автоматически добавится и будет добавлена соответствующая иконка дистрибутива. При желании значок можно изменить в настройках. Настройки Windows Terminal имеет большое количество настроек, включая цветовые настройки и сочетания клавиш. Чтобы просмотреть настройки по умолчанию, нажмите Ctrl+, или выберите Параметры в меню окна. Файл настроек представляет собой текстовый файл settings.json. Глобальные настройки профиля. Общие настройки профиля.WT имеет общие настройки, которые будет применяться к каждому профилю. Настройки нужно записать в раздел "defaults" внутри объекта "profiles". Список всех возможных настроек профиля можно найти в документации. "profiles": { "defaults": { // Настройки, которые будут применяться для всех профилей "fontFace": "Cascadia Code" }, "list": [] } Индивидуальная цветовая настройка Индивидуальная цветовая настройкаWindows Terminal устанавливается со стандартным набором цветовой палитры, тем не менее ее можно изменять. Большое количество цветовых схем для терминала можно найти на сайте terminalsplash.com. С сайта можно сразу скопировать код цветовой настройки или перейти на github для получения подробной информации. Настройка командной строки. Изменить стиль командной строки можно с помощью Oh my Posh and Terminal-Icons. Эти инструменты позволяют кастомизировать внешний вид с помощью цветов, символов. Инструкция по установке Oh my Posh, Posh-Git и PSReadline находится в документации. Недавно вышла версия Oh my Posh 3, имеющая большее количество настроек. Обновиться до крайней версии можно командой: Update-Module -Name oh-my-posh -AllowPrerelease -Scope CurrentUser С помощью Terminal-Icons можно добавлять значки. Фоновые изображения Для использования в качестве фона терминал Windows поддерживает как JPG, так и GIF изображения. Другой вариант - установка в качестве фона логотипа оболочки. Место размещения изображения указывается в настройках "backgroundImageAlignment". Функциональность. Аргументы командной строки wt.exe Запуск WT (Windows Terminal) можно производить с определенной конфигурацией, параметры, которые можно установить - это расположение вкладок, панелей, домашний каталог, профиль. Можно сохранить команду как ярлык и использовать его для быстрого запуска. В этом примере PowerShell откроется на новой вкладке с вертикальной панелью. wt -p "PowerShell" -d . ; split-pane -V Этот пример откроет профиль Ubuntu-20.04 wt -p "Ubuntu-20.04" Полная документация находится на официальном сайте. Панели Windows Terminal имеет панельную поддержку профилей. Новую панель можно открыть, нажав комбинации клавиш Ctrl+Shift+1, Ctrl+Shift+2 и т.д или выбрав из выпадающего списка нужный профиль. Разделить окно на две панели: Alt+Shift+D Разделить окно горизонтально: Alt+Shift+ знак - Разделить окно вертикально: Alt+Shift+ знак + Перемещаться между панелями можно удерживая Alt и используя клавиши стрелок. А используя сочетание клавиш Alt+Shift и стрелки модно изменять размер панелей. Копировать/вставить В Терминале Windows по умолчанию для копирования и вставки используются сочетания клавиш Ctrl + C и Ctrl + V. Если у вас нет выделения, Ctrl + C будет действовать, как обычно, как команда break. Вызов команды Копировать/Вставить можно перенастроить на другие сочетания клавиш. Они хранятся в файле конфигурации settings.json. Если удавить эту связку, то по умолчанию будет использовать Ctrl + Shift + C и Ctrl + Shift + V. Стартовый каталог WSL Сейчас Windows Terminal по умолчанию устанавливает начальный каталог WSL в качестве папки профилей пользователей Windows (C:usersUserName). Чтобы перенастроить WSL-профиль на запуск в нужную папку, нужно выполнить в оболочке WSL команду nano ~/.bashrc и добавить в конце файла путь к каталогу, например, cd /mnt/c/mylovefolder, и после очередного запуска будет он будет изменен. Windows Terminal - новая оболочка, постоянно обновляющаяся, поддерживающая вкладки и объединяющая в себе несколько сред (Cmd, WSL, PowerShell, Azure Cloud Shell) благодаря чему упрощается управление инфраструктурой.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59