Как лучше? Сенсоры по категориям или в каждую комнату?

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Как лучше? Сенсоры по категориям или в каждую комнату?

Сообщение lanket » Ср мар 16, 2016 1:06 am

ErmolenkoM писал(а): .........
Потом только заметил Вашу подпись "aka msh555" со знакомым ником.

У Вас же в коннекте таже история ручками слепляли типы датчиков с названиями комнат.
Может это было постепенно вот и не придали значения этому трудоемкому занятию.
Да и сенсоров у Вас не мало.

Тогда я Вас вообще не понимаю.

Пусть голосование решит целесообразность этой трудоемкой, по Вашему мнению, задаче. если такое здесь возможно.
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Как лучше? Сенсоры по категориям или в каждую комнату?

Сообщение olehs » Ср мар 16, 2016 1:11 am

Код: Выделить всё

for($i=1; $i<=10; $i++) addClassObject("tempSensors", "TempSensor".$i); 
За это сообщение автора olehs поблагодарил:
lanket (Ср мар 16, 2016 10:15 am)
Рейтинг: 1.16%
ErmolenkoM
Сообщения: 560
Зарегистрирован: Ср сен 04, 2013 10:31 am
Откуда: Самара
Благодарил (а): 99 раз
Поблагодарили: 140 раз
Контактная информация:

Re: Как лучше? Сенсоры по категориям или в каждую комнату?

Сообщение ErmolenkoM » Ср мар 16, 2016 9:49 am

lanket писал(а):.........
Хочу попросить прощения у уважаемого lanket, если мои посты выглядят воинственно и категорично. Еще раз повторю: ничего личного. Наверное сказывается возраст и профдеформация. На самом деле я добрый белый и пушистый, но сквозь сито интернета остается склочная скандальная натура.
Конечно вы правы, кому-то механизм может пригодится. Даже если это будет один человек - уже хорошо. Сейчас есть механизм копирования объекта. Ничего плохого не случится, если нажатием одной кнопки можно будет создать не один, на несколько штук сразу. Вообщем при здравом рассуждении даже тема для дискуссии отсутствует.

По поводу моего (msh555) коннекта. Если к нему присмотреться по-внимательнее можно увидеть, что все объекты разные. для копирования подошли бы вот эти: люстра-зал, люстра-спальня, люстра-теалет, люстра-кухня, люстра-корридор. Бра есть только на кухне и в спальне. В кухне и туалете - вытяжка. В туалете теплый пол. В коридоре - подсветка РГБ. В зале управляемая розетка. Выключатели - это полный хаос :-). Есть проходные, есть дублирующие, есть вообще скрипты которые запускают.
Подводя итог: лично мне матрица создания помогла бы создать только люстры - они есть в каждой комнате. Но люстры я создал копированием первой люстры.

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

Всем добра.
За это сообщение автора ErmolenkoM поблагодарил:
lanket (Ср мар 16, 2016 10:15 am)
Рейтинг: 1.16%
aka msh555
Cubian на Cubietruck, Connect
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Как лучше? Сенсоры по категориям или в каждую комнату?

Сообщение lanket » Ср мар 16, 2016 11:39 pm

ErmolenkoM писал(а):
lanket писал(а):.........
Хочу попросить прощения у уважаемого lanket, если мои посты выглядят воинственно и категорично.
...
Всем добра.
Честно говоря не обидели. Я просто вспыльчив и имоционален по натуре. Правда. Просто хотел избавить остальных от рутины.
Нумеровать сенсоры на мой взгляд неудобно, не сравнив с какой либо таблицей кто он или не заглянув внутрь не поймешь.
В Коде упоминать их тоже неудобно.
Почему тогда классы называются именами, давайте просто калсс1 - это комнаты, класс 2 - сенсоры, класс 3-система
И будем в голове держать соотношение номеров к названиям.

Но все равно спасибо.

Даже + в вашу сторону за радение за проект.

Я новичок в МДМ в отличчи от Вас. Да и по программированию на порядок ниже уровнем в сравнении с Вами.
Вполне вероятно что чего то недопонимаю.

Просто заводя сенсоры в МДМ столкнулся с рутинной и однообразной работой. А у програм эно из св-в избавлять от рутины. Тем более когда идет простое скрещивание двух "таблиц". Увидя что у большенства такойже принцип попробывал внести свой вклад облегчив настройку с нуля.

Может и объекты и отличаются друг от друга, в вашем случае методы там разные. Но сначала вы же добавили обект, прописали связки к ним, обозвали его както пусть даже только типом датчика+его номер. И только потом добавили функционал. Так Вы могли бы избавиться от предыдущей рутины. Пример то чего я хочу у себя дома на скрепке. Проставив галочки напротив Термодатчика в тех комнатах где они будут, ржд ленты только туда где будут, также с бра, выключателями, прожекторами и тд. тд. В результате получишь нужный набор объектов избавясь от рутины, а потом тратишь время только на реализацию идей на творчество в МДМ. На полет фантазии а не на рутину убивая стимул у новичков. На скрепке пример интерфейса после указания какие классы комнаты и какие классы подлежат клонированию. Зеленые квадратики это отмеченные галочки.

Результат получется 251 объект надо добавить ручками выполняя обезьянью работу.
Превратим в человкочасы 251 * 5 ручных вводов = 1255 раз не ошибиться ввести название комнаты/датчика и 251* 2 точного попадания в выпадающем меню = 502 раза без права на ошибку во избежания глюков.
Не замерял конечно скорость но думаю во первых это невыгодно с коммерчкеской точки зрения если продвигать этот проект инсталяторам. Во вторых после 300-500 таканей и вводов глаза в кучу мозги навылет и процент ошибок будет увеличиваться с каждой сотней.

Я потратил на составление таблицы 30 минут. Зметьте не рутиной зщанимался а полетом фантазии.
А результат 251 объект с правильными названиями и ссылками на LinketRoom (хотелось бы чтобы эти объекты и вправду уже были созданы)
В споллере результат работы макроса в Excel
СпойлерПоказать
HallTemp
PentHouse1Temp
PentHouse2Temp
TerraceTemp
InFrontOfTheHouseTemp
EntranceToTheHouseTemp
InBackOfTheHouseTemp
BoilerHouseTemp
PlotTemp
GateTemp
HallHumidity
StairwayHumidity
TerraceHumidity
InFrontOfTheHouseHumidity
EntranceToTheHouseHumidity
InBackOfTheHouseHumidity
BoilerHouseHumidity
PlotHumidity
GateHumidity
UnderFloorLight
CorridorLight
PentHouse1Light
PentHouse2Light
TerraceLight
InFrontOfTheHouseLight
EntranceToTheHouseLight
InBackOfTheHouseLight
BoilerHouseLight
PlotLight
GateLight
BalconySmoke
TerraceSmoke
InFrontOfTheHouseSmoke
EntranceToTheHouseSmoke
InBackOfTheHouseSmoke
PlotSmoke
GateSmoke
LivingroomGas
BathroomGas
HallGas
StairwayGas
CorridorGas
CabinetGas
BedroomGas
KinderroomGas
PentHouse1Gas
PentHouse2Gas
BalconyGas
TerraceGas
InFrontOfTheHouseGas
EntranceToTheHouseGas
InBackOfTheHouseGas
BathHouseGas
PlotGas
GateGas
UnderFloorMq135
HallMq135
StairwayMq135
PentHouse1Mq135
PentHouse2Mq135
BalconyMq135
TerraceMq135
InFrontOfTheHouseMq135
EntranceToTheHouseMq135
InBackOfTheHouseMq135
BoilerHouseMq135
BathHouseMq135
PlotMq135
GateMq135
LivingroomWater
HallWater
StairwayWater
CorridorWater
CabinetWater
BedroomWater
KinderroomWater
PentHouse1Water
PentHouse2Water
BalconyWater
TerraceWater
InFrontOfTheHouseWater
EntranceToTheHouseWater
InBackOfTheHouseWater
PlotWater
GateWater
PentHouse1Pir
PentHouse2Pir
CorridorDoor
PentHouse1Door
PentHouse2Door
TerraceDoor
InFrontOfTheHouseDoor
EntranceToTheHouseDoor
InBackOfTheHouseDoor
PlotDoor
UnderFloorWindow
HallWindow
StairwayWindow
CorridorWindow
PentHouse1Window
PentHouse2Window
BalconyWindow
TerraceWindow
InFrontOfTheHouseWindow
EntranceToTheHouseWindow
InBackOfTheHouseWindow
PlotWindow
GateWindow
HallHereSomebody
StairwayHereSomebody
CorridorHereSomebody
PentHouse1HereSomebody
PentHouse2HereSomebody
BalconyHereSomebody
TerraceHereSomebody
InFrontOfTheHouseHereSomebody
EntranceToTheHouseHereSomebody
InBackOfTheHouseHereSomebody
PlotHereSomebody
BalconyChandelier
TerraceChandelier
InFrontOfTheHouseChandelier
EntranceToTheHouseChandelier
InBackOfTheHouseChandelier
PlotChandelier
GateChandelier
KitchenBra
UnderFloorBra
HallBra
StairwayBra
CorridorBra
PentHouse1Bra
PentHouse2Bra
InFrontOfTheHouseBra
EntranceToTheHouseBra
InBackOfTheHouseBra
BoilerHouseBra
PlotBra
GateBra
HallSocket
StairwaySocket
CorridorSocket
PentHouse1Socket
PentHouse2Socket
BalconySocket
TerraceSocket
EntranceToTheHouseSocket
InBackOfTheHouseSocket
BathHouseSocket
PlotSocket
GateSocket
LivingroomProjector
KitchenProjector
BathroomProjector
UnderFloorProjector
HallProjector
StairwayProjector
CorridorProjector
CabinetProjector
BedroomProjector
KinderroomProjector
PentHouse1Projector
PentHouse2Projector
BalconyProjector
TerraceProjector
BoilerHouseProjector
BathHouseProjector
LivingroomDeskLamp
BathroomDeskLamp
HallDeskLamp
StairwayDeskLamp
CorridorDeskLamp
PentHouse1DeskLamp
PentHouse2DeskLamp
BalconyDeskLamp
TerraceDeskLamp
InFrontOfTheHouseDeskLamp
EntranceToTheHouseDeskLamp
InBackOfTheHouseDeskLamp
BathHouseDeskLamp
PlotDeskLamp
GateDeskLamp
UnderFloorShutter
HallShutter
StairwayShutter
CorridorShutter
PentHouse1Shutter
PentHouse2Shutter
BalconyShutter
TerraceShutter
InFrontOfTheHouseShutter
EntranceToTheHouseShutter
InBackOfTheHouseShutter
BoilerHouseShutter
PlotShutter
GateShutter
HallHood
StairwayHood
PentHouse1Hood
PentHouse2Hood
BalconyHood
TerraceHood
InFrontOfTheHouseHood
EntranceToTheHouseHood
InBackOfTheHouseHood
PlotHood
GateHood
LivingroomWardrobe
BathroomWardrobe
StairwayWardrobe
CorridorWardrobe
PentHouse1Wardrobe
PentHouse2Wardrobe
BalconyWardrobe
TerraceWardrobe
InFrontOfTheHouseWardrobe
EntranceToTheHouseWardrobe
InBackOfTheHouseWardrobe
PlotWardrobe
GateWardrobe
BathroomShelf
HallShelf
StairwayShelf
CorridorShelf
PentHouse1Shelf
PentHouse2Shelf
BalconyShelf
TerraceShelf
InFrontOfTheHouseShelf
EntranceToTheHouseShelf
InBackOfTheHouseShelf
BoilerHouseShelf
BathHouseShelf
PlotShelf
GateShelf
KitchenRgb
BathroomRgb
UnderFloorRgb
HallRgb
StairwayRgb
CorridorRgb
CabinetRgb
PentHouse1Rgb
PentHouse2Rgb
BalconyRgb
TerraceRgb
InFrontOfTheHouseRgb
EntranceToTheHouseRgb
InBackOfTheHouseRgb
BoilerHouseRgb
PlotRgb
GateRgb
Только это еще было бы по классам разбито. Но не красота ли. Удобно понятно. Без ошибок.
Останеться только дальше заниматься творчеством и наделять все это добро функционалом.
Причем мне кажеться лбвиную долю функионал унаследует у классов/подклассов.

Вы уж тоже простите за настырность, но я не понимаю как Вы не видете этой рутины. Ладно если с ЗП можешь купить только один сенсор, так и можно ручками добавлять. И модуль такой даром не нужен. А если подходить потоково или более масштабно то ручки устанут.

Все равно тут высказалось 2 мнения по этому вопросу:
мое за такой модуль
и ваше мнение как ненужный функционал

Еще мне показалось что Михаил_Калуга что то похожее пытался донести.

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

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

Просьба остальных участников форума если не затруднит высказать свое мнение по вопросу. Или хотябы просто написать За или против.

Отталкиваться от 2х мнений неправильно - это не статистика. Тем более что они оба сильно противоречивы.


С уважением к Вам, остальным участникам и конечно к Сергею.
Вложения
2016-03-16 23-06-58 Microsoft Excel (Сбой активации продукта) - Сенсоры.png
2016-03-16 23-06-58 Microsoft Excel (Сбой активации продукта) - Сенсоры.png (38.88 КБ) 5950 просмотров
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Как лучше? Сенсоры по категориям или в каждую комнату?

Сообщение lanket » Ср мар 16, 2016 11:51 pm

olehs писал(а):

Код: Выделить всё

for($i=1; $i<=10; $i++) addClassObject("tempSensors", "TempSensor".$i);
Спасибо за подсказку.
Еще не пробовал но я так понимаю это добавит 10 пронумерованных объектов TempSensor.
Сегодня попытаюсь еще поизучать как построить дерево и получить массив для реализации скрещивания "шаблонов" и комнат.

:D что то я увлекся. Такое впечатление что за это время и усилий уже бы и сам написал с местными подсказками что то типа тупого перемноживания "шаблонов" и комнат а потом бы поудалял ненужные. Но это мне кажется тоже не совсем правильно засорять базу.

Но это бы решило только мою задачу.

А если я прав и я не одинок с такой проблемкой. То жалко сталобы других мучеников ручного набивания базы сенсоров и потеренных инсталяторов которые бы массово несли идею МДМ в мир.

Правда кто-нибудь то скажите свое мнение еще. может и правда зря тратил Ваше время. и никому это не надо?

Аргументы исчерпаны. Умываю руки. Простите если что не так или кого обидел. Правда хотел на благо проекта.
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Как лучше? Сенсоры по категориям или в каждую комнату?

Сообщение lanket » Чт мар 17, 2016 12:30 am

Блин сразуже столкнулся с камнем.

Как получить массив Дочерних классов. К примеру в описании есть такое
$objects=getObjectsByClass("class_name");

В переменной в результате массив объектов класса.

А если в классе есть дочерние-расширяющие классы.
Из скрепки: Класс Sensor имеет дочки Clones, State,Value
А Класс State имеет расширяющие классы Door,InPir, OutPir,Window

Какой командой получить массив Clones, State,Value из класса Sensor
и соответственно Door,InPir, OutPir,Window из State

Либо многомерный массив со всем нутром из Sensor.

И какой командой добавить свойство объекту?

Заранее спасибо.
Вложения
2016-03-17 00-26-26 Панель управления - Mozilla Firefox.png
2016-03-17 00-26-26 Панель управления - Mozilla Firefox.png (9.82 КБ) 5939 просмотров
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Как лучше? Сенсоры по категориям или в каждую комнату?

Сообщение lanket » Чт мар 17, 2016 12:43 am

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

Ради аргументов был создан Excel и там уже сделана обработка кого где добавить с проставленными "галочками".

Нарисую макрос который создат строковый массив для того чтобы эту строку потом скрипт уже в МДМ настряпал объектов.

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

Просьба подсказать какой командой добавлять свойства объекту.

Остальное думаю осилю сам.

Спасибо всем. Вы хорошие люди.

Всем добра.
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Как лучше? Сенсоры по категориям или в каждую комнату?

Сообщение olehs » Чт мар 17, 2016 12:56 am

Как часто Вы собираетесь создавать 250 датчиков? Если часто, создайте сценарий.
А так, забейте имена классов в массив и по нему создайте объекты.

Код: Выделить всё

$classes = array("Door", "InPir", "OutPir", "Window");

$rooms = getObjectsByClass("Rooms");
for($k=0; $k<count($rooms); $k++) {
  $room = $rooms[$k];
  for($j=0; $j<count($classes); $j++) {
    $class = $classes[$j];
    $objName = $room.$class;
    addClassObject($class, $objName);
    sg($objName.".LinkedRoom", $room);
  }
}
Как-то так. Потом лишние проще удалить.
За это сообщение автора olehs поблагодарил:
lanket (Чт мар 17, 2016 1:11 am)
Рейтинг: 1.16%
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Как лучше? Сенсоры по категориям или в каждую комнату?

Сообщение lanket » Чт мар 17, 2016 1:21 am

olehs писал(а):Как часто Вы собираетесь создавать 250 датчиков? Если часто, создайте сценарий.
А так, забейте имена классов в массив и по нему создайте объекты.

Код: Выделить всё

$classes = array("Door", "InPir", "OutPir", "Window");

$rooms = getObjectsByClass("Rooms");
for($k=0; $k<count($rooms); $k++) {
  $room = $rooms[$k];
  for($j=0; $j<count($classes); $j++) {
    $class = $classes[$j];
    $objName = $room.$class;
    addClassObject($class, $objName);
    sg($objName.".LinkedRoom", $room);
  }
}
Как-то так. Потом лишние проще удалить.
Вы наверно не увидели потом постов.
Сначала я так и подумал наплодив потом удалить.

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

Не хватает мне для счастья только команды добавить св-во к обекту.

Наковырял в wwwroot\lib\objects.class.php команду addClassProperty($class_name, $property_name, $keep_history = 0)

Но не нашёл addObjectProperty($object_name, $property_name, $keep_history = 0) или что-то похожее.

Исходя из увиденного примера кода от Вас. Вы св-ву LinketRoom, которое не добалялось вновь созданному объекту, сразу присваеваете значение.

:?: Означает ли что МДМ не увидев этого св-ва у объекта автоматом его создаст?

Если так то будет и мне счастье. Потом сюда выложу готовые макросы в Excell и скрипт для МДМ если вдруг кому пригодиться. А то вдруг я не один такой ;)


А на счет часто, я же писал что себе любимому делаю мечту детства. Не инсталлер я. А просто мечтатель. Наконец построил сой дом, а не съемные квартиры, вот и воплащаю давнюю мечту.
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Как лучше? Сенсоры по категориям или в каждую комнату?

Сообщение lanket » Чт мар 17, 2016 1:26 am

olehs писал(а):Как часто Вы собираетесь создавать 250 датчиков? Если часто, создайте сценарий.
А так, забейте имена классов в массив и по нему создайте объекты.

Код: Выделить всё

$classes = array("Door", "InPir", "OutPir", "Window");

$rooms = getObjectsByClass("Rooms");
for($k=0; $k<count($rooms); $k++) {
  $room = $rooms[$k];
  for($j=0; $j<count($classes); $j++) {
    $class = $classes[$j];
    $objName = $room.$class;
    addClassObject($class, $objName);
    sg($objName.".LinkedRoom", $room);
  }
} 
Как-то так. Потом лишние проще удалить.

Блин бошка уже не работает. Спать пора. У нас тут уже пол второго. А встаю я в 6:40. И сегодняшнее утро с предыдущими не исключение.

Это свойство наследуется от родителя.
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Ответить