Учим языки программирования для умного дома

Смотреть видео на Youtube

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

Основным языком используется это Python, но поскольку все системы умного дома, они или иначе используют языки программирования, для их разработки используются, и в самих системах тоже это можно дополнительные скрипты тоже разрабатывать на языках программирования и питон в принципе там самый популярный, его всегда можно запустить, допустим если это Linux, то на микрокомпьютере Raspberry сразу в операционной системе уже установлен python и можно будет простыми командами сразу начинать уже запускать, выполнять разные команды. В принципе можно написать скрипт на питоне который будет обрабатывать разные события в умном доме, обращаться к разным серверам внешним, может обращаться и подключаться к системе умного дома, использовать API разные, также понятно что там можно и подключать разные библиотеки дополнительные, например можно там подключить библиотеку по распознавание допустим образов и какие-то вещи определять, людей, животных, то есть очень много возможностей используется, но и также там большие возможности в питоне при обработке разных данных, то есть это можно очень быстро и просто разбирать разные сложные структуры например там описание формате JSON, или XML, или там какую-то веб-страницу получать, и из неё разбирать данные.

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

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

Также используется язык PHP, но на самом деле по умолчанию этот язык в системе в Linux не установлен, то есть его нужно будет дополнительно устанавливать тоже также как и Java, но фактически в нем уже можно будет тоже там делать какие-то команды выполнять, библиотеки подключать, но и принципе он полезен для разработки веб-сайтов, то есть можно тоже будет разные другие применения этому языку найти, поэтому тоже полезно именно на этом языке попрактиковаться в написании скриптов.

Очень многие системы умного дома и вообще разные компоненты умного дома они работают на JavaScript, в принципе все языки конечно они сейчас очень достаточно похожи между собой, они там больше основаны на синтаксисе языка C, и конечно там довольно просто будет разобраться в этом же JavaScript, если уже какой-то другой язык уже знаешь, но если например нужно будет какую-то доработать функцию, то в системе умного дома можно делать какие-то скрипты обработки сценариев, там например в том же NodeRed например используется в системе для разработки автоматизаций, если какой-то функции нет можно открыть там просто окно и в нем писать нужную программу для обработки каких-то значений, но конечно в принципе javascript она гораздо больше возможности имеет и используются при разработке динамических веб-сайтов и веб-страниц, у меня дашборд сделан так, что он как раз сделан на JavaScript и там можно разные виды запросов делать там к разным источникам информации и там динамически обрабатывать все нажатия, на этой странице, и менять информацию этой странице, новые объекты там показывать или скрывать, то есть в принципе очень удобно и очень много возможностей дает.

В самой операционной системе Linux там по умолчание используется язык bash, у него тоже достаточно много возможностей, есть очень много дополнительных компонентов, которые можно использовать, ну или их надо будет там установить если они там не установлены сразу, можно очень много разных там делать скриптов и автоматизаций и интеграций с разными системами и в том числе можно также подключаться к внешним ресурсам, но конечно например у меня так, я подключаюсь допустим к telegram-боту и принципе вполне нормально работает всё, но разборка каких-то входных данных она достаточно сложная становится, потому что в bash по умолчанию нет библиотек, которые позволяют там какой-нибудь формат разбирать входных данных, но в принципе если данные не достаточно сложные, какие-нибудь простые идут, например в формате JSON, описание, дата, время, статус какой-то, то в принципе можно его и разобрать на bash в принципе совсем не очень сложно.

В системах умного дома, для того чтобы писать все настройки скриптов или каких-то устройств, тоже есть интерфейс специальный, который использует язык YAML, он используется и в Home Assistant с самого начала фактически и сейчас он также еще и в OpenHAB тоже начал поддерживаться и тоже можно в принципе довольно просто на нем разрабатывать разные скрипты по автоматизации, в принципе синтаксис он довольно специфический это просто структурированное описание всех этих объектов, то есть это не чистой программирование и там конечно очень много ограничений, но по большому счету для умного дома это полезный язык и можно действительно там делать довольно хитрые всякие сценарии с обработкой очень разных сложных условий, множество, у меня допустим так есть обработка пульта который работает по Bluetooth, там все события обрабатываются как раз с помощью описания на этом языке YAML и дальше управление происходит в системе умного дома разными устройствами, несколькими светильниками в разных режимах, то есть в принципе достаточно большие возможности у него тоже есть, но это конечно зависит первую очередь от самой системы умного дома, которая использует язык.

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

Ну и если еще и программировать разные микроконтроллеры или разные устройства, допустим Arduino или esp 8266 или eps32, то там тоже можно использовать среду программирования Arduino IDE, там фактически язык Си используются, у него есть конечно особенности некоторые, но и используется очень много дополнительных библиотек, которые нужно подключать если нужно там какие-то определенные контроллеры использовать или какие-то определенные функции этих микроконтроллеров запускать, но фактически он тоже достаточно универсальный можно попробовать в работе программирования определенных уже железок, который позволит научиться настраивать разное оборудование, им управлять, делать программки для них, ну и соответственно это все тоже будет очень интересно изучить и потом аналогично применять уже не только в умном доме.

Автоматизация в умном доме должна быть полезной и создавать дополнительный комфорт, но иногда всё идет не так… Причины этого, и как всё настроить смотри на моём канале.

You may also watch

Article By Alex

Если есть идеи как можно улучшить автоматизацию, сделать её более надежной, быстрой и полезной, то можно оставить комментарий ниже. Попробую реализовать предложения и расскажу в следующих видео.

Discuss about post