Apixu: Получение прогноза погоды с Apixu.com — Logicmachine.net.ru | Автоматика для дома

Содержание

Получение прогноза погоды с Apixu.com — Logicmachine.net.ru | Автоматика для дома

Для получения прогноза погоды с сервиса Apixu.com Вам нужно:

  1. Зарегистрировать бесплатный аккаунт на сайте https://www.apixu.com/ . По завершении регистрации вы получите API key, который будет использован далее.
  2. Создать групповые адреса для значений прогноза погоды.
    Запустите следующий код один раз из любого скрипта, например, из скрипта по расписанию.
    Зайдите во вкладку 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 вы можете поменять “основу” адреса.
    Результатом работы скрипта будет следующее:

  3. Создать скрипт по расписанию, например, с такими параметрами:
    В данном примере скрипт будет запрашивать прогноз раз в 10 минут. Убедитесь, что скрипт не выполняется слишком часто (не более 1 раза в 5 минут).
  4. Вставить следующий код в редактор скрипта.
    Переменной 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)

 

Готово!

Данные прогноза погоды находятся в групповых адресах.

Рассмотрим примеры использования этих данных.

По текущей скорости ветра можно активировать “защиту от ветра”. Для этого поможет событийный скрипт, запускающийся по объекту текущей скорости ветра.

  1. Зайдите во вкладку Scripting.
  2. Нажмите кнопку Event-based.
  3. В левом нижнем углу экрана нажмите Add new script.
  4. В поле Group address / tag укажите групповой адрес текущей скорости ветра.
    В нашем случае это адрес 33/0/4.
  5. Установите галочку Active:

  6. В редакторе скрипта вставьте следующий код:
    Исходный код   
    -- скорость ветра указывается в км/ч
    -- критическая скорость при превышении которой нужно включать защиту от ветра
    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

 

Также вы можете отобразить данный прогноза на экране визуализации.

По ссылке вы можете скачать бэкап виджета визуализации.

Скачать архив виджета

Выглядеть он будет следующим образом:

Для импорта данного виджета в Вашу визуализацию Вам нужно сделать следующее:

  1. Выбрать вкладку Vis. structure.
  2. Выбрать подвкладку Layouts / Widjets.
  3. В строке папки Widjets нажать на зеленый “+”.
  4. В появившемся окне нажать Import.
  5. Указать путь к скачанному файлу.
  6. Добавить на необходимую страницу иконку, по которой будет открываться виджет.
  7. В параметрах иконки в поле 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

        Улучшить эту страницу

        Добавьте описание, изображение и ссылки на
        апиксу-апи
        страницу темы, чтобы разработчикам было легче узнать о ней.

        Курировать эту тему

        Добавьте эту тему в свой репозиторий

        Чтобы связать ваш репозиторий с
        апиксу-апи
        тему, перейдите на целевую страницу репозитория и выберите «управление темами».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *