Посели божество в своём умном доме

Следим за героем Godville в умном доме Home Assistant

Первое что нам нужно сделать , это получить ключ API в профиле игрока https://godville.net/user/profile . Он нужен нам чтобы получать расширенную информацию о герое.

Данные о герое будут доступны в формате JSON по ссылке https://godville.net/gods/api/<GOD_NAME>/<TOKEN> Выглядит все это примерно так :

{
  "name": "Победиктус",
  "godname": "Jeckill",
  "gender": "male",
  "level": 63,
  "max_health": 348,
  "inventory_max_num": 38,
  "motto": "Что посмеешь,то и пожмёшь",
  "clan": "Time Sliders",
  "clan_position": "фанат",
  "alignment": "нейтральный",
  "bricks_cnt": 1000,
  "wood_cnt": 625,
  "temple_completed_at": "2016-10-23T01:13:13+03:00",
  "pet": {
    "pet_name": "Рыжик «Твердолобый»",
    "pet_class": "дракошка",
    "pet_level": 16
  },
  "ark_completed_at": null,
  "arena_won": 25,
  "arena_lost": 34,
  "savings": "2592 тысячи",
  "health": 97,
  "quest_progress": 25,
  "exp_progress": 63,
  "godpower": 100,
  "gold_approx": "около 6 тысяч",
  "diary_last": "Перед смертью Сюжетный Полосёнок рассказал мне, чем закончится квест. Жаль, что убить его можно только один раз.",
  "town_name": "",
  "distance": 20,
  "arena_fight": false,
  "inventory_num": 10,
  "quest": "объявить выговор участникам заговора",
  "activatables": []
}

Данные обновляются раз в минуту , нам больше и не надо. Для получения данных в Home Assistant будем использовать RESTful Sensor. Добавим в configuration.yaml следующие строчки (не забывайте заменить имя бога и токен):

sensor:    
  - platform: rest
    resource: https://godville.net/gods/api/GOD_NAME/TOKEN
    name: godville
    json_attributes: 
      - health
      - level
      - diary_last
      - town_name
      - arena_fight
      - quest
      - gold_approx
    value_template: '{{ value_json.id }}'
    scan_interval: 60

Кроме значения сенсора (value_template) в секции attributes мы перечисляем атрибуты, которые мы хотим извлечь из ответа сервиса и добавить к нашему сенсору sensors.godville. Мы можем легко получить значение атрибутов с помощью платформы template sensor Home Assistant.

- platform: template
    sensors:
      god_health:
        value_template: '{{ states.sensor.godville.attributes.health }}'
        friendly_name: 'Здоровье Героя'
        unit_of_measurement: ''
      god_level:
        value_template: '{{ states.sensor.godville.attributes.level }}'
        friendly_name: 'Уровень Героя'
        unit_of_measurement: ''
      god_city:
        value_template: '{{ states.sensor.godville.attributes.town_name }}'
        friendly_name: 'Город'
        unit_of_measurement: ''
      quest_city:
        value_template: '{{ states.sensor.godville.attributes.quest }}'
        friendly_name: 'Квест'
        unit_of_measurement: ''
      arena_fight:
        value_template: '{{ states.sensor.godville.attributes.arena_fight }}'
        friendly_name: 'На Арене'
        unit_of_measurement: ''
      diary_last:
        value_template: '{{ states.sensor.godville.attributes.diary_last }}'
        friendly_name: 'Дневник'
        unit_of_measurement: ''
      gold_approx:
        value_template: '{{ states.sensor.godville.attributes.gold_approx }}'
        friendly_name: 'Золото'
        unit_of_measurement: ''

Сохраняем, перезапускаем Home Assistant и проверяем:

Теперь можно писать автоматизации на основе полученных данных, менять иконки и многое другое. Зачем все это? Просто потому что мы можем!

Читайте также:

1 комментарий

  1. Арсений:

    За Годвилль всегда ++++

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

Ваш адрес email не будет опубликован.