Apixu: Получение прогноза погоды с Apixu.com — Logicmachine.net.ru | Автоматика для дома
|Содержание
Получение прогноза погоды с Apixu.com — Logicmachine.net.ru | Автоматика для дома
Для получения прогноза погоды с сервиса Apixu.com Вам нужно:
- Зарегистрировать бесплатный аккаунт на сайте https://www.apixu.com/ . По завершении регистрации вы получите API key, который будет использован далее.
- Создать групповые адреса для значений прогноза погоды.
Запустите следующий код один раз из любого скрипта, например, из скрипта по расписанию.
Зайдите во вкладку Scripting, нажмите кнопку Scheduled, в левом нижнем углу экрана нажмите Add new script.
Заполнение полей для данного скрипта не имеет особой важности, необходимо лишь поставить галочку Active. Затем зайти в редактор скрипта, скопировать ниже следующий код, нажать кнопку Save, нажать кнопку Run script. По завершении выполнения скрипт выключится и больше не будет запускаться.Исходный код -- при необходимости скорректируйте тип данных base_adr = '33/0/' weather_obj = { { name = 'current. temp_c', datatype = 'temperature', units = '°C'}, { name = 'current.feelslike_c', datatype = 'temperature', units = '°C'}, { name = 'current.humidity', datatype = 'scale', units = '%'}, { name = 'current.wind_kph', datatype = 'float16', units = ' км/ч'}, { name = 'current.uv', datatype = 'uint16'}, { name = 'current.condition.text', datatype = 'text'}, { name = 'current.pressure_mb', datatype = 'float16', units = ' мБар'}, { name = 'current.precip_mm', datatype = 'uint16', units = ' мм'}, { name = 'today.mintemp_c', datatype = 'temperature', units = '°C'}, { name = 'today.maxtemp_c', datatype = 'temperature', units = '°C'}, { name = 'today.avgtemp_c', datatype = 'temperature', units = '°C'}, { name = 'today.avghumidity', datatype = 'scale', units = '%'}, { name = 'today.maxwind_kph', datatype = 'float16', units = ' км/ч'}, { name = 'today.uv', datatype = 'uint16'}, { name = 'today.condition.text', datatype = 'text'}, { name = 'today.totalprecip_mm', datatype = 'uint16', units = ' мм'}, { name = 'tomorrow. mintemp_c', datatype = 'temperature', units = '°C'}, { name = 'tomorrow.maxtemp_c', datatype = 'temperature', units = '°C'}, { name = 'tomorrow.avgtemp_c', datatype = 'temperature', units = '°C'}, { name = 'tomorrow.avghumidity', datatype = 'scale', units = '%'}, { name = 'tomorrow.maxwind_kph', datatype = 'float16', units = ' км/ч'}, { name = 'tomorrow.uv', datatype = 'uint16'}, { name = 'tomorrow.condition.text', datatype = 'text'}, { name = 'tomorrow.totalprecip_mm', datatype = 'uint16', units = ' мм'},}for i = 1, #weather_obj, 1 do obj = weather_obj[i] if obj.units then units = obj.units else units = '' end grp.create( { datatype = obj.datatype, address = base_adr..i, name = obj.name, units = units } ) end script.disable(_SCRIPTNAME)
В переменной base_adr вы можете поменять “основу” адреса.
Результатом работы скрипта будет следующее: - Создать скрипт по расписанию, например, с такими параметрами:
В данном примере скрипт будет запрашивать прогноз раз в 10 минут. Убедитесь, что скрипт не выполняется слишком часто (не более 1 раза в 5 минут). - Вставить следующий код в редактор скрипта.
Переменной key присвоить значение вашего API key, а также поменять значение переменной location на название необходимой локации в виде строкового значения.
Например, город Королёв Московской области можно найти на сайте так:
location будет иметь значение ‘korolev-moskva-russia’.
При необходимости поменяйте групповые адреса, в которые будет осуществляться запись значений прогноза. Со всей информацией прогноза можно ознакомиться в документации по ссылке: https://www.apixu.com/doc/forecast.aspxИсходный код require('json') https = require('ssl.https') escape = require('socket.url').escape key = 'my_api_key' location = 'my location name' url = 'https://api.apixu.com/v1/forecast. json?key=%s&q=%s&days=2&lang=ru' url = string.format(url, key, escape(location)) res = https.request(url)data = json.pdecode(res) if type(data) ~= 'table' then alert('failed to load weather data') return end if data.error then log('error', data.error) return end current = data.current today = data.forecast.forecastday[ 1 ].day tomorrow = data.forecast.forecastday[ 2 ].day -- log(current, today, tomorrow)-- temperature in C grp.write('current.temp_c', current.temp_c) -- "feels like" temperature in C grp.write('current.feelslike_c', current.feelslike_c) -- humidity as percentage grp.write('current.humidity', current.humidity) -- wind speed in kilometers per hour grp.write('current.wind_kph', current.wind_kph) -- uv index grp.write('current.uv', current.uv) -- weather condition text grp.write('current.condition.text', current.condition.text) -- pressure in millibars grp.write('current.pressure_mb', current.pressure_mb) -- precipitation amount in millimeters grp.write('current.precip_mm', current. precip_mm) -- minimum temperature in celsius for the day grp.write('today.mintemp_c', today.mintemp_c) -- maximum temperature in celsius for the day grp.write('today.maxtemp_c', today.maxtemp_c) -- average temperature in celsius for the day grp.write('today.avgtemp_c', today.avgtemp_c) -- average humidity as percentage grp.write('today.avghumidity', today.avghumidity) -- maximum wind speed in kilometers per hour grp.write('today.maxwind_kph', today.maxwind_kph) -- uv index grp.write('today.uv', today.uv) -- weather condition text grp.write('today.condition.text', today.condition.text) -- total precipitation in millimeters grp.write('today.totalprecip_mm', today.totalprecip_mm) -- minimum temperature in celsius for the day grp.write('tomorrow.mintemp_c', tomorrow.mintemp_c) -- maximum temperature in celsius for the day grp.write('tomorrow.maxtemp_c', tomorrow.maxtemp_c) -- average temperature in celsius for the day grp.write('tomorrow.avgtemp_c', tomorrow.avgtemp_c) -- average humidity as percentage grp. write('tomorrow.avghumidity', tomorrow.avghumidity) -- maximum wind speed in kilometers per hour grp.write('tomorrow.maxwind_kph', tomorrow.maxwind_kph) -- uv index grp.write('tomorrow.uv', tomorrow.uv) -- weather condition text grp.write('tomorrow.condition.text', tomorrow.condition.text) -- total precipitation in millimeters grp.write('tomorrow.totalprecip_mm', tomorrow.totalprecip_mm)
Готово!
Данные прогноза погоды находятся в групповых адресах.
Рассмотрим примеры использования этих данных.
По текущей скорости ветра можно активировать “защиту от ветра”. Для этого поможет событийный скрипт, запускающийся по объекту текущей скорости ветра.
- Зайдите во вкладку Scripting.
- Нажмите кнопку Event-based.
- В левом нижнем углу экрана нажмите Add new script.
- В поле Group address / tag укажите групповой адрес текущей скорости ветра.
В нашем случае это адрес 33/0/4. - Установите галочку Active:
- В редакторе скрипта вставьте следующий код:
Исходный код -- скорость ветра указывается в км/ч -- критическая скорость при превышении которой нужно включать защиту от ветра critical_speed = 40 -- поправьте значение на необходимое Вам --безопасная скорость, при которой можно отключить защиту safe_speed = 10 -- получаем текущую скорость из прогноза, cur_speed = event.getvalue() -- сравниваем if cur_speed > critical_speed then -- активируем защиту grp.write('объект защиты от ветра', true) elseif cur_speed < safe_speed then -- отключаем защиту grp.write('объект защиты от ветра', false) end
Конечно, Вам потребуется еще групповой адрес “защиты от ветра” и, возможно, скрипт, совершающий определенные действия, при необходимости.
По текущей температуре, минимальной температуре в течении дня и количеству осадков в течении дня можно включать системы антиобледенения. Для решения этой задачи нам также потребуется событийный скрипт. В этот раз создайте его для группового адреса текущей температуры. В нашем примере это адрес 33/0/1
Исходный код |
current_temp_c = grp.getvalue('current.temp_c') today_mintemp_c = grp.getvalue('today.mintemp_c') today_totalprecip_mm = grp.getvalue('today.totalprecip_mm') if current_temp_c < 2 and today_mintemp_c < 0 and today_totalprecip_mm > 0 then grp.write('антиобледенитель', true) end
Также вы можете отобразить данный прогноза на экране визуализации.
По ссылке вы можете скачать бэкап виджета визуализации.
Скачать архив виджета
Выглядеть он будет следующим образом:
Для импорта данного виджета в Вашу визуализацию Вам нужно сделать следующее:
- Выбрать вкладку Vis. structure.
- Выбрать подвкладку Layouts / Widjets.
- В строке папки Widjets нажать на зеленый “+”.
- В появившемся окне нажать Import.
- Указать путь к скачанному файлу.
- Добавить на необходимую страницу иконку, по которой будет открываться виджет.
- В параметрах иконки в поле Widjet выбрать импортированный виджет Apixu.
барометр-Атмосферное давление — iOS App
Описание
Где бы вы ни Барометр дает местное атмосферное давление непосредственно на вашем iPhone iPad или iPod. Благодаря интуитивно понятному и точной дизайна, барометр предлагает приятный опыт и надежность его использования.
Убедитесь, что вы включаете служб определения местоположения устройства, и что вы подключены к Интернету. На данный момент приложение будет определять ваше географическое местоположение. Дисплей покажет название места и текущего барометрического давления, а также с указанием климатические условия. Данные предоставляются apixu.com
Барометр дает вам возможность выбрать внутреннюю барометр вашего устройства или использовать сервис, предлагаемый apixu.com для определения давления в вашем городе.
[ Особенности ]
• В реальном масштабе времени измерение атмосферного давления (главная черная игла)
• Поддержка внутреннего барометра
• Возможность выбора внутренней или внешней Барометр
• Единицы, поддерживаемые в гПа, мбар, мм рт.ст., тор, дюйм
• Возможность отслеживать последние показания атмосферного давления (вторичная серая стрелка)
• прогнозы атмосферного давления на сегодня и завтра (доступно через In-App Purchase)
• Максимальная и минимальное атмосферное давление сегодня и завтра (доступно через In-App Purchase)
• Обнаружение Место
• Откровение погода
• текущее положение на карте
• Поиск Город
• Сохранить любимые места (без ограничений)
• Надежность в эксплуатации (данные apixu.com)
• Интуитивно понятный Графика
• Простота использования
[ Units ]
Вы можете легко выбрать, чтобы увидеть атмосферное давление, измеренное в гПа, мбар, мм рт. ст., тор, дюйм.
[ Совместимость ]
• Устройства: все iPhone, iPad и iPod.
• iOS: 9.3 или более поздней.
[ Поддерживаемые языки ]
• Русский, Английский, Итальянский, Испанский, Французский, Немецкий, Португальский, Голландский, Китайский, Японский, Датский, Финский, Норвежский, Польский, Шведский.
[ Поддержка ]
Если вы хотите приложение, не забудьте оставить нам отзыв на App Store.
Для предложений, пожалуйста, свяжитесь с нами по [email protected], или перейдите на наш сайт www.lionsapp.com
Скриншоты
Отзывы
Электросталь
2
От вларжадсчд
Живу в мск, коломенская. Показывает г.Электросталь. 🙈 и глючит неимоверно
РАБОТАЕТ!!!
5
От Палево
iPhone 6, единственное приложение, которое использует внутренний барометр для измерения давления. Точность радует.
Хотелось бы иметь возможность видеть историю изменений в виде графика
2 стрелка показывает результат, который был при предыдущем измеренииКлево
5
От Петя Котов
Iphone 6 plus, все работает. Объясните только зачем 2-е стрелочки? Они иногда сходятся иногда расходятся
НЕ РАБОТАЕТ
1
От Ksavolga
Приложение не работает iPhone 6, «деньги на ветер».
Не работает!
1
От Yanchenko69
Величина давления, как установилась при запуске, так и не меняется! Платная версия и не работает! Фуфел!
Работает
5
От Oleg_local9
Все нормально работает
Перестал работать
4
От Khufu54
Почините, please.
Программа падает
3
От Моэм
Программа падает при попытке изменить единицы измерения в настройках
Барометр
1
От Tresspass
Сравнил с домашним-на десять делений врет,верните деньги!!!
Страшно врет!
1
От ==Leshch==
Неправильно показывает давление!
Бесполезный арр! Кривой источник данных! Выброшенные деньги! Не качайте!!!
Apixu Погода | Информационная панель API
Имя: | Погода Apixu |
Описание: | Apixu предлагает бесплатный Weather API (JSON) и Geo API как простой, доступный и полностью управляемый канал для программистов, разработчиков, предприятий и частных лиц. |
URL компании: | http://www.apixu.com |
API
1
API
Apixu Free Weather | Apixu предлагает бесплатный Weather API (JSON) и Geo API как простой, доступный и полностью управляемый канал для программистов, разработчиков, предприятий и частных лиц. |
Тяга
Приблизительный размер сообщества разработчиков
У нас недостаточно данных об этой компании, чтобы оценить размер сообщества разработчиков
Предполагаемый размер выделенных разработчиков
1
Звезды GitHub
Предполагаемый размер коммерческих разработчиков
Эта компания публично не раскрывает информацию о каких-либо интеграциях, клиентах или партнерствах, основанных на их API, поэтому мы не можем дать оценку.
Поддержка адаптации | Удерживающая опора | Поддержка бизнеса | |||
---|---|---|---|---|---|
SDK | Н | Руководства по передовому опыту | Н | Описание вариантов использования | Н |
Обзор аутентификации | Н | Примеры приложений/код | Н | Очистить страницу цен | Н |
Электронная документация | Н | Условия обслуживания | Н | Витрина/торговая площадка для приложений, созданных | Н |
Самостоятельный доступ к ключу API | Н | Блог | Н | Список изменений | Н |
Песочница | Н | Форум поддержки | Н | Страница состояния | Н |
Общий балл /5 | 0 | Общий балл /5 | 0 | Общий балл /5 | 0 |
Общая средняя | 2 | Общая средняя | 3 | Общая средняя | 2 |
Погода в Апису
API по регионам
Библиотеки и SDK
0
Библиотеки
Последние обновления
Большинство звезд
Большинство загрузок
Каналы связи
0
канала
Все каналы
Видите что-то, что вы хотели бы добавить или обновить? Есть идеи или предложения? Дайте нам знать!
Свяжитесь с нами
apixu-api · Темы GitHub · GitHub
Здесь
20 публичных репозиториев
соответствует этой теме.
..
фарахат80
/
реагировать на открытую погоду
Звезда
96
гравитон57
/
Погода
Звезда
47
Эзике
/
МояПогода
Звезда
40
андрейавраммсд
/
апиксу-го
Звезда
3
кокиддп
/
APIXURestClient-Android
Звезда
2
Йехия Арафа
/
сегодня
Звезда
1
рустамж
/
простойПогодаБот
Звезда
1
абхи82001
/
приложение погоды
Звезда
0
пушпак1997
/
приложение погоды
Звезда
0
система3
/
osbGeoПогода
Звезда
0
Ивайрор
/
угловое приложение погоды
Звезда
1
ашинасок
/
WeatherBuddy
Звезда
0
LobeM
/
WeatherApp
Звезда
0
шубх361096
/
WeatherApp
Звезда
0
дерзкий
/
brajenful.
github.io
Звезда
0
Стризель
/
сборщик информации о погоде
Звезда
0
КарлосФТГ
/
приложение погоды
Звезда
0
масфранжуо
/
WeatherApp
Звезда
0
рокмелквушок
/
реагировать-погода-API
Звезда
0
МайА14
/
метеобот
Звезда
0
Улучшить эту страницу
Добавьте описание, изображение и ссылки на
апиксу-апи
страницу темы, чтобы разработчикам было легче узнать о ней.
Курировать эту тему
Добавьте эту тему в свой репозиторий
Чтобы связать ваш репозиторий с
апиксу-апи
тему, перейдите на целевую страницу репозитория и выберите «управление темами».