Время изменения свойства

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

Модератор: immortal

AK1
Сообщения: 140
Зарегистрирован: Чт фев 13, 2020 6:39 pm
Благодарил (а): 23 раза
Поблагодарили: 33 раза

Re: Время изменения свойства

Сообщение AK1 » Пн авг 15, 2022 6:33 pm

Любую задачу можно решить несколькими способами.
В данном случае можно при каждом изменении дописывать необходимый параметр контроля.
А можно периодически делать проверку всего разом.
Это зависит от потребности владельца системы. Его хотелок.

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

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

2-я проблема. Неделю назад пропал интернет. Естественно перезагрузил роутер. Нет синхронизации времени. Некоторые контроллеры потеряли время и перестали адекватно работать. Срочно пришлось делать свой локальный ntp сервер с часами. Хорошо хоть, что часть устройств в системе 1М со своим локальным сервером ntp
Logrus
Сообщения: 2079
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Время изменения свойства

Сообщение Logrus » Пн авг 15, 2022 6:41 pm

AK1 писал(а):
Пн авг 15, 2022 6:33 pm
Любую задачу можно решить несколькими способами.
В данном случае можно при каждом изменении дописывать необходимый параметр контроля.
А можно периодически делать проверку всего разом.
Это зависит от потребности владельца системы. Его хотелок.

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

и поверх этого наговнокожена офигительная логика с кучей запросов каждые 5 секунд (даже если это не в системстатес или реже, все равно это можно одним селектом в табличку в памяти, а не кучей по всем таблицам как в примере)
для контроля значения свойства аливе и формирования текста
это ужасно :shock:

п.с. юзеры применяют функции, а то что в них происходит не видят и ....
п.п.с. а то что нужен контроль всего и оно не может быть нормально описано только аливе, т.к. есть и таймштамп и уровень заряда, хартбиты, уровень сигнала, пинг или вообще отсутствие всего выше и только управление из мдм без хартбита, каллбека
поэтому все выше в аливе универсально не запихнуть
поэтому проще разделять на разные свойства (и тут ПУ с аливе (((( )
а уже это без оверхедной долбежки бд табличек на хдд можно одним селектом в памяти сделать ;) (почувствуй разницу)
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

Re: Время изменения свойства

Сообщение Bagir » Пн авг 15, 2022 10:01 pm

Logrus писал(а):
Пн авг 15, 2022 6:08 pm
куча нафиг не нужных запросов, поллингом а не реакция по изменению свойства
Я так понял камень в мой огород :D И это не про функцию, а про периодический запуск сценария поиска дохляков. Снимаю шляпу, это правда. Сам ненужный поллинг не приветствую. Каждый часик вроде запускается. Когда давно писал это, оставил себе заметку переделать вызов по возникновению соответствующих событий. Вот только событий много, поэтому руки так и не дошли. Но заметочка висит, ждет своего часа.
Это не по теме, так что лучше забудем :roll: Изначально писал этот скрипт чтобы табличку составлять для домашних страниц.
А что на счет функции? Правильно ли я понимаю связки таблиц? У меня сейчас всё берется сразу из pvalues по PROPERTY_NAME, длинный путь получения свойства objects>properties>pvalues не выполняется. Колонка PROPERTY_NAME заполнена у всех.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Время изменения свойства

Сообщение xor » Пн авг 15, 2022 10:17 pm

Bagir писал(а):
Пн авг 15, 2022 10:01 pm
Logrus писал(а):
Пн авг 15, 2022 6:08 pm
куча нафиг не нужных запросов, поллингом а не реакция по изменению свойства
Я так понял камень в мой огород :D И это не про функцию, а про периодический запуск сценария поиска дохляков. Снимаю шляпу, это правда. Сам ненужный поллинг не приветствую. Каждый часик вроде запускается. Когда давно писал это, оставил себе заметку переделать вызов по возникновению соответствующих событий. Вот только событий много, поэтому руки так и не дошли. Но заметочка висит, ждет своего часа.
Это не по теме, так что лучше забудем :roll: Изначально писал этот скрипт чтобы табличку составлять для домашних страниц.
А что на счет функции? Правильно ли я понимаю связки таблиц? У меня сейчас всё берется сразу из pvalues по PROPERTY_NAME, длинный путь получения свойства objects>properties>pvalues не выполняется. Колонка PROPERTY_NAME заполнена у всех.
ну хранение в нескольких местах одного и того же (я про проперти_нейм) это вообще нарушение построения реляционных бд) а так в системе, к сожалению, затруднён доступ (вернее, упущен при начальной реализации) к времени обновления свойства( теперь приходится выкручиваться. а для объектов создавать спецсвойства типа ластапдатед, дублирующие то же время, что и в поле апдатед его же в пвалюес.
хотя я в счетчиках и искусственно пишу в поле апдатед при "закрытии" отчетного периода
2022-08-15_22-16-17.png
2022-08-15_22-16-17.png (32.58 КБ) 764 просмотра
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

Re: Время изменения свойства

Сообщение Bagir » Пн авг 15, 2022 10:29 pm

xor писал(а):
Пн авг 15, 2022 10:17 pm
ну хранение в нескольких местах одного и того же (я про проперти_нейм) это вообще нарушение построения реляционных бд)
Как я понимаю, идея PROPERTY_NAME была в том, чтобы лишний раз не шариться по всем таблицам objects>properties>pvalues
xor писал(а):
Пн авг 15, 2022 10:17 pm
для объектов создавать спецсвойства типа ластапдатед, дублирующие то же время, что и в поле апдатед его же в пвалюес.
Не всегда возможно. Например в объекты класса Rooms стекаются всевозможные свойства температуры, влажности, освещенности и ещё куча всего. Но при этом, ластапдатед интересует не общий, а для каждого свойства.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Logrus
Сообщения: 2079
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Время изменения свойства

Сообщение Logrus » Пн авг 15, 2022 11:05 pm

Bagir писал(а):
Пн авг 15, 2022 10:01 pm
А что на счет функции? Правильно ли я понимаю связки таблиц? У меня сейчас всё берется сразу из pvalues по PROPERTY_NAME, длинный путь получения свойства objects>properties>pvalues не выполняется. Колонка PROPERTY_NAME заполнена у всех.
Снимок.PNG
Снимок.PNG (131.42 КБ) 759 просмотров
ну у меня всегда сразу создается верная запись в пропнейм и вообще эта строка в пвалуес
как и не может быть точки в имени свойства или объекта (проверь кст создав такое ;) ) или в единственном месте где такое юзается убрано класс.объект.свойство

у меня ядро мдм очень отличается во многих мелочах и не только ¯\_(ツ)_/¯

п.с. у меня все таблички бд в памяти и к выше мне без разницы откуда читать кеш_валуес или пвалуес
для виндовс с хдд будет разница
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

Re: Время изменения свойства

Сообщение Bagir » Пн авг 15, 2022 11:53 pm

Logrus писал(а):
Пн авг 15, 2022 11:05 pm
ну у меня всегда сразу создается верная запись в пропнейм
Несколько лет назад с этим точно были проблемы. Но на сколько я знаю всё уже давно исправлено.
Logrus писал(а):
Пн авг 15, 2022 11:05 pm
не может быть точки в имени свойства или объекта
У меня тоже этот вопрос был. Но сделал по аналогии со штатными.
Logrus писал(а):
Пн авг 15, 2022 11:05 pm
класс.объект.свойство
Вот про это и подумал
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Logrus
Сообщения: 2079
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Время изменения свойства

Сообщение Logrus » Пн авг 15, 2022 11:58 pm

Bagir писал(а):
Пн авг 15, 2022 11:53 pm
Logrus писал(а):
Пн авг 15, 2022 11:05 pm
ну у меня всегда сразу создается верная запись в пропнейм
Несколько лет назад с этим точно были проблемы. Но на сколько я знаю всё уже давно исправлено.
создай классовое свойство и покажи отсутствующие записи в пвалуес на него, пока не сделаешь сг их не будет
не исправлено до конца, сейчас ситуация есть объект, есть классовое свойство, но нет записи в пвалуес на него пока не было сг
что тоже приводит к ошибкам

https://github.com/sergejey/majordomo/b ... s.php#L958
если сразу создавать записи, то не было б ошибки эти долгие годы, и вообще бы иначе не нужен как и проверка наличия пропнейм, т.к. уже все создано
За это сообщение автора Logrus поблагодарил:
Bagir (Вт авг 16, 2022 12:23 am)
Рейтинг: 1.16%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

Re: Время изменения свойства

Сообщение Bagir » Вт авг 16, 2022 12:23 am

Logrus писал(а):
Пн авг 15, 2022 11:58 pm
создай классовое свойство и покажи отсутствующие записи в пвалуес на него, пока не сделаешь сг их не будет
Точно, теперь до конца вспомнил эту старую тему. Было большое обсуждение. Спасибо.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Logrus
Сообщения: 2079
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Время изменения свойства

Сообщение Logrus » Ср авг 17, 2022 5:24 pm

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

и цепочка там несколько больше, не только поле пропнейм в пвалюес, но и ключ р: в кеш_валюес
расписывать это все увы долго и муторно, там много и взаимосвязано
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Ответить