Архив данных (сервер недоступен)
Модератор: immortal
Архив данных (сервер недоступен)
Друзья, проясните, пожалуйста, ситуацию.
В общем виде что должно происходить, если вдруг (по какой-то причине) сервер Majordomo недоступен, устройство (датчик) не может передать данные и т.д.?
Посмотрел работу конечных устройств. В большинстве случаев не увидел ничего, похожего на архивы.
В моём представлении данные должны какое-то время храниться на устройстве и при восстановлении связи архив за прошедший период должен всё-таки улететь в базу
Но даже сами протоколы передачи данных не подразумевают никаких временных меток для каждого пакета.
То есть, предполагается, что от датчиков будут поступать только текущие показания?
Собственно, вопрос, вероятно, не к majordomo, а к общей логике работы так называемого "умного дома". Та же самая картина с domoticz, аналогично с устройствами z-vawe и т.д. Пока я вижу, что если нужно хранение данных и возможность их последующей передачи - это нужно делать индивидуально и в обход стандартного функционала системы. Проще говоря, писать свою логику для той же самой esp8266, ловить данные собственным скриптом и запихивать их в базу.
Или я ошибаюсь?
В общем виде что должно происходить, если вдруг (по какой-то причине) сервер Majordomo недоступен, устройство (датчик) не может передать данные и т.д.?
Посмотрел работу конечных устройств. В большинстве случаев не увидел ничего, похожего на архивы.
В моём представлении данные должны какое-то время храниться на устройстве и при восстановлении связи архив за прошедший период должен всё-таки улететь в базу
Но даже сами протоколы передачи данных не подразумевают никаких временных меток для каждого пакета.
То есть, предполагается, что от датчиков будут поступать только текущие показания?
Собственно, вопрос, вероятно, не к majordomo, а к общей логике работы так называемого "умного дома". Та же самая картина с domoticz, аналогично с устройствами z-vawe и т.д. Пока я вижу, что если нужно хранение данных и возможность их последующей передачи - это нужно делать индивидуально и в обход стандартного функционала системы. Проще говоря, писать свою логику для той же самой esp8266, ловить данные собственным скриптом и запихивать их в базу.
Или я ошибаюсь?
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Архив данных (сервер недоступен)
Приветствую. Хороший вопрос и проблема.
Есть замечательный проект AMS . Текущие данные отправляются в МД. Если связь не доступна , то данных соответственно нет.
Для этого в коде самой ардуины прописан механизм логирования данных и попутно вывод на страницу в виде графиков. Можно по дням , а можно и за какой то период. ( у меня история за 4 месяца). А вот как этот файл запросить и передать на сторонний сервер , такой возможности нет. Тут выход из ситуации - есть ли вообще возможность сторонним сервером запросить файл истории и закачать его ?
При экспериментах с АМС удавалось передавать файлы .pdf со страницы. Но надо было руками создавать страницу с таким запросом. 11 мегабайт улетало за 12 секунд на ESP8266 . На Меге то же самое занимало 2-4 минуты. Похоже дело в написании правильного кода.
Есть замечательный проект AMS . Текущие данные отправляются в МД. Если связь не доступна , то данных соответственно нет.
Для этого в коде самой ардуины прописан механизм логирования данных и попутно вывод на страницу в виде графиков. Можно по дням , а можно и за какой то период. ( у меня история за 4 месяца). А вот как этот файл запросить и передать на сторонний сервер , такой возможности нет. Тут выход из ситуации - есть ли вообще возможность сторонним сервером запросить файл истории и закачать его ?
При экспериментах с АМС удавалось передавать файлы .pdf со страницы. Но надо было руками создавать страницу с таким запросом. 11 мегабайт улетало за 12 секунд на ESP8266 . На Меге то же самое занимало 2-4 минуты. Похоже дело в написании правильного кода.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
- xor
- Сообщения: 2038
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 284 раза
- Поблагодарили: 629 раз
Re: Архив данных (сервер недоступен)
А нельзя сами данные передавать в таком случае с меткой времени?
У меня была неприятность с ГПС, неожиданно повторно пачка вываливалась накопленного за день спустя неск. часов, как будто я метался в пространстве со страшной скоростью.
А МЖД регистрировал время по моменту фактического получения данных, стал передавать еще время фиксации координат и, если оно отличалось там на час, отбрасывал.
У меня была неприятность с ГПС, неожиданно повторно пачка вываливалась накопленного за день спустя неск. часов, как будто я метался в пространстве со страшной скоростью.
А МЖД регистрировал время по моменту фактического получения данных, стал передавать еще время фиксации координат и, если оно отличалось там на час, отбрасывал.
- Рейтинг: 1.16%
win10 connect https://connect.smartliving.ru/profile/303
Re: Архив данных (сервер недоступен)
А как это на стороне МЖД реализовано было, какими средствами?xor писал(а):А нельзя сами данные передавать в таком случае с меткой времени?
У меня была неприятность с ГПС, неожиданно повторно пачка вываливалась накопленного за день спустя неск. часов, как будто я метался в пространстве со страшной скоростью.
А МЖД регистрировал время по моменту фактического получения данных, стал передавать еще время фиксации координат и, если оно отличалось там на час, отбрасывал.
- xor
- Сообщения: 2038
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 284 раза
- Поблагодарили: 629 раз
Re: Архив данных (сервер недоступен)
Пришлось допиливать скрипт приема данных с учётом времени. Для ГПС, естественно, файл gps.phpGofk писал(а):А как это на стороне МЖД реализовано было, какими средствами?xor писал(а):А нельзя сами данные передавать в таком случае с меткой времени?
У меня была неприятность с ГПС, неожиданно повторно пачка вываливалась накопленного за день спустя неск. часов, как будто я метался в пространстве со страшной скоростью.
А МЖД регистрировал время по моменту фактического получения данных, стал передавать еще время фиксации координат и, если оно отличалось там на час, отбрасывал.
Отправлено с моего Redmi 4X через Tapatalk
win10 connect https://connect.smartliving.ru/profile/303
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Архив данных (сервер недоступен)
Если вопрос ко мне , то в программировании я мало разбираюсь. Я беру готовое , что есть на форуме.xor писал(а):А нельзя сами данные передавать в таком случае с меткой времени?
Конкретно по АМС. Ардуина передает данные в МД раз в 20 секунд ( настраивается ). Срабатывание контактных датчиков мгновенно. Логирование на SD-карту раз в 5 минут ( то же можно менять , но что бы не убить карту ). Файлы и данные сохраняются в формате .csv . Так же ардуина видит момент отваливания связи с МД. Наверное можно дописать код логирования в этот момент и до появления соединения. А вот как его потом автоматом передать на сервер - это не ко мне ((.
Многое зависит и от реализации того , откуда получаете данные.
Пока обхожусь автономной работой ардуин.
Пример лога. Температуры , влажность и давление.
СпойлерПоказать
- 2017-10-31 0:4:39 ,17.50,17.50,17.50,46.00,16.00 ,19.79,49.74,746.51
2017-10-31 0:9:39 ,17.69,17.69,17.69,47.00,17.00 ,19.86,52.34,746.52
2017-10-31 0:14:39 ,17.44,17.44,17.44,48.00,17.00 ,20.08,52.88,746.54
2017-10-31 0:19:39 ,17.25,17.25,17.25,48.00,16.00 ,20.08,51.88,746.56
2017-10-31 0:24:40 ,17.19,17.19,17.19,48.00,16.00 ,19.90,52.47,746.62
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Re: Архив данных (сервер недоступен)
У меня обратная ситуация Накрутить логику на ардуине (к примеру) можно. Можно даже архивы так или иначе передать на сервер. Вопрос в том, что с этими данными делать дальше. Нужно их каким-то образом связать с существующими объектами. Сказать, что это именно температура. И даже не просто какая-то абстрактная температура, а уже существующий в системе датчик. И именно для него следует добавлять значения за прошедший период.serghei писал(а):Если вопрос ко мне , то в программировании я мало разбираюсь. Я беру готовое , что есть на форуме.xor писал(а):А нельзя сами данные передавать в таком случае с меткой времени?
Конкретно по АМС. Ардуина передает данные в МД раз в 20 секунд ( настраивается ). Срабатывание контактных датчиков мгновенно. Логирование на SD-карту раз в 5 минут ( то же можно менять , но что бы не убить карту ). Файлы и данные сохраняются в формате .csv . Так же ардуина видит момент отваливания связи с МД. Наверное можно дописать код логирования в этот момент и до появления соединения. А вот как его потом автоматом передать на сервер - это не ко мне ((.
Многое зависит и от реализации того , откуда получаете данные.
Мне почему-то видится некий модуль, по интерфейсу похожий на MQTT. Где вываливаются все полученные значения (архивы), а дальше пользователь выполняет привязку.
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Архив данных (сервер недоступен)
Ну тут я ничем не смогу помочь. А проблема интересная. Если за какой то период нет данных , то ломаются графики. Да и вся логика работы сервера , если она завязана на данные. Поэтому и добиваюсь автономности от ардуин.
А в ручную добавлять данные - не вижу смысла. Да и автоматом то же. Если пропустили какое то событие , то его уже не надо обрабатывать. Можно просто посмотреть лог. Это касается температур и влажности. С данными GPS - отдельный вопрос.
А в ручную добавлять данные - не вижу смысла. Да и автоматом то же. Если пропустили какое то событие , то его уже не надо обрабатывать. Можно просто посмотреть лог. Это касается температур и влажности. С данными GPS - отдельный вопрос.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
- xor
- Сообщения: 2038
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 284 раза
- Поблагодарили: 629 раз
Re: Архив данных (сервер недоступен)
Задача:Gofk писал(а):У меня обратная ситуация Накрутить логику на ардуине (к примеру) можно. Можно даже архивы так или иначе передать на сервер. Вопрос в том, что с этими данными делать дальше. Нужно их каким-то образом связать с существующими объектами. Сказать, что это именно температура. И даже не просто какая-то абстрактная температура, а уже существующий в системе датчик. И именно для него следует добавлять значения за прошедший период.serghei писал(а):Если вопрос ко мне , то в программировании я мало разбираюсь. Я беру готовое , что есть на форуме.xor писал(а):А нельзя сами данные передавать в таком случае с меткой времени?
Конкретно по АМС. Ардуина передает данные в МД раз в 20 секунд ( настраивается ). Срабатывание контактных датчиков мгновенно. Логирование на SD-карту раз в 5 минут ( то же можно менять , но что бы не убить карту ). Файлы и данные сохраняются в формате .csv . Так же ардуина видит момент отваливания связи с МД. Наверное можно дописать код логирования в этот момент и до появления соединения. А вот как его потом автоматом передать на сервер - это не ко мне ((.
Многое зависит и от реализации того , откуда получаете данные.
Мне почему-то видится некий модуль, по интерфейсу похожий на MQTT. Где вываливаются все полученные значения (архивы), а дальше пользователь выполняет привязку.
Есть логи фиксированной структуры, т.е., вы знаете, что первый элемент-дата, второй-температура датчика 1 и тд. Надо это хозяйство засунуть в таблицу истории.
Вполне реально.
Отправлено с моего Redmi 4X через Tapatalk
win10 connect https://connect.smartliving.ru/profile/303
- xor
- Сообщения: 2038
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 284 раза
- Поблагодарили: 629 раз
Re: Архив данных (сервер недоступен)
Скармливаем лог пхп скрипту, он его парсит по-строчно. Зная имяОбъекта.Свойство, вставляем в таблицу истории , заменяя поле added временем из лога.xor писал(а):Задача:Gofk писал(а):У меня обратная ситуация Накрутить логику на ардуине (к примеру) можно. Можно даже архивы так или иначе передать на сервер. Вопрос в том, что с этими данными делать дальше. Нужно их каким-то образом связать с существующими объектами. Сказать, что это именно температура. И даже не просто какая-то абстрактная температура, а уже существующий в системе датчик. И именно для него следует добавлять значения за прошедший период.serghei писал(а):Если вопрос ко мне , то в программировании я мало разбираюсь. Я беру готовое , что есть на форуме.xor писал(а):А нельзя сами данные передавать в таком случае с меткой времени?
Конкретно по АМС. Ардуина передает данные в МД раз в 20 секунд ( настраивается ). Срабатывание контактных датчиков мгновенно. Логирование на SD-карту раз в 5 минут ( то же можно менять , но что бы не убить карту ). Файлы и данные сохраняются в формате .csv . Так же ардуина видит момент отваливания связи с МД. Наверное можно дописать код логирования в этот момент и до появления соединения. А вот как его потом автоматом передать на сервер - это не ко мне ((.
Многое зависит и от реализации того , откуда получаете данные.
Мне почему-то видится некий модуль, по интерфейсу похожий на MQTT. Где вываливаются все полученные значения (архивы), а дальше пользователь выполняет привязку.
Есть логи фиксированной структуры, т.е., вы знаете, что первый элемент-дата, второй-температура датчика 1 и тд. Надо это хозяйство засунуть в таблицу истории.
Вполне реально.
Отправлено с моего Redmi 4X через Tapatalk
Это теория.
Нужно распарсить, найти объекты, по ним определить id, работа с SQL -- практика.
Отправлено с моего Redmi 4X через Tapatalk
win10 connect https://connect.smartliving.ru/profile/303