API/data upload block

Блочная передача данных погодной станции Версия 1.1

Пакет данных Пакет данных передается HTTP POST запросом на сервер. Пакет содержит стандартный HTTP хедер и тело запроса адрес сервера openweathermap.org

В хедере запроса необходимо правильно устанавливать следующие поля  POST /data/mpost HTTP/1.1 Host: openweathermap.org  Authorization: Basic {base64_encode USER:PASS}  Content-Type: application/octet-stream Content-Transfer-Encoding: binary Content-length: {len}  Connection: Close  

Тело запроса Тело содержит строки начианющиеся с предопределенной строки из следующего списка STATION; SETUP; UPTIME; MEG Порядок и количество строк не имеют значения.

Описание типов строк  STATION идентификатор станции</li> SETUP текущие настройки системы</li> UPTIME время непрерывной работы</li> MEG строки с данными измерений</li> </ul>

Примеры строк пакета <pre class="prettyprint linenums"> STATION=ID Станции SETUP=@79057025192;Station0;internet.mts.ru;mts;mts;weather.mytrails.ru:80;/post.php;ACB12313DEE;10;2;20;1;0;-30;@

Подробнее о строке настроек Строка текущих настроек станции специфична для каждого типа станции

Строка STATION необязательная строка. Для однозначной идентификации достаточно перданных в хедере логина и пароля, но в принципе, у одного пользователя может быть несколько станций.

Строка UPTIME время в секундах по системным часам от старта системы Пример <pre class="prettyprint linenums"> UPTIME=1276786

Строка MEG строчки с изменениями. порядок строк не имеет значения пример <pre class="prettyprint linenums"> MEG=TM12154216;TMP20;HUM70;PRS1234;UBT2000;IBT12;GSM40;TCP264 Порядок и состав данных в строке не имеет значения

Возможные типы данных  TMR - Время измерения по внутр. часам системы (сек) - long unix time</li> TMP - Температура; цельсии. Знаковый * 10. Диапазон [-500..600]. -990 - строка пустая; -980 - отказ датчика</li> HUM - Относительная влажность;% [0..100]</li> PRS - Атмосферное давление; hPa [700..1200]</li> UBT - Напряжение батареи; мВ [3200..4300]</li> USL - Напряжение солнечной батареи; мВ [0..9999]</li> IBT - Ток зарядки батареи; мА [0..1000]</li> GSM - GSM сигнал [0..40]</li> TMI - Альтернативный датчик температуры; цельсии. Знаковый * 10. Диапазон [-500..600]. -990 - строка пустая; -980 - отказ датчика</li> </ul>

Пример пакета <pre class="prettyprint linenums"> STATION=Station555 SETUP=79057025192;Station0; internet.mts.ru;mts;mts;weather.mytrails.ru:80;/post.php;ACB12313DEE;10;2;20;1;0;-30; UPTIME=123456789 MEG=TMR12154216;TMP20;HUM70;PRS1234;UBT2000;IBT12;GSM40 MEG=TMR12154216;TMP20;HUM70;PRS1234;UBT2000;IBT12;GSM40 MEG=TMR12154768;TMP20;HUM70;PRS1234;UBT2000;IBT12;GSM40;TMI264

Логика обработки времени измерения Если переданно значение UPTIME и время указанное в каждой строке менеее 300.000.000;  (примерно 10 лет в сек.) то считаем время измерениея как time = current_time -  UPTIME + TMR Если UPTIME не определен, то считаем  time =  TMR Если время измерения > 300.000.000, то считаем time =  TMR