Комментарии 14
Если позволите, несколько мелких замечаний навскидку:
0. Не все так плохо, я видел и хуже, но тем не менее, относительно wifi.cpp
1. Вложенные include — это ЗЛО
2. Глобальные переменные config, dnsServer — это ЗЛО
3. Если нет разницы, то все таки лучше --count
4. Для печати просто просится макрос
5. При дефолтном и внешнем назначениях разная печать — так и должно быть?
Все замечания очень ценны для меня, обязательно учту при внесении правок, особенно стыдно за вложенные include
«разная печать» — так не должно быть. мне нужно быть более внимательной. Все исправлю, как только побольше разберусь с контролем версий. Спасибо, что проверили мою работу.
Так что Вы в большой компании, и лишь отдельные отдельные старики, еще помнящие, как надо, брюзжат в комментариях.
Раньше было принято иметь 2 заголовочных файла, один — для внешнего представления с интерфейсом и другой, имеющий все необходимое для реализации и там лежали в том числе и ссылки на другие заголовки, но сейчас так не делают, наверное, имена файлов стали дефицитом
Если кому интересно, оставлю свой коммент, как это делается в системе Умного Дома быстро, без пайки и нудного программирования (почти :-)), но не дешево по железу:
Из железа понадобится: Raspberry Pi — тот который у вас уже наверняка есть и используется в качестве сервера Умного Дома, Z-wave контроллер, например Aeon Z-wave Stick, которым вы будете управлять всеми I/O. Fibaro RGBW контроллер, блок питания 220В/12В — я рекомендую миниатюрный, в подрозетник типа такого, сорри не знаю кто производитель, и любая китайская RGB лента из магазина.
USB Стик вставляете в RPi. Ленту приклеиваете на карниз, подключаете RGBW Контроллер и блок питания по инструкции. RGBW Контроллер и блок питания вместе со всеми проводами влазят в подрозетник.
По настройке:
- На Распберри ставите Openhabian, устанавливаете в настройках Mosquitto MQTT Broker и NodeRED
- В OpenHAB устанавливаете Z-wave Binding, включаете в сеть RGBW контроллер и делаете Inclusion, чтобы он обнаружился в OpenHAB. Получаете RGB каналы для управления, линкуете их с Items и наслаждаетесь ручным управлением LED лентой.
- Устанавливаете там же Astro Binding, тыкаете в карте свой дом, получаете Sunset канал для получения всех этих разных гражданских, астрономических и навигационных сумерек для своих координат.
- Устанавливаете MQTT биндинг и настраиваете event bus, чтобы все, что происходит в OpenHAB появлялось в виде MQTT сообщений на брокере, и обратно, чтобы все, что отправлялось в MQTT с других устройств, отображалось в OpenHAB.
- Теперь самое интересное — в NodeRed рисуете flow в котором по событиям от Sunset будет задаваться цвет вашей подсветки. Пример в моей статье. Можете радугу придумать. Можете по времени настроить. Режим ночника добавить. В общем все графически.
Вот в принципе и все.
Зачем вышивать когда можно купить уже вышитое на ЧПУ? Ответ прост. Получение удовольствия от создания чего либо.
В основном причина в желании будущей интеграции. Поставив таймер с батарейкой вы получите изолированное решение, которое будет решать только одну простую задачу — вашу лампочку с таймером.
Но привязав это дело к системе Умного Дома или Интернет ваше устройство сможет намного больше — например вы также сможете управлять подсветкой с любого выключателя, пульта и телефона в доме, подсветка может имитировать присутствие людей, когда вас нет дома, привлекать внимание, если вдруг в дом залезут воры, интегрироваться с различными сценами освещения и т.д.
Но для этого надо сразу продумать как реализовать это соединение с интернетом и сделать один раз.
Ну а когда интернет уже есть — то почему б не воспользоваться готовеньким?
Ну да, астроданные не так уж просты, как кажется на первый взгляд. И тут опять же проявляется преимущества интеграции — вы можете выбрать провайдера данных по вкусу. Я пробовал ноду Sunrise/Sunset в Nodered — оно в принципе работало, но были проблемы с чем-то — помоему с переводом часов. Не понравилось — выкинули, из библиотеки попробовали следующий вариант — их там кучи.
Я, в принципе для себя вообще взял Astro из Openhab. Там очень легкая настройка и куча параметров. Кстати рекомендую взглянуть https://www.openhab.org/addons/bindings/astro/ там и по Луне полно параметров, не знаю, правда, кому они нужны.
Тоже самое по погоде — в принципе мне датчик температуры воздуха на улице не нужен — просто берешь погоду в своем городе с любого сервиса и используешь, где нужно. Точность вполне нормальная.
Проект konbanwa