Проблемы с OWFS
Модератор: immortal
-
- Сообщения: 39
- Зарегистрирован: Вс апр 22, 2012 3:18 pm
- Благодарил (а): 0
- Поблагодарили: 4 раза
Re: Проблемы с OWFS
Сергей,
тут вскрылилсь еще некоторые моменты. В паралельной ветке человек жалуется на то что объекты не сохраняют историю. У меня такая же тема касательно объектов для датчиков OneWire. То есть те объекты которые обновляются через Ардуину работают нормально, потому как идет вызов метода tempChanged. В объектах же 1-wire похоже что метод не вызывается, те инфа на них обновляется, но в историю она не попадает. Графики соотв. тоже не строятся.
Если вызвать метод из командной строки для конкретного датчика, то история сохранится.
Вопрос. Как правильно сделать вызов метода tempChanged в скриптах для конкретного дачтика, после обновления инфы на нем (тут даже не важно было изменение параметра или нет, просто после каждого обновления инфа должна попасть в историю)
И еще вопрос. На каком языке пишутся скрипты в объектах, где список функций можно глянуть и синтаксис.
Спасибо
тут вскрылилсь еще некоторые моменты. В паралельной ветке человек жалуется на то что объекты не сохраняют историю. У меня такая же тема касательно объектов для датчиков OneWire. То есть те объекты которые обновляются через Ардуину работают нормально, потому как идет вызов метода tempChanged. В объектах же 1-wire похоже что метод не вызывается, те инфа на них обновляется, но в историю она не попадает. Графики соотв. тоже не строятся.
Если вызвать метод из командной строки для конкретного датчика, то история сохранится.
Вопрос. Как правильно сделать вызов метода tempChanged в скриптах для конкретного дачтика, после обновления инфы на нем (тут даже не важно было изменение параметра или нет, просто после каждого обновления инфа должна попасть в историю)
И еще вопрос. На каком языке пишутся скрипты в объектах, где список функций можно глянуть и синтаксис.
Спасибо
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Проблемы с OWFS
Я обнаружил ещё одну проблему в самой последней версии кода -- как раз связанную с сохранением истории в 1wire. Обновил в исходниках один файл (./modules/objects/objects.class.php) -- можно только его заменить.shurlin писал(а):Сергей,
тут вскрылилсь еще некоторые моменты. В паралельной ветке человек жалуется на то что объекты не сохраняют историю. У меня такая же тема касательно объектов для датчиков OneWire. То есть те объекты которые обновляются через Ардуину работают нормально, потому как идет вызов метода tempChanged. В объектах же 1-wire похоже что метод не вызывается, те инфа на них обновляется, но в историю она не попадает. Графики соотв. тоже не строятся.
Если вызвать метод из командной строки для конкретного датчика, то история сохранится.
функция callMethod (или cm можно использовать)Вопрос. Как правильно сделать вызов метода tempChanged в скриптах для конкретного дачтика, после обновления инфы на нем (тут даже не важно было изменение параметра или нет, просто после каждого обновления инфа должна попасть в историю)
вот пример
callMethod('mySensor1.tempChanged');
если нужно вызвать метод с параметрами, то так:
callMethod('mySensor1.tempChanged',array('myParam'=>'paramValue'));
в самом коде метода можно получить значение параметра обратившись к нему так: $params['myParam']
Но сейчас я думаю будет сохраняться история нормально и просто установкой значения. Кстати, в историю записывается каждое обновление, НО свойство должно быть задано на уровне родительского класса и в нём должна стоять галочка о том, чтобы хранить историю. Вот как здесь:
свойство класса:
Скрипты пишутся на PHP -- список функций можно найти в интернете. Кроме встроенных ещё есть добавленные мной в систему, про них можно прочитать здесь: http://smartliving.ru/Main/ProgrammingFunctionsИ еще вопрос. На каком языке пишутся скрипты в объектах, где список функций можно глянуть и синтаксис.
Спасибо
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 39
- Зарегистрирован: Вс апр 22, 2012 3:18 pm
- Благодарил (а): 0
- Поблагодарили: 4 раза
Re: Проблемы с OWFS
Сергей, спасибо за развернутый ответ, но "не выходит у меня каменный цветок".
Файлы обновил, installed для верности стер, но то что хотел не получилось.
В общем, как я это понимаю.
Система после обновления данных с датчика OneWire должна обновить свойство объекта SensorOne, которое мы связали с температурой датчика (temperature). Пусть будет SensorOne.temp
локальная история самого датчика обновляется (это та что log), но история объекта (object history) SensorOne, который мы связали с датчиком не появлется, потому что мы не вызывали метод tempChanged.
В итоге если в разделе script мы пытаемся вызвать tempChanged для связаного объекта, получаем что метод стирает данные из свойства объекта, но хистори появляется (смотрим на график с нулевой температурой). То же происходит если мы делаем локальный метод tempChanged для данного объекта, в котором нет перезаписи свойства температуры вообще (только апдейтим свойства updated и updatedTime ). Получается что работа с объектом SensorOne как то влияет на свойства датчика к которому он привязан.
На выходе получаю что либо у связанного объекта нет хистори, и непонятно вообще, правильно ли строится график.
Либо получаю хистори у объекта, но свойтво temp в нем обнуляется.
В общем я либо запутался либо оно как то странно работает.
Файлы обновил, installed для верности стер, но то что хотел не получилось.
В общем, как я это понимаю.
Система после обновления данных с датчика OneWire должна обновить свойство объекта SensorOne, которое мы связали с температурой датчика (temperature). Пусть будет SensorOne.temp
локальная история самого датчика обновляется (это та что log), но история объекта (object history) SensorOne, который мы связали с датчиком не появлется, потому что мы не вызывали метод tempChanged.
В итоге если в разделе script мы пытаемся вызвать tempChanged для связаного объекта, получаем что метод стирает данные из свойства объекта, но хистори появляется (смотрим на график с нулевой температурой). То же происходит если мы делаем локальный метод tempChanged для данного объекта, в котором нет перезаписи свойства температуры вообще (только апдейтим свойства updated и updatedTime ). Получается что работа с объектом SensorOne как то влияет на свойства датчика к которому он привязан.
На выходе получаю что либо у связанного объекта нет хистори, и непонятно вообще, правильно ли строится график.
Либо получаю хистори у объекта, но свойтво temp в нем обнуляется.
В общем я либо запутался либо оно как то странно работает.
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Проблемы с OWFS
object history отражает историю вызова методов класса. на самом деле эта история по сути ни к чему и ни на что не влияет. графики строятся исходя из изменений значений свойства, независимо от вызова методов класса и того, что находится в object history. так что по идее связи 1-wire свойства со свойством объекта уже достаточно.
в базе есть таблица phistory -- можно попробовать проследить какие записи появляются в ней при изменении 1wire параметра. если там изменения появляются, то система работает правильно и графики должны адекватно строиться.
в базе есть таблица phistory -- можно попробовать проследить какие записи появляются в ней при изменении 1wire параметра. если там изменения появляются, то система работает правильно и графики должны адекватно строиться.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 39
- Зарегистрирован: Вс апр 22, 2012 3:18 pm
- Благодарил (а): 0
- Поблагодарили: 4 раза
Re: Проблемы с OWFS
Спасибо, за объяснения.
Я просто думал что график строиться именно исходя из object history.
Да, графики строятся и так. В принципе, больше от дачтиков температуры пока и не надо.
Я просто думал что график строиться именно исходя из object history.
Да, графики строятся и так. В принципе, больше от дачтиков температуры пока и не надо.
-
- Сообщения: 284
- Зарегистрирован: Сб ноя 24, 2012 11:47 am
- Благодарил (а): 29 раз
- Поблагодарили: 28 раз
Re: Проблемы с OWFS
Напишу здесь, вроде наибоее близко.
При работе под Windows выяснилась такая проблема - если отключить адаптер ds9490 (вынуть из USB) а потом вернуть его на место, то сервер owfs его обрано не "подхватывает". Т.е. приходится убивать процесс в дичспетчер задач, а затем заново запускать owserver. Не знаю как в Linux отрабатывается такая ситуация, но может есть кто знает? или есть какое-то другое решение проблемы? Также почему-то не более суток почему-то работает сервер owserver, а потом "теряет" адаптер. Или лучше заменить на адаптер с COM портом? может там таких пробелм нет?
При работе под Windows выяснилась такая проблема - если отключить адаптер ds9490 (вынуть из USB) а потом вернуть его на место, то сервер owfs его обрано не "подхватывает". Т.е. приходится убивать процесс в дичспетчер задач, а затем заново запускать owserver. Не знаю как в Linux отрабатывается такая ситуация, но может есть кто знает? или есть какое-то другое решение проблемы? Также почему-то не более суток почему-то работает сервер owserver, а потом "теряет" адаптер. Или лучше заменить на адаптер с COM портом? может там таких пробелм нет?
-
- Сообщения: 284
- Зарегистрирован: Сб ноя 24, 2012 11:47 am
- Благодарил (а): 29 раз
- Поблагодарили: 28 раз
Re: Проблемы с OWFS
Продолжаю изучение 1wire. Под Ubuntu все вроде стоит хорошо, но не могу что-то настроить обновление параметров ключа ds2408 (управление через веб-интерфейс получилось, при изменении состояния ключей все работает) в двух ситуациях:
1. Датчик по каким-либо причинам отключался, а в это время в веб-интерфейсе нажимались кнопки "вкл-выкл"?
2. Как настроить уведомление о том, что из сети 1wire исчезло устройство (т.е. оно не отвечает)?
1. Датчик по каким-либо причинам отключался, а в это время в веб-интерфейсе нажимались кнопки "вкл-выкл"?
2. Как настроить уведомление о том, что из сети 1wire исчезло устройство (т.е. оно не отвечает)?
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Проблемы с OWFS
Не помню точно в какой теме спрашивалось, но отвечу тут )2. Как настроить уведомление о том, что из сети 1wire исчезло устройство (т.е. оно не отвечает)?
В общем, в 1-wire можно задавать скрипт, который вызывается при изменении значений свойств 1-wire устройства. Сейчас я сделал так, что б этот же скрипт вызывался и при изменении статуса устройства в целом -- т.е. когда система не смогла до него вовсе достучаться. При вызове передаётся параметр $params['STATUS_CHANGED']
Т.е. в скрипт обработки события можно добавить вот такую логику:
Код: Выделить всё
if ($params['STATUS_CHANGED']) {
if ($params['STATUS']) {
say("Устройство в сети");
} else {
say("Устройство недоступно");
}
}
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Проблемы с OWFS
Зачем??? Зачем его отключать (вообще трогать)?При работе под Windows выяснилась такая проблема - если отключить адаптер ds9490 (вынуть из USB) а потом вернуть его на место...
У меня такое наблюдалось с ключём —debug, а без ключа работает и не виснет....почему-то не более суток почему-то работает сервер owserver, а потом "теряет" адаптер.
Интересно как у других работает 1-Wire под Windows?
-
- Сообщения: 284
- Зарегистрирован: Сб ноя 24, 2012 11:47 am
- Благодарил (а): 29 раз
- Поблагодарили: 28 раз
Re: Проблемы с OWFS
Зачем его отключать? )) - чтобы понять надежность системы, её способность к восстановлению. Я для эксперимента поставил Ubuntu - там все ОК - отключил-подключил - owfs нормально находит адаптер. Вообще проблема заклчается именно в том, что под Виндами адаптер "отваливался". Как я вижу решение проблемы в использовании Java из примеров Dallas/Maxim там вроде железно все работает в отличие от "костылей" owfs. Нужно только найти того кто прикрутит 1wire+Java к проекту. Готов помочь энтузиасту материально в разумных пределах
Сергей, спасибо! - попробую.
Сергей, спасибо! - попробую.