Сегодня искал для работы модель погоды, и обнаружил, что на OpenWeatherMap можно отправлять свои показания погоды. У меня как раз умный дом меряет температуру (используемый датчик — http://www.noo.com.by/pt111.html) и влажность снаружи в любимой деревне — почему бы не получить более точную модель погоды для неё? :)
- Регистрируемся на openweathermap.org, получаем оттуда API key.
- Идём на страницу http://openweathermap.org/stations-30 и смотрим, что из датчиков у нас есть. В моём случае я знаю широту, долготу, температуру и относительную влажность.
- Я не знаю точный altitude датчика, но сервис https://www.freemaptools.com/elevation-finder.htm помог мне её оценить. Широту и долготу можно получить там же.
- Регистрируем датчик в системе:
-
curl -H "Content-Type: application/json" -X POST --data '{"external_id":"57","name":"Ялча, дом 57","latitude":53.78065,"longitude":28.26921,"altitude":170}' "http://api.openweathermap.org/data/3.0/stations?appid=AKI_KEY_HERE"
- Записываем ID из ответа системы.
- В настройках MajorDoMo заводим новый сценарий. Перепроверяем, что отправляем нужный сенсор, с нужным логином-паролем и правильными координатами (отправить температуру в доме — наверное, не очень хорошо для прогноза :)
-
exec('curl -H "Content-Type: application/json" --data \'[{"station_id":"STATION_ID_HERE","dt":\'`date +%s`\',"temperature":'.gg('TempSensor01.value').',"humidity":'.gg('HumSensor01.value').'}]\' "http://api.openweathermap.org/data/3.0/measurements?appid=API_KEY_HERE"')
- В настройках сенсора в методе onChange дёргаем этот сценарий.
- Вуаля! Дом теперь стал метеостанцией международного проекта.