Еще раз про умный дом!

Что бы еще такого сделать?... Предлагайте! Обсудим все!!!
Аватара пользователя
SLvik
Друг Кота
Сообщения: 7622
Зарегистрирован: Ср май 28, 2008 00:32:54
Откуда: г. Россия
Контактная информация:

Сообщение SLvik »

Секретный кот писал(а):
Alex_EXE писал(а):2. чтобы модули были максимально консервативны, а если что-то поменять в программе или скрипте (по которому всё работает) работать нужно было только с главным модулем.

Всё же возможность иногда перешивать исполнительные модули я бы не исключал.

Особенно на первых стадиях обкатки программы.
Когда вдруг обнаруживается какая-нибудь ошибка в программе.
Я выключатели уже 2 раза перешивал.
Причём все 7шт. :)))
Первый раз через день после обкатки.
И второй раз обнаружилось чисто случайно - в доме выключали свет.
Прихожу доиой, а те выключатели которые были выключены командой по сети горят. :shock:
Пришлось исправлять одну строчку в программе.
И перешивать 7 контроллеров. :evil:
Реклама
Аватара пользователя
Alex_EXE
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Сб дек 27, 2008 12:01:35
Откуда: Россия, Екатеринбург
Контактная информация:

Сообщение Alex_EXE »

Секретный кот: а у вас что за система стоит?
про комп я имел следующее - эта материнка очень мало потребляет и мало греется (вентилятор можно будет на пассивный заменить), раз это ком то и возможностей больше будет, там хоть что городи, главное не перестараться, а то на стабильности скажется.

Хоть модули и максимально консервативны, но их всё же можно будет пере прошивать.

На счёт ICQ, на соте имею асю и очень часто в ней нахожусь, и для меня будет гораздо дешевле отправить сообщение по асе, чем СМС, конечно возможность работы СМС тоже буду рассматривать.

Секретный кот писал(а):
Alex_EXE писал(а):Сейчас думаю: на чём делать главный модуль? (правда до него ещё рановато, но всё равно думаю сейчас уже):
Как вариант – на нескольких процах (кто-то предложил, сейчас уже не помню). Один например отвечает за обмен по шине, второй за индикацию, третий за клавиатуру. Взаимная связь по I2C или SPI. Прелесть в том, что каждый проц может быть сравнительно слабым.
про многопроцессорность тоже думаю, очень нравиться так как сделано в компьютере: главный проц все управляет, а от него идёт общая шина к остальным процессорам и памяти.

Секретный кот писал(а):
Alex_EXE писал(а):очень понравилась идея всё дублировать: вылетит первый - его отрубает второй и продолжает работу).

Идея конечно хороша, но с реализацией придётся попотеть :))
тоже пока не представляю полностью, работаю на оборонке - там это распространено, вот идея и заразила.
Пока это представляю это так:
работаю оба модуля, выполняют одинаковые действия контролируют либо сами друг друга, либо есть сторонний наблюдатель, если что то пойдёт не так то инициативу берёт рабочий модуль, а не исправный пытается пере запустится.
Это можно сделать например добавив в код строки синхронизации и если синхр вовремя не придёт (устройства ведь одинаковы и выполняют один и тот же код) то не исправность
Реклама
Аватара пользователя
Секретный кот
Поставщик валерьянки для Кота
Сообщения: 2106
Зарегистрирован: Ср сен 17, 2008 14:32:15
Откуда: Старые Васюки
Контактная информация:

Сообщение Секретный кот »

Alex_EXE писал(а):Секретный кот: а у вас что за система стоит?

QNAP TS-109. Уже год не нарадуюсь (не сочтите за рекламу :)))).

Alex_EXE писал(а):раз это ком то и возможностей больше будет, там хоть что городи, главное не перестараться, а то на стабильности скажется.

Ну собственно NAS это и есть мини-комп :wink:. Причём что касается гибкости и стабильности – то они обеспечиваются встроенной ОС linux. А по энергопотреблению мне кажется вряд ли какой PC сможет конкурировать с NAS.

Alex_EXE писал(а):Пока это представляю это так:
работаю оба модуля, выполняют одинаковые действия контролируют либо сами друг друга, либо есть сторонний наблюдатель, если что то пойдёт не так то инициативу берёт рабочий модуль, а не исправный пытается пере запустится.

Тут есть один нюанс. Чтобы каждый модуль мог взять на себя управление, принудительно отключив второй, ему нужно дать соотвествующие права. При этом, если этому модулю всё-таки "снесёт крышу", с большой вероятностью он, пользуясь своими правами, заблокирует и работу второго модуля :)).
Даже остановленные часы два раза в сутки показывают правильное время.
Кашпо
Опытный кот
Сообщения: 764
Зарегистрирован: Пт фев 02, 2007 10:19:58
Откуда: Железногорск

Сообщение Кашпо »

тогда уж тройное резервирование и решение принимать путём "голосования" :))
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Секретный кот
Поставщик валерьянки для Кота
Сообщения: 2106
Зарегистрирован: Ср сен 17, 2008 14:32:15
Откуда: Старые Васюки
Контактная информация:

Сообщение Секретный кот »

Хотелось бы вернуться к вопросу помехоустойчивого протокола обмена по шине. Как один из способов защиты передаваемой информации годится расчёт и передача CRC(8 ). Но в этом случае только адресуемое устройство "может надеяться", что пакет принят правильно. Передатчик же остаётся не в курсе, принята его посылка или нет.
Конечно можно ввести "рапорт о приёме", но в любом случае последнее передавшее устройство не будет знать, правильно ли принят его пакет. Кто как решает эту проблему?
У меня пока сделано так: обратной связи нет, пакеты "мастера" с неверным CRC игнорируются периферией, при поступлении пакета с ошибкой CRC к "мастеру" он перезапрашивает информацию периферии.
Последний раз редактировалось Секретный кот Вс окт 04, 2009 21:08:48, всего редактировалось 1 раз.
Даже остановленные часы два раза в сутки показывают правильное время.
Реклама
Аватара пользователя
SLvik
Друг Кота
Сообщения: 7622
Зарегистрирован: Ср май 28, 2008 00:32:54
Откуда: г. Россия
Контактная информация:

Сообщение SLvik »

У меня пока нет CRC.
И так всё отлично работает со всеми стартёрными стартами ЛДС и пуском холодильника. :)))
Однако я сделал последний бит контрольным.
Принимающее устройство в конце приёма даёт 0ль на SDA если всё ОК.
Если передающий не получил 0ль - передача повторяется.

Тоже можно и с CRC замутить.
Во время приёма бит подсчитывается CRC.
Затем после окончания передачи самого CRC быстренько сравнивается подсчитанное с принятым и в случае совпадения выставляется 0ль.

Второе надёжнее конечно. :)
Реклама
Аватара пользователя
Секретный кот
Поставщик валерьянки для Кота
Сообщения: 2106
Зарегистрирован: Ср сен 17, 2008 14:32:15
Откуда: Старые Васюки
Контактная информация:

Сообщение Секретный кот »

А вообще это мысль. Что-то я перемудрил видимо :))
Можно же сделать и такую схему. Мастер по очереди обращается ко всем периферийным устройствам и слушает ответы. Ответы высылаются только если проверка CRC прошла успешно. А мастер в свою очередь определяет, что всё ОК, по наличию ответа с правильным CRC. Вроде всё сходится.

Ещё про шину. Раньше я предполагал сделать программно настраиваемую скорость обмена, задаваемую мастером. Например, мастер "выкрикивает" 9600 и все устройства переключаются на скорость 9600. Сейчас я решил не мудрить и установить фиксированную скорость. Вчера подготовил полевой эксперимент по определению макс. возможной скорости, но пока не успел его провести. Первая часть эксперимента заключается в передаче длинного текста с одной стороны шины и его выводе на LCD девайсом с другого конца. После получения предварительных результатов будет второй этап – засылка кучи случайно сформированных пакетов с CRC и построение графика количества ошибок CRC от скорости передачи. Далее в зависимости от этого графика будем вводить стандартную скорость обмена. "Вилка" примерно такая: 9600-57600, конечно хотелось бы побольше, но чтобы при этом без глюков.
Даже остановленные часы два раза в сутки показывают правильное время.
Аватара пользователя
SLvik
Друг Кота
Сообщения: 7622
Зарегистрирован: Ср май 28, 2008 00:32:54
Откуда: г. Россия
Контактная информация:

Сообщение SLvik »

Секретный кот писал(а):Можно же сделать и такую схему. Мастер по очереди обращается ко всем периферийным устройствам и слушает ответы. Ответы высылаются только если проверка CRC прошла успешно. А мастер в свою очередь определяет, что всё ОК, по наличию ответа с правильным CRC. Вроде всё сходится.

А зачем тогда CRC передавать. :shock:
Если можно просто записать в устройство тут-же считать записанное дабы удостовериться.
Зачем грузить шину.
Я бы советовал вам как писал выше и проверка займёт 1бит. :wink:
Ну во всяком случае у меня так, только без CRC. (Пока :wink: ).
Я сделаю опрос только при включении.
Дабы мастер знал что-где-зачем и почём.
А дальше все изменения будут приходить с датчиков.

Секретный кот писал(а):Ещё про шину. Раньше я предполагал сделать программно настраиваемую скорость обмена, задаваемую мастером.

Для "Умного дома" это лишнее.
Если использовать стандартный протокол типа RS232, тогда да.
А так.............. :roll:
Я сразу делал фиксированную скорость.
Причём какая она не знаю, не мерял.
Чисто программно написал по максимуму.
Пока сбоев не было, хоть и мало устройств - 8шт.

С пультами пока некогда возиться.
Так вроде готово только на Мастера программу дописывать надо, а там ещё дисплея нет. :? :cry:
Аватара пользователя
Секретный кот
Поставщик валерьянки для Кота
Сообщения: 2106
Зарегистрирован: Ср сен 17, 2008 14:32:15
Откуда: Старые Васюки
Контактная информация:

Сообщение Секретный кот »

SLvik писал(а):А зачем тогда CRC передавать. :shock:
Если можно просто записать в устройство тут-же считать записанное дабы удостовериться.

Как зачем – а как ещё исполнительное устройство поймёт, выполнять полученную команду или нет? :shock: Или оно сначала выполнит, а потом мастер увидит, что команда принята ошибочно :(

SLvik писал(а):Я бы советовал вам как писал выше и проверка займёт 1бит. :wink:

У меня такой вариант не пройдёт, т.к. шина основана на аппаратном UART и такой асинхронный 1 бит он просто не поймёт.

SLvik писал(а):Я сделаю опрос только при включении.
Дабы мастер знал что-где-зачем и почём.
А дальше все изменения будут приходить с датчиков.

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

SLvik писал(а):Для "Умного дома" это лишнее.
Если использовать стандартный протокол типа RS232, тогда да.

Ну собственно так и есть :wink: RS-232, 8/9 бит, n, 1. Но думаю что постоянное изменение скорости вряд ли понадобится в системе, поэтому пока будет фиксированная.
Даже остановленные часы два раза в сутки показывают правильное время.
Аватара пользователя
SLvik
Друг Кота
Сообщения: 7622
Зарегистрирован: Ср май 28, 2008 00:32:54
Откуда: г. Россия
Контактная информация:

Сообщение SLvik »

Секретный кот писал(а):Как зачем – а как ещё исполнительное устройство поймёт, выполнять полученную команду или нет? :shock: Или оно сначала выполнит, а потом мастер увидит, что команда принята ошибочно :(

Тогда сделайте постоянную CRC для всех команд и адресов
И устройство принявшее пакет данных высчитывает CRC и в случае совпадения выполняет программу.
Для этого необходим вспомогательный байт который и будет меняться взависимости от адреса и данных.
И при сложении всех трёх получается постоянная CRC.

Можно ещё считать 1цы в пакете и высылать их кол-во в последнем байте.
И устройство подсчитав 1цы сравнивает с числом в котором записано сколько их должно быть в пакете. - т.е. тоже чтото типа CRC.
Аватара пользователя
Секретный кот
Поставщик валерьянки для Кота
Сообщения: 2106
Зарегистрирован: Ср сен 17, 2008 14:32:15
Откуда: Старые Васюки
Контактная информация:

Сообщение Секретный кот »

SLvik писал(а):Тогда сделайте постоянную CRC для всех команд и адресов
И устройство принявшее пакет данных высчитывает CRC и в случае совпадения выполняет программу.

Ну в общем именно так и задумано :wink:. Иначе нет смысла передавать CRC, если принимающая сторона не будет его пересчитывать.
У меня на данный момент формат пакета такой: от мастера [адрес] [длина сообщения] [код канала/команда каналу] [дополнительные байты (при необходимости)] ... [CRC8 (пока всё тестирую, не реализована)]
ответ от периферии: [длина сообщения] [код ответа/ответ] [код ответа/ответ] ... [CRC8].
Каждый элемент в квадратных скобках = 1 байт. Адресный байт передаётся с установленным 9-м битом, его может формировать только мастер. Среди адресов выделяются широковещательный адрес (вероятно это будет FFh), постоянно опрашиваемые адреса датчиков (A0h-BFh) и групповые адреса (скажем E0h-FEh). Принадлежность каждого канала к одной из групп прописывается в EPROM периферийных устройств "по месту" соответствующими шинными командами. Предполагаю сделать возможность приписать один канал к нескольким группам одновременно. Например, светильник для цветов на кухне будет входить в группы "кухня" и "светильники для цветов", и соответственно слушаться команд из обеих групп :)

Самый простой вариант обмена: 4 байта от мастера (например 01 01 1A CRC – команда установить 10-й уровень мощности на 1 канале 1 контроллера), ответ 3 байта (01 1A CRC - уровень установлен, можно просто передавать условный код "ОК"). С учётом того, что такой обмен происходит от случая к случаю, эти 7 байт не представляют особой нагрузки на шину.

Расчёт CRC видимо надо делать для всех байт сообщения, как это сделано например в телефонном стандарте CLIP.

SLvik писал(а):И устройство подсчитав 1цы сравнивает с числом в котором записано сколько их должно быть в пакете. - т.е. тоже чтото типа CRC.

Главная прелесть CRC в том, что для её расчёта есть готовая функция – x=CRC8(msg, len) очень легко закладывается в любую программу. Там ещё кстати CRC16 и даже CRC32 есть, но это уже перебор :wink:
Последний раз редактировалось Секретный кот Пт окт 30, 2009 00:39:38, всего редактировалось 2 раза.
Даже остановленные часы два раза в сутки показывают правильное время.
Аватара пользователя
SLvik
Друг Кота
Сообщения: 7622
Зарегистрирован: Ср май 28, 2008 00:32:54
Откуда: г. Россия
Контактная информация:

Сообщение SLvik »

:idea: :idea: :idea: Сегодня, выходя из дома и забыв выключить свет в одной из комнат, подумал что нужно в прихожей на выключатель поставить ещё одну кнопку помимо света в прихожей, дабы она выключала свет везде. :)))
Если никого больше нет.
Аватара пользователя
Секретный кот
Поставщик валерьянки для Кота
Сообщения: 2106
Зарегистрирован: Ср сен 17, 2008 14:32:15
Откуда: Старые Васюки
Контактная информация:

Сообщение Секретный кот »

Ну так! Это одна из основных целей создания мной умного дома :))
Мастер-кнопки очень полезные штуки, и около дивана неплохо бы такую разместить, чтобы перед сном тушить все забытые утюги во всей квартире :)
Кстати а как у вас будет сделана общая адресация? Перебором всех адресов по очереди?
Даже остановленные часы два раза в сутки показывают правильное время.
Аватара пользователя
SLvik
Друг Кота
Сообщения: 7622
Зарегистрирован: Ср май 28, 2008 00:32:54
Откуда: г. Россия
Контактная информация:

Сообщение SLvik »

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

Секретный кот писал(а):Мастер-кнопки очень полезные штуки, и около дивана неплохо бы такую разместить, чтобы перед сном тушить все

Около дивана всё таки целесообразнее пульт разместить.

Секретный кот писал(а):Кстати а как у вас будет сделана общая адресация? Перебором всех адресов по очереди?

Общая это как.
Пока что общая у меня только команда сброса (00h) всех устройств.
И то я в раздумьи нужна ли она реально.
Но леплю пока во все устройства.

А вообще я устройства объединил в группы.
Но не так как вы по комнатам, а по функциональности - выключатели, утюги, телевизоры и т.п.
И мастеру достаточно указать адрес группы и данные для всей группы.
Например сейчас я могу одним нажатием кнопки на мастере выключить везде свет передав в данных 00h.
Или включить везде передав FFh.
Таким способом диапазон перебираемых адресов резко уменьшается. :wink:
Аватара пользователя
Секретный кот
Поставщик валерьянки для Кота
Сообщения: 2106
Зарегистрирован: Ср сен 17, 2008 14:32:15
Откуда: Старые Васюки
Контактная информация:

Сообщение Секретный кот »

SLvik писал(а):Около дивана всё таки целесообразнее пульт разместить.

Ну это да, у меня так и будет – по всей квартире действуют пульты, только в прихожей проводная панель. Там можно вывести до 12 кнопок, сейчас как раз думаю, какие сделать. Одна из них точно будет "мастер" на выключение всего.

SLvik писал(а):
Секретный кот писал(а):Кстати а как у вас будет сделана общая адресация? Перебором всех адресов по очереди?

Общая это как.

Ну общая это когда все устройства обязаны подчиниться 8). У меня пока предусмотрен общий адрес 0FFh, по которому можно послать одну команду: всё выключить (и абсолютно всё включённое в данный момент выключается). Так реализуется функция мастер-кнопок.

SLvik писал(а):Пока что общая у меня только команда сброса (00h) всех устройств.
И то я в раздумьи нужна ли она реально.
Но леплю пока во все устройства.

Сброс – это выключение всех реле/каналов? Если да, то как же без этого сделать кнопку в прихожей.

SLvik писал(а):А вообще я устройства объединил в группы.
Но не так как вы по комнатам, а по функциональности - выключатели, утюги, телевизоры и т.п.

У меня просто можно группы задавать произвольно :wink:. И например датчик присутствия отключает всё в группе "комната 1", а таймер включает всё в группе "свет для растений", соответственно всё управляется по-своему, но минимумом команд.

SLvik писал(а):Например сейчас я могу одним нажатием кнопки на мастере выключить везде свет передав в данных 00h.
Или включить везде передав FFh.
Таким способом диапазон перебираемых адресов резко уменьшается. :wink:

А адрес, адрес-то какой передаётся для этой команды? У меня даже для групп предусмотрены свои адреса.
Даже остановленные часы два раза в сутки показывают правильное время.
Аватара пользователя
SLvik
Друг Кота
Сообщения: 7622
Зарегистрирован: Ср май 28, 2008 00:32:54
Откуда: г. Россия
Контактная информация:

Сообщение SLvik »

Секретный кот писал(а):только в прихожей проводная панель. Там можно вывести до 12 кнопок, сейчас как раз думаю, какие сделать. Одна из них точно будет "мастер" на выключение всего.

Я сделаю одну.
Чем проще тем лучше.
А типа напоминаний думаю панельку со светодиодами повесить.
Если какой-нибудь горит - значит чтото не выключено.

Секретный кот писал(а):Ну общая это когда все устройства обязаны подчиниться 8). У меня пока предусмотрен общий адрес 0FFh, по которому можно послать одну команду: всё выключить (и абсолютно всё включённое в данный момент выключается). Так реализуется функция мастер-кнопок.

Можно и так сделать, но возможно не всё нужно выключать.
А адрес FFh у меня зарезервирован за автоматическим назначением адресов на устройства (Которого пока нет. :))) )
Дело в том что я пишу адрес устройства в EEPROM контроллера.
Программа при старте считывает его оттуда и использует для дальнейшей идентификации.
Если контроллер новый то адрес всегда будет FFh.
По нему можно определить новое устройство на шине. :)

Секретный кот писал(а):Сброс – это выключение всех реле/каналов? Если да, то как же без этого сделать кнопку в прихожей.

Нет сброс программный.
Т.е. после сброса устройства восстанавливают свои состояния из EEPROM.

Секретный кот писал(а):У меня просто можно группы задавать произвольно :wink:. И например датчик присутствия отключает всё в группе "комната 1",.

Так телевизор быстро сломается если каждый раз включать - выключать.
Всё сразу низя выключать.
Сначала свет, затем телевизор и т.д.

Секретный кот писал(а):а таймер включает всё в группе "свет для растений", соответственно всё управляется по-своему, но минимумом команд.

Ну для этого достаточно сделать свет для растений группой.
И выключать обратившись ко всей группе.

Секретный кот писал(а):
SLvik писал(а):Например сейчас я могу одним нажатием кнопки на мастере выключить везде свет передав в данных 00h.
Или включить везде передав FFh.
Таким способом диапазон перебираемых адресов резко уменьшается. :wink:

А адрес, адрес-то какой передаётся для этой команды? У меня даже для групп предусмотрены свои адреса.

Адрес группы передаётся и вся группа загружает принимаемые данные. :)))
Аватара пользователя
stalker_radiokot
Нашел транзистор. Понюхал.
Сообщения: 152
Зарегистрирован: Пт сен 18, 2009 08:38:57

Сообщение stalker_radiokot »

Ребят, я может конечно сморожу глупость, но почему бы Вам не пойти по стопам протоколов tcp/ip ? tcp например избыточен, а вот udp подойдет. Вообщем туда посмотреть надо, и по контрольным пакетам и по адресации из 4 байт и броадкасты уже придуманы и если что, интегрировать в лвс проще.
Аватара пользователя
Секретный кот
Поставщик валерьянки для Кота
Сообщения: 2106
Зарегистрирован: Ср сен 17, 2008 14:32:15
Откуда: Старые Васюки
Контактная информация:

Сообщение Секретный кот »

SLvik писал(а):Я сделаю одну.
Чем проще тем лучше.
А типа напоминаний думаю панельку со светодиодами повесить.
Если какой-нибудь горит - значит чтото не выключено.

Вот для этого у меня на каждой кнопке будет индикатор :wink:

SLvik писал(а):А адрес FFh у меня зарезервирован за автоматическим назначением адресов на устройства (Которого пока нет. :))) )

Это ИМХО лишнее. Я сначала тоже рассматривал варианты 1) писать адрес в EPROM с возможностью его менять по шине, 2) Использовать систему адресации по аналогии с MAC/IP (жёстко фиксированный+программно назначаемый адреса), 3) задавать адрес джамперами прямо на устройстве. В итоге просто жёстко прошиваю адрес во FLASH :)). А адресация отдельных каналов танцует уже от него, таким образом у каждой нагрузки автоматом получается свой уникальный адрес в системе.

SLvik писал(а):после сброса устройства восстанавливают свои состояния из EEPROM.

А зачем это? Это ведь получается всё равно выключение всех нагрузок+инициализация переменных, как при передергивании питания?

SLvik писал(а):
Секретный кот писал(а):датчик присутствия отключает всё в группе "комната 1",.

Так телевизор быстро сломается если каждый раз включать - выключать.

Ну во-первых телевизоры и прочая управляемая ИК-пультами техника и так не должна входить в общие группы со светом. А во-вторых можно же сделать задержку, например если в комнате никого нет 30 минут, то телевизор гасится и после появления людей автоматически не включается (только вручную). Такие вещи реализуются через т.н. сценарии, про которые я писал раньше.

SLvik писал(а):
Секретный кот писал(а):а таймер включает всё в группе "свет для растений"

Ну для этого достаточно сделать свет для растений группой.

Я это собственно к тому, что группы могут "пересекаться" :roll:. То есть если например я ушёл из дома и выключил группу "комната 1", автоматическая команда "включить группу "свет для цветов"" включит его в том числе и в комнате 1. Естественно, не затрагивая остальные нагрузки.

stalker_radiokot писал(а):почему бы Вам не пойти по стопам протоколов tcp/ip ?

У меня в системе планируется 12-16 адресуемых узлов, висящих на шине в разных точках квартиры. Идея заменить их 12-16 компами с LAN-интерфейсами мне почему-то не нравится :lol:
P.S. Или предлагается взять оттуда только логику протокола? Для этого у нас не те скорости шины, да и интеграция с ЛВС всё равно будет делаться через узловой компьютер.
Даже остановленные часы два раза в сутки показывают правильное время.
Аватара пользователя
Alex_EXE
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Сб дек 27, 2008 12:01:35
Откуда: Россия, Екатеринбург
Контактная информация:

Сообщение Alex_EXE »

Пока в качестве базового устройства планирую использовать компьютер (это конечно легче, но это только по началу, потом скорее всего буду на МК переводить) так там, закончил недавно написания движка для плана, который недавно публиковал, вот на нём скрипты хорошо будет делать, сейчас тестирую и наращиваю его.
Аватара пользователя
SLvik
Друг Кота
Сообщения: 7622
Зарегистрирован: Ср май 28, 2008 00:32:54
Откуда: г. Россия
Контактная информация:

Сообщение SLvik »

Секретный кот писал(а):Вот для этого у меня на каждой кнопке будет индикатор :wink:

У меня в выключателях даже два :wink: , ну вы в курсе. :)))

Секретный кот писал(а):
SLvik писал(а):А адрес FFh у меня зарезервирован за автоматическим назначением адресов на устройства (Которого пока нет. :))) )

Это ИМХО лишнее.

Может быть. :roll:
Я пока не реализовал эту функцию в "Мастере".
Хотя устройства все имеют её.

Секретный кот писал(а):Я сначала тоже рассматривал варианты......
В итоге просто жёстко прошиваю адрес во FLASH :)). А адресация отдельных каналов танцует уже от него, таким образом у каждой нагрузки автоматом получается свой уникальный адрес в системе.

Я заколебался исправлять одну и ту-же константу с адресом в программе, а потом каждый раз её копилировать, загружать в программатор и прошивать. :evil:
В итоге программа одна.
Только загружаешь в программатор и только сам пишешь адрес в EEPROM прямо в программаторе вручную и зашиваешь.
Пока автораздатки нет.
Что в автораздатке неудобно - нужно включать каждое устройство по одному.
А то при включении нескольких все они получат одинаковый адрес. :)))
Программно зашиты только адреса групп.

Секретный кот писал(а):
SLvik писал(а):после сброса устройства восстанавливают свои состояния из EEPROM.

А зачем это? Это ведь получается всё равно выключение всех нагрузок+инициализация переменных, как при передергивании питания?.

Вот и я думаю.............
Хотя пусть пока будет.
Места в контролере до ж(Ой) :oops: :roll:

Секретный кот писал(а):
SLvik писал(а):
Секретный кот писал(а):датчик присутствия отключает всё в группе "комната 1",.

Так телевизор быстро сломается если каждый раз включать - выключать.

Ну во-первых телевизоры и прочая управляемая ИК-пультами техника и так не должна входить в общие группы со светом.

Ну по идее групп можно налепить на одно устройство сколько хош,
Так что в принципе это не столь важно. :wink:
Например для выключателя на кухне можно присвоить группу "Выключатели" и "Кухонное устройство". :)))

Секретный кот писал(а):А во-вторых можно же сделать задержку, например если в комнате никого нет 30 минут, то телевизор гасится и после появления людей автоматически не включается (только вручную). Такие вещи реализуются через т.н. сценарии, про которые я писал раньше.

Ну это всё "обкатается" эксперементальным путём.
Так что пока рано об этом.
Ответить

Вернуться в «Умные мысли»