Quantcast
Channel: Configuration - Home Assistant Community
Viewing all 106113 articles
Browse latest View live

Where are the values in the node dropdown list stored?

$
0
0

@palengh wrote:

I am migrating to Zwave over MQTT, but realize my node list is poorly updated.

So all my nodes are un-identified in Zwave over MQTT, only showing the Node ID.

The list I am searching is the one showing all Z-wave nodes in the build-in Z-wave integration in Supervisor. Where is this stored?

Posts: 6

Participants: 2

Read full topic


Tv sleep timer

$
0
0

@lGregl wrote:

Hi I’m trying to do a very simple input select sleep timer for the tv

In configuration

input_select:
  tv_sleep_timer:
    name: tv_sleep_timer
    options:
    - 30 minutes
    - 1 hour
    - 2 hours
    initial: 1 hour

timer:
  samsung_tv30:
    duration: '00:30:00'
  samsung_tv1:
    duration: '01:00:00'
  samsung_tv2:
    duration: '02:00:00'


scripts

'tv_sleep_timer':
  alias: Tv sleep timer
  sequence:
  - service: timer.start
    data_template:
      entity_id: >
         {% if is_state("input_select.tv_sleep_timer", "30 minutes") %} timer.samsung_tv30
         {% elif is_state("input_select.tv_sleep_timer", "1 hour") %} timer.samsung_tv1
         {% elif is_state("input_select.tv_sleep_timer", "2 hours") %} timer.samsung_tv2
         {% endif %}


and automation

- id: 'tv sleep off'
  alias: Tv sleep off
  trigger:
    - platform: event
      event_type: timer.finished
      event_data:
        entity_id: timer.samsung_tv30
    - platform: event
      event_type: timer.finished
      event_data:
        entity_id: timer.samsung_tv1
    - platform: event
      event_type: timer.finished
      event_data:
        entity_id: timer.samsung_tv2
  action:
    service: media_player.turn_off
    entity_id: media_player.samsung_tv_remote

I’ve entered the entity into lovelace

but the timers wont trigger?

I can’t see where the error is and I’m sure it must be very obvious?

Thanks

Posts: 2

Participants: 2

Read full topic

Homekit: Home Assistant switch state doesn't update

$
0
0

@NicolasG wrote:

Hey there,
I built my own alarm system which works great inside my smart home system, however it looks like Homekit doesn’t update the state of the switch of the alarm. It is just in Homekit though. I see the real state both in Home Assistant as well as in Alexa.

  - platform: template
    switches:
     alarm_switch:
       value_template: "{{ is_state('input_boolean_alarm_state', 'on')}}"
       turn_on:
         service: input_boolean.turn_on
         entity_id: input_boolean.alarm_state
       turn_off:
         service: input_boolean.turn_off
         entity_id: input_boolean.alarm_state

both the switch and boolean number show as off in Home Assistant. And the Alexa app also shows it as off. However in Homekit it still shows as “on”.
All of my other Home Assistant switches update just fine in my Homekit setup. It is weird

Functionality of the alarm system:
When I press my Homekit connected Philips Hue Button next to the bedroom, the alarm switches to On.
In the mornings there is a Hue motion sensor next to my kitchen which triggers an Alexa routine to switch the alarm off. Everything works great, just Homekit still shows it as “on” even though it is not.

Any ideas?

Posts: 1

Participants: 1

Read full topic

Fully Kiosk Browser ScreenOn ScreenOff binary sensor

$
0
0

@Sylvain wrote:

Hi All,

I managed to add a sensor for FKB to check if motion is detected:

  - platform: mqtt
    name: "BRG Fully Motion"
    state_topic: "fully/event/onMotion/MyDeviceID"
    value_template: '{{value_json.type}}'
    payload_on: visual
    off_delay: 10
    device_class: motion

thats cool, but I also would like to know if the screen is on. Should be simple, right? Well, perhaps. but I’m stuck :)/ The problem is that FKB reports the screen status in seperate topics for screenOn and screenOff

Screen on: MQTT message

fully/event/screenOn/MyDeviceID
{
  "deviceID":"MyDeviceID"
  "event":"screenOn"
}

Screen off: MQTT message

fully/event/screenOff/MyDeviceID
{
  "deviceID":"MyDeviceID"
  "event":"screenOff"
}

Anyone got a clue how to deal with this in Home Assistant?

Posts: 1

Participants: 1

Read full topic

Need help for automation: trigger and value_template

$
0
0

@chemelli wrote:

Hi,

I would like to build a dynamic list of entities for my automation.
Searched all over but I didn’t find a clear way to proceed. So I have some questions:

  • Should I use a value_template in trigger ?
  • If so, value_template should return a list of entity_ids or a true/false condition ?

Tested without success the following couple of approches:

 trigger:
    platform: template
    value_template: "{% set list = namespace(id=[]) %}
         {% for s in states.sensor %}
            {% if s.object_id.startswith('shelly') and s.object_id.endswith('_uptime_attr') %}
              {% set list.id = list.id + [ s.entity_id ] %}
            {% endif %}
          {% endfor %}
          {{ list.id }}"

and

{% for state in states %}
  {% if state.entity_id | regex_match('.*\.shelly.*_uptime_attr') %}
    {{ state. }},
  {% endif %}
{% endfor %}

Any suggestion is more than welcome.

Simone

Posts: 2

Participants: 2

Read full topic

Fully Kiosk Camera Question

$
0
0

@Madseason41 wrote:

I am trying to record the Fully Kiosk Browser tablet camera on motion.

I used to accomplish this by adding the camera as generic camera in Homeassistant…
Camera:

  - platform: generic
    still_image_url: http://IP:2323?cmd=getCamshot&password=redacted
    name: Wall Panel

I then had trusted networks and api_password setup I believe. Then I would add something like the link below in motioneye. Motioneye would then send me a MQTT message notifying me off motion, and making a recording.

http://IP:8123/api/camera_proxy/camera.wall_panel

The api proxy link no longer works in motioneye, nor does the fully kiosk link.

Any idea how I can record the camera?

I have tried the camera.record service and it says camera not compatible. Maybe FFMPEG?

I setup a binary sensor to monitor motion from the tablet like below:

Sensor:

  - platform: mqtt
    name: Motion Wall Panel
    state_topic: "fully/event/onMotion/redacted_id"
    value_template: "{{ value_json.event }}"
    expire_after: 5

Binary_sensor:

  - platform: template
    sensors:
      motion_wall_panel:
        friendly_name: "Wall Panel"
        device_class: motion
        value_template: "{{ is_state('sensor.motion_wall_panel', 'onMotion') }}"

Any help would be appreciated!

Posts: 1

Participants: 1

Read full topic

Group reports Unknown State instead of On/Off

$
0
0

@curt7000 wrote:

I created a group within groups.yaml , but the state reports as Unknown. I’ve ensured the sensor reports status as On/Off. Does anyone know how to get the group to report On/Off?

bypass:
  name: Bypass Alert
  icon: mdi:alert
  entities:
    - sensor.monoprice_laundry_room_window_bypass
    - sensor.monoprice_basement_north_window_bypass
    - sensor.monoprice_basement_south_window_bypass
    - sensor.monoprice_office_north_window_bypass
    - sensor.monoprice_office_south_window_bypass
    - sensor.monoprice_patio_window_bypass
    - sensor.monoprice_living_room_window_bypass
    - sensor.monoprice_dining_room_window_bypass
    - sensor.monoprice_basement_backyard_door_bypass
    - sensor.monoprice_basement_frontyard_door_bypass
    - sensor.monoprice_front_door_bypass
    - sensor.monoprice_side_door_bypass

Posts: 3

Participants: 2

Read full topic

Asuswrt error: AttributeError: 'SshConnection' object has no attribute '_client'


Older SamsungTV - turn_on_action w/HDMI?

$
0
0

@jasin81 wrote:

I currently have 2 Samsung TV’s that I like to control through Home Assistant. The newer TV supports WOL, which I have working using:

turn_on_action:
- service: wake_on_lan.send_magic_packet

However, the older TV (~2015) allows me to control things like Input, Volume, Turn Off, etc once the TV is on, but I would like to also have the TV turned on. I have messed with a Broadlink IR transmitter, which works, but the issue is I have some automation’s that Turn on the TV etc, but if the TV is already on, it turns it off. This TV has a roku connected and supports CEC through Samsung’s Anynet+ which will turn on the TV if I hit any button on the roku remote. Is is possible to make the turn_on_action of that TV a Roku command? Like goto home screen? Or any CEC command that will turn the TV on? Thanks in advance for any help!

Posts: 2

Participants: 2

Read full topic

Themes: UI config++ vs

$
0
0

@koQuarium wrote:

I am experimenting with HA for a while (love it) and am now working at adjusting the UI. I made a layout / structure with the UI editor, so far so good. Now I want to adjust the look & feel and understand that this actually comes down to applying a theme. However, I cannot select a theme in the UI editor.


I assume I should have a drop down here with some themes - correct?

In my user profile I selected “back-end selected”.

I installed a theme in Hacs.

I expected this theme to be available in the UI Editor, but it is not.

What is going wrong?

I have searched the Internet but I am still struggling. I see posts about defining themes in “themes.yaml” (so called yaml-mode?), or configuring “lovelace config file”. Is this indeed the way to go? Or is configuring themes.yaml etc not necessary and is adding / applying possible with the UI editor in conjunction with Hacs and my user profile?

My experience is that (for newbees) it sometimes is difficult to find the right information about HA. HA develops quickly and that is wonderful. Consequence however is that a lot of information on the Internet (and the formal HA documentation[?]) often is outdated, witch can be confusing. Therefore this check about the way to move forward.

Posts: 2

Participants: 2

Read full topic

Finding Conbee device with deConz after migrating from Pi3 to VirtualBox

$
0
0

@aktill wrote:

Hi folks,

Apologize for having to ask, but after reading through the documentation and about 50 threads, I’m still stuck.

I recently used a YouTube video from “The Hookup” to migrate my Home Assistant instance from a pi3 to Virtualbox. All seems well except for figuring out which port to specify for the Conbee stick.

I’m using the Supervisor/Hassio deconz integration, and that’s running the latest version. When I got to Hardware, my available listed port choices are:

  • serial:
    • /dev/ttyS2
    • /dev/ttyS3
    • /dev/ttyS1
    • /dev/ttyS0

…all of which lead to an endless loop of:
11:50:16:516 wait reconnect 9 seconds
etc, which the threads seem to say is showing I haven’t chosen the right port.

Likewise, in Phoscon itself if I look at the gateway the firmwear setting shows not connected, which verifies the above as not the correct port.

I found a reference in some of the Conbee docs to something about needing to give the user authorization to a permission group, but don’t know if that’s needed with the Hassio integration or if so honestly how to do it.

Any help gratefully appreciated!

Posts: 1

Participants: 1

Read full topic

How to prevent mqtt automation from triggering upon restart homeassistant or reload automations?

$
0
0

@megapearl wrote:

Hi,

Hope someone can help me out.

I have a pushbutton (binary_sensor) and a door relay (switch) which are operated through mqtt, how can I prevent them from triggering when restarting homeassistant or reloading the automations?

My configuration:

Raspberry Pi with homeassistant v0.106.6

configuration.yaml

binary_sensor:
  - platform: rpi_gpio
    ports:
      4: Frontdoor Pushbutton
      27: Backdoor Pushbutton

switch:
  - platform: rpi_gpio
    ports:
      5: Frontdoor Lock
      6: Backdoor Lock
    invert_logic: true

lock:
  - platform: template
    name: Frontdoor
    value_template: "{{ is_state('switch.frontdoor_lock', 'off') }}"
    unlock:
      service: script.turn_on
      entity_id: script.unlock_frontdoor
    lock:
      service: switch.turn_off
      entity_id: switch.frontdoor_lock
  - platform: template
    name: Backdoor
    value_template: "{{ is_state('switch.backdoor_lock', 'off') }}"
    unlock:
      service: script.turn_on
      entity_id: script.unlock_backdoor
    lock:
      service: switch.turn_off
      entity_id: switch.backdoor_lock

mqtt_statestream:
  base_topic: home-domotica
  publish_attributes: true
  publish_timestamps: true
  include:
    entities:
      - binary_sensor.backdoor_pushbutton
      - binary_sensor.frontdoor_pushbutton
      - lock.frontdoor
      - lock.backdoor

scripts.yaml

unlock_frontdoor:
  alias: Frontdoor Unlock
  sequence:
  - service: switch.turn_on
    entity_id: switch.frontdoor_lock
  - delay: 00:00:04
  - service: switch.turn_off
    entity_id: switch.frontdoor_lock
unlock_backdoor:
  alias: Backdoor Unlock
  sequence:
  - service: switch.turn_on
    entity_id: switch.backdoor_lock
  - delay: 00:00:04
  - service: switch.turn_off
    entity_id: switch.backdoor_lock

automations.yaml

- id: '154895186df23'
  alias: Frontdoor Lock
  trigger:
  - platform: mqtt
    topic: home-domotica/lock/frontdoor/set
  condition:
  - condition: state
    entity_id: script.unlock_frontdoor
    state: 'off'
  action:
  - service_template: lock.{{trigger.payload}}
    entity_id: lock.frontdoor
- id: '154895142df79'
  alias: Backdoor Lock
  trigger:
  - platform: mqtt
    topic: home-domotica/lock/backdoor/set
  condition:
  - condition: state
    entity_id: script.unlock_backdoor
    state: 'off'
  action:
  - service_template: lock.{{trigger.payload}}
    entity_id: lock.backdoor

Ubuntu VM with homeassistant v0.106.6 in venv.

configuration.yaml:

lock:
  - platform: mqtt
    name: "Frontdoor"
    state_topic: "home-domotica/lock/frontdoor/state"
    command_topic: "home-domotica/lock/frontdoor/set"
    payload_unlock: "unlock"
    payload_lock: "lock"
    state_locked: "locked"
    state_unlocked: "unlocked"
#   qos: 1
#   retain: true
#   optimistic: false
    value_template: '{{ value }}'
  - platform: mqtt
    name: "Backdoor"
    state_topic: "home-domotica/lock/backdoor/state"
    command_topic: "home-domotica/lock/backdoor/set"
    payload_unlock: "unlock"
    payload_lock: "lock"
    state_locked: "locked"
    state_unlocked: "unlocked"
#   qos: 1
#   retain: true
#   optimistic: false
    value_template: '{{ value }}'

Tried with retain: false and/or optimistic: true but as soon as the raspberry pi is booting or homeassistant is restarting or I reload the automations or I turn off and on the lock automation both frontdoor and backdoor locks are cycling, as in opening and closing. How can I prevent this?

Any help will be appreciated!

Regards,
Donald.

Posts: 1

Participants: 1

Read full topic

Schedule wake on lan

$
0
0

@boyderama wrote:

Hello all,

I’m new to HA and have read a great deal but can’t get the following to work. I’d really appreciate your help.

I have switches setup for Wake On Lan for several devices on my network. They work perfectly.

I am trying to setup an automation which would send a wake on lan to my desktop pc on Saturday at 01:00. I’ve used the GUI for automations and can see you can specify a time but no option for day or week etc.

I am using the following code in automations:

- id: '1584208711323'
  alias: Wake Desktop PC
  description: ''
  trigger:
  - at: 01:00
    platform: time
  condition:
    condition: time
    after: 00:00:00
    before: 23:59:00
    weekday:
    - sat
  action:
  - data: {}
    entity_id: switch.desktop_pc
    service: switch.turn_on

I manually added the date part as the GUI doesn’t allow. But it still doesn’t work so the coding must be wrong.

Thanks in advance.
Boyd

Posts: 3

Participants: 2

Read full topic

Theme / CSS inheritance when using a theme per view in Lovelace

$
0
0

@scottsweb wrote:

I have two themes configured. theme_a and theme_b. Theme A is a light theme that I use as the default for HA. Theme B is a dark theme used for a specific view only. In Lovelace it is configured like so:

views:
  - title: Dark Section
    icon: mdi:tablet
    theme: theme_b
    path: tablet

I am struggling with inheritance and contamination of styles between the two themes. In theme_a for example, I have defined: paper-item-icon-active-color as a yellow colour #FDD835. I have then chosen a different colour in theme_b: paper-item-icon-active-color: '#3182b7' but I am still seeing items in yellow on the Dark Section view.

It is worth noting that I am using the theme refresh service after every change: frontend.reload_themes but it doesn’t fix the issue.

I wondered if there is some trick I am missing when using a theme for a specific view? … or is it simply not possible for a single view to control some CSS properties?

Posts: 1

Participants: 1

Read full topic

Command not found Harmony but is there


Is Zwave in HA really that fragile?

$
0
0

@azevenhuizen wrote:

I have been stuggling for quite some time now to get ha setup and ready with zwave.
I am switching from Fibaro since my old hc2 died, so I have only zwave devices here (appr 60psc), of which most are Fibaro. I use an Rpi B and Aeotec dongle, with usb connected ssd drive (no sd card installed). Installed it with latest image.

But regaring those zwave devices:

  • I notice including is not always as smooth as it should be. Many times I have to add devices twice, to be able to get all entities available. Remove/Include. And I even had to remove a device manually from the register files twice, before I could add it again.
  • Also I noticed that patientce is key. Very often it just takes very long for devices to show up. Under entities they show up much quicker, which is a bit confusing to me.
  • Many time changes do not reflect and I have to reboot the pi or sometimes only the ha server.
  • Booting (and especially shutdown) takes ages. This is very annoying during the configuration of these devices, since I have to reboot quit often.
  • Since I have been adding more and more devices, it now starts loosing some of them after a reboot. I have then to remove and re-add them (again).
  • While adding more and more devices, the (re)boot times go up very quickly. Sometimes it takes 5 minutes for zwave to be ready.
  • Then they get all weird names and renaming each entitity one-by-one is really a burdon. Later I noticed that for some device you can do a batch rename from the devices tab, but this does not apply always.
  • Some light show up as switches and I have to make templates to basicly create copies?

So in short the questions,

  • Is HA really capable of running a full house of zwave powered devices. I think it all runs a bit messy
  • Is it the RPi that is holding things down. (I did notice it runs much quicker I switched to the ssd, but now booting becomes slow again).

Posts: 2

Participants: 2

Read full topic

Combine two mdi icons?

$
0
0

@jriker1 wrote:

Topic is probably obvious, but I want to have one button in a remote do two things. One by default and one double tap. So it will jump forward and jump back. They have a play/pause button already but any way to combine visually say skip-forward and skip-backwards in one button? Using custom:button-card by the way.

Posts: 1

Participants: 1

Read full topic

Template won't trigger automation

$
0
0

@koenhaemels wrote:

Hi There,

I’ve added a custom sensor that return the dusk time.
I’m using this sensor to trigger my automation to close the blinds.
But i’ve tried several templates forms to try to trigger the automation, but with no succes.
Is the output from the sensor wrong to trigger an automation?
The output is for example:

2020-03-14T19:19:56+01:00

Automation:

- id: '1575148683669'
  alias: 'Blinds: Close blinds'
  description: Close blinds at dusk
  trigger:
  - platform: template
    value_template: '{{ as_timestamp(now()) == as_timestamp(states.sensor.dusk.state)
      }}'
  condition: []
  action:
  - data:
      entity_id:
      - cover.ikea_tradfri_kadrilj_links
      - cover.ikea_tradfri_kadrilj_rechts
    service: cover.close_cover
  - data:
      message: Blinds are closing at {{ now().strftime('%H:%M') }}
      title: Blinds
    service: notify.mobile_app_iphone_van_koen

Anyone can inform me?

Many thanks!

Posts: 2

Participants: 2

Read full topic

Simple switch schedule automation to control a water heater

$
0
0

@davidusb wrote:

Dear all.
I’m trying to implement a simple scheduled switch automation to control a water heater.
For now I just want to turn on the water heater at a given time. For this I’m using a input_datetime. This is working fine. My problem is to turn off the heater. I want to use an input_select to let the user choose a delay (in hours) to turn off the heater. I can’t get this to work. With my above code I get the heater on at the desired time but it doesn’t turn off one hour later.
What I’m doing wrong?
Thank you for your help.

  - alias: 'Water Heather automation'
    trigger:
      - platform: template
        value_template: "{{ states.sensor.time.state == states.input_datetime.water_heater_on_time.state[0:5] }}"
    action:
    - service: switch.turn_on
      entity_id: switch.water_heater
        
  - alias: 'Water Heather OFF 1h'
    initial_state: true
    hide_entity: True
    trigger:
      - platform: template
        value_template: "{{ now().hour * 3600 > states.input_datetime.water_heater_on_time.attributes.timestamp + 3600 | int and is_state('input_select.water_heater_mode','1h') }}"
    action:
    - service: homeassistant.turn_off
      entity_id: switch.water_heater

Posts: 1

Participants: 1

Read full topic

JINJA template assistance needed -

$
0
0

@ohadbenita wrote:

Hi, been trying to wrap my head around fetching the latest version from docker hub registry, consider the following snippet:

{% set value_json = [{"layer": "", "name": "latest"}, {"layer": "", "name": "0.100.0.dev20190921"}, {"layer": "", "name": "0.100.0.dev20190922"}, {"layer": "", "name": "0.100.0.dev20190924"}, {"layer": "", "name": "0.100.0.dev20190925"}, {"layer": "", "name": "0.100.0.dev20190926"}, {"layer": "", "name": "0.100.0.dev20190927"}, {"layer": "", "name": "0.100.0.dev20191001"}, {"layer": "", "name": "0.100.0.dev20191002"}, {"layer": "", "name": "0.100.0.dev20191003"}, {"layer": "", "name": "0.100.0b0"}, {"layer": "", "name": "0.100.0b1"}, {"layer": "", "name": "0.100.0b2"}, {"layer": "", "name": "0.100.0b3"}, {"layer": "", "name": "0.100.1"}, {"layer": "", "name": "0.100.2"}, {"layer": "", "name": "0.100.3"}, {"layer": "", "name": "0.101.0"}, {"layer": "", "name": "0.101.0.dev20191004"}, {"layer": "", "name": "0.101.0.dev20191005"}, {"layer": "", "name": "0.101.0.dev20191006"}, {"layer": "", "name": "0.101.0.dev20191008"}, {"layer": "", "name": "0.101.0.dev20191011"}, {"layer": "", "name": "0.101.0.dev20191012"}, {"layer": "", "name": "0.101.0.dev20191013"}, {"layer": "", "name": "0.101.0.dev20191014"}, {"layer": "", "name": "0.101.0.dev20191015"}, {"layer": "", "name": "0.101.0.dev20191016"}, {"layer": "", "name": "0.101.0.dev20191017"}, {"layer": "", "name": "0.101.0.dev20191018"}, {"layer": "", "name": "0.101.0.dev20191019"}, {"layer": "", "name": "0.101.0.dev20191020"}, {"layer": "", "name": "0.101.0.dev20191021"}, {"layer": "", "name": "0.101.0.dev20191022"}, {"layer": "", "name": "0.101.0.dev20191023"}, {"layer": "", "name": "0.101.0b0"}, {"layer": "", "name": "0.101.0b1"}, {"layer": "", "name": "0.101.0b2"}, {"layer": "", "name": "0.101.0b3"}, {"layer": "", "name": "0.101.0b4"}, {"layer": "", "name": "0.101.1"}, {"layer": "", "name": "0.101.2"}, {"layer": "", "name": "0.101.3"}, {"layer": "", "name": "0.102.0"}, {"layer": "", "name": "0.102.0.dev20191024"}, {"layer": "", "name": "0.102.0.dev20191025"}, {"layer": "", "name": "0.102.0.dev20191026"}, {"layer": "", "name": "0.102.0.dev20191027"}, {"layer": "", "name": "0.102.0.dev20191028"}, {"layer": "", "name": "0.102.0.dev20191030"}, {"layer": "", "name": "0.102.0.dev20191031"}, {"layer": "", "name": "0.102.0.dev20191101"}, {"layer": "", "name": "0.102.0.dev20191102"}, {"layer": "", "name": "0.102.0.dev20191103"}, {"layer": "", "name": "0.102.0.dev20191104"}, {"layer": "", "name": "0.102.0.dev20191105"}, {"layer": "", "name": "0.102.0.dev20191106"}, {"layer": "", "name": "0.102.0.dev20191107"}, {"layer": "", "name": "0.102.0.dev20191108"}, {"layer": "", "name": "0.102.0.dev20191109"}, {"layer": "", "name": "0.102.0.dev20191110"}, {"layer": "", "name": "0.102.0.dev20191111"}, {"layer": "", "name": "0.102.0.dev20191112"}, {"layer": "", "name": "0.102.0.dev20191113"}, {"layer": "", "name": "0.102.0.dev20191114"}, {"layer": "", "name": "0.102.0.dev20191116"}, {"layer": "", "name": "0.102.0.dev20191117"}, {"layer": "", "name": "0.102.0.dev20191118"}, {"layer": "", "name": "0.102.0.dev20191121"}, {"layer": "", "name": "0.102.0.dev20191122"}, {"layer": "", "name": "0.102.0.dev20191123"}, {"layer": "", "name": "0.102.0.dev20191125"}, {"layer": "", "name": "0.102.0.dev20191126"}, {"layer": "", "name": "0.102.0.dev20191127"}, {"layer": "", "name": "0.102.0.dev20191128"}, {"layer": "", "name": "0.102.0.dev20191129"}, {"layer": "", "name": "0.102.0.dev20191130"}, {"layer": "", "name": "0.102.0.dev20191201"}, {"layer": "", "name": "0.102.0.dev20191202"}, {"layer": "", "name": "0.102.0.dev20191203"}, {"layer": "", "name": "0.102.0.dev20191204"}, {"layer": "", "name": "0.102.0.dev20191205"}, {"layer": "", "name": "0.102.0b0"}, {"layer": "", "name": "0.102.0b1"}, {"layer": "", "name": "0.102.0b2"}, {"layer": "", "name": "0.102.0b3"}, {"layer": "", "name": "0.102.1"}, {"layer": "", "name": "0.102.2"}, {"layer": "", "name": "0.102.3"}, {"layer": "", "name": "0.103.0"}, {"layer": "", "name": "0.103.0b0"}, {"layer": "", "name": "0.103.0b1"}, {"layer": "", "name": "0.103.1"}, {"layer": "", "name": "0.103.2"}, {"layer": "", "name": "0.103.3"}, {"layer": "", "name": "0.103.4"}, {"layer": "", "name": "0.103.5"}, {"layer": "", "name": "0.103.6"}, {"layer": "", "name": "0.104.0"}, {"layer": "", "name": "0.104.0.dev20191206"}, {"layer": "", "name": "0.104.0.dev20191207"}, {"layer": "", "name": "0.104.0.dev20191208"}, {"layer": "", "name": "0.104.0.dev20191209"}, {"layer": "", "name": "0.104.0.dev20191211"}, {"layer": "", "name": "0.104.0.dev20191212"}, {"layer": "", "name": "0.104.0.dev20191213"}, {"layer": "", "name": "0.104.0.dev20191214"}, {"layer": "", "name": "0.104.0.dev20191215"}, {"layer": "", "name": "0.104.0.dev20191216"}, {"layer": "", "name": "0.104.0.dev20191218"}, {"layer": "", "name": "0.104.0.dev20191219"}, {"layer": "", "name": "0.104.0.dev20191220"}, {"layer": "", "name": "0.104.0.dev20191221"}, {"layer": "", "name": "0.104.0.dev20191222"}, {"layer": "", "name": "0.104.0.dev20191223"}, {"layer": "", "name": "0.104.0.dev20191224"}, {"layer": "", "name": "0.104.0.dev20191225"}, {"layer": "", "name": "0.104.0.dev20191226"}, {"layer": "", "name": "0.104.0.dev20191228"}, {"layer": "", "name": "0.104.0.dev20191230"}, {"layer": "", "name": "0.104.0.dev20191231"}, {"layer": "", "name": "0.104.0.dev20200101"}, {"layer": "", "name": "0.104.0.dev20200102"}, {"layer": "", "name": "0.104.0.dev20200103"}, {"layer": "", "name": "0.104.0.dev20200104"}, {"layer": "", "name": "0.104.0.dev20200106"}, {"layer": "", "name": "0.104.0.dev20200107"}, {"layer": "", "name": "0.104.0.dev20200108"}, {"layer": "", "name": "0.104.0b0"}, {"layer": "", "name": "0.104.0b1"}, {"layer": "", "name": "0.104.0b2"}, {"layer": "", "name": "0.104.0b3"}, {"layer": "", "name": "0.104.0b5"}, {"layer": "", "name": "0.104.1"}, {"layer": "", "name": "0.104.2"}, {"layer": "", "name": "0.104.3"}, {"layer": "", "name": "0.105.0"}, {"layer": "", "name": "0.105.0.dev20200109"}, {"layer": "", "name": "0.105.0.dev20200110"}, {"layer": "", "name": "0.105.0.dev20200111"}, {"layer": "", "name": "0.105.0.dev20200112"}, {"layer": "", "name": "0.105.0.dev20200113"}, {"layer": "", "name": "0.105.0.dev20200114"}, {"layer": "", "name": "0.105.0.dev20200115"}, {"layer": "", "name": "0.105.0.dev20200116"}, {"layer": "", "name": "0.105.0.dev20200117"}, {"layer": "", "name": "0.105.0.dev20200118"}, {"layer": "", "name": "0.105.0.dev20200119"}, {"layer": "", "name": "0.105.0.dev20200120"}, {"layer": "", "name": "0.105.0.dev20200121"}, {"layer": "", "name": "0.105.0.dev20200122"}, {"layer": "", "name": "0.105.0.dev20200123"}, {"layer": "", "name": "0.105.0.dev20200124"}, {"layer": "", "name": "0.105.0.dev20200125"}, {"layer": "", "name": "0.105.0.dev20200126"}, {"layer": "", "name": "0.105.0.dev20200127"}, {"layer": "", "name": "0.105.0.dev20200128"}, {"layer": "", "name": "0.105.0.dev20200129"}, {"layer": "", "name": "0.105.0.dev20200131"}, {"layer": "", "name": "0.105.0.dev20200201"}, {"layer": "", "name": "0.105.0.dev20200202"}, {"layer": "", "name": "0.105.0.dev20200203"}, {"layer": "", "name": "0.105.0.dev20200204"}, {"layer": "", "name": "0.105.0.dev20200205"}, {"layer": "", "name": "0.105.0b0"}, {"layer": "", "name": "0.105.0b1"}, {"layer": "", "name": "0.105.0b2"}, {"layer": "", "name": "0.105.0b3"}, {"layer": "", "name": "0.105.0b4"}, {"layer": "", "name": "0.105.0b5"}, {"layer": "", "name": "0.105.0b6"}, {"layer": "", "name": "0.105.0b7"}, {"layer": "", "name": "0.105.1"}, {"layer": "", "name": "0.105.2"}, {"layer": "", "name": "0.105.3"}, {"layer": "", "name": "0.105.4"}, {"layer": "", "name": "0.105.5"}, {"layer": "", "name": "0.106.0"}, {"layer": "", "name": "0.106.0.dev20200206"}, {"layer": "", "name": "0.106.0.dev20200207"}, {"layer": "", "name": "0.106.0.dev20200208"}, {"layer": "", "name": "0.106.0.dev20200209"}, {"layer": "", "name": "0.106.0.dev20200210"}, {"layer": "", "name": "0.106.0.dev20200211"}, {"layer": "", "name": "0.106.0.dev20200212"}, {"layer": "", "name": "0.106.0.dev20200213"}, {"layer": "", "name": "0.106.0.dev20200214"}, {"layer": "", "name": "0.106.0.dev20200215"}, {"layer": "", "name": "0.106.0.dev20200216"}, {"layer": "", "name": "0.106.0.dev20200217"}, {"layer": "", "name": "0.106.0.dev20200218"}, {"layer": "", "name": "0.106.0.dev20200219"}, {"layer": "", "name": "0.106.0.dev20200220"}, {"layer": "", "name": "0.106.0b0"}, {"layer": "", "name": "0.106.0b1"}, {"layer": "", "name": "0.106.0b2"}, {"layer": "", "name": "0.106.0b4"}, {"layer": "", "name": "0.106.0b5"}, {"layer": "", "name": "0.106.1"}, {"layer": "", "name": "0.106.2"}, {"layer": "", "name": "0.106.3"}, {"layer": "", "name": "0.106.4"}, {"layer": "", "name": "0.106.5"}, {"layer": "", "name": "0.106.6"}, {"layer": "", "name": "0.107.0.dev20200221"}, {"layer": "", "name": "0.107.0.dev20200222"}, {"layer": "", "name": "0.107.0.dev20200223"}, {"layer": "", "name": "0.107.0.dev20200224"}, {"layer": "", "name": "0.107.0.dev20200225"}, {"layer": "", "name": "0.107.0.dev20200226"}, {"layer": "", "name": "0.107.0.dev20200227"}, {"layer": "", "name": "0.107.0.dev20200228"}, {"layer": "", "name": "0.107.0.dev20200229"}, {"layer": "", "name": "0.107.0.dev20200301"}, {"layer": "", "name": "0.107.0.dev20200302"}, {"layer": "", "name": "0.107.0.dev20200303"}, {"layer": "", "name": "0.107.0.dev20200304"}, {"layer": "", "name": "0.107.0.dev20200305"}, {"layer": "", "name": "0.107.0.dev20200306"}, {"layer": "", "name": "0.107.0.dev20200307"}, {"layer": "", "name": "0.107.0.dev20200308"}, {"layer": "", "name": "0.107.0.dev20200309"}, {"layer": "", "name": "0.107.0.dev20200310"}, {"layer": "", "name": "0.107.0.dev20200311"}, {"layer": "", "name": "0.107.0.dev20200312"}, {"layer": "", "name": "0.107.0b0"}, {"layer": "", "name": "0.107.0b1"}, {"layer": "", "name": "0.107.0b2"}, {"layer": "", "name": "0.107.0b3"}, {"layer": "", "name": "0.108.0.dev20200313"}, {"layer": "", "name": "0.108.0.dev20200314"}, {"layer": "", "name": "0.14.2"}, {"layer": "", "name": "0.15"}, {"layer": "", "name": "0.16.1"}, {"layer": "", "name": "0.17.3"}, {"layer": "", "name": "0.18"}, {"layer": "", "name": "0.19"}, {"layer": "", "name": "0.19.1"}, {"layer": "", "name": "0.19.2"}, {"layer": "", "name": "0.19.3"}, {"layer": "", "name": "0.19.4"}, {"layer": "", "name": "0.20"}, {"layer": "", "name": "0.20.1"}, {"layer": "", "name": "0.20.2"}, {"layer": "", "name": "0.20.3"}, {"layer": "", "name": "0.21"}, {"layer": "", "name": "0.21.1"}, {"layer": "", "name": "0.21.2"}, {"layer": "", "name": "0.22"}, {"layer": "", "name": "0.23"}, {"layer": "", "name": "0.23.1"}, {"layer": "", "name": "0.24"}, {"layer": "", "name": "0.24.1"}, {"layer": "", "name": "0.25"}, {"layer": "", "name": "0.25.1"}, {"layer": "", "name": "0.25.2"}, {"layer": "", "name": "0.26"}, {"layer": "", "name": "0.26.1"}, {"layer": "", "name": "0.26.2"}, {"layer": "", "name": "0.26.3"}, {"layer": "", "name": "0.27.0"}, {"layer": "", "name": "0.27.1"}, {"layer": "", "name": "0.27.2"}, {"layer": "", "name": "0.28"}, {"layer": "", "name": "0.28.1"}, {"layer": "", "name": "0.28.2"}, {"layer": "", "name": "0.29"}, {"layer": "", "name": "0.29.2"}, {"layer": "", "name": "0.29.3"}, {"layer": "", "name": "0.29.4"}, {"layer": "", "name": "0.29.5"}, {"layer": "", "name": "0.29.6"}, {"layer": "", "name": "0.29.7"}, {"layer": "", "name": "0.30"}, {"layer": "", "name": "0.30.1"}, {"layer": "", "name": "0.30.2"}, {"layer": "", "name": "0.31"}, {"layer": "", "name": "0.31.1"}, {"layer": "", "name": "0.32"}, {"layer": "", "name": "0.32.1"}, {"layer": "", "name": "0.32.2"}, {"layer": "", "name": "0.32.3"}, {"layer": "", "name": "0.32.4"}, {"layer": "", "name": "0.33"}, {"layer": "", "name": "0.33.1"}, {"layer": "", "name": "0.33.2"}, {"layer": "", "name": "0.33.3"}, {"layer": "", "name": "0.33.4"}, {"layer": "", "name": "0.34"}, {"layer": "", "name": "0.34.1"}, {"layer": "", "name": "0.34.2"}, {"layer": "", "name": "0.34.3"}, {"layer": "", "name": "0.34.4"}, {"layer": "", "name": "0.34.5"}, {"layer": "", "name": "0.35"}, {"layer": "", "name": "0.35.1"}, {"layer": "", "name": "0.35.2"}, {"layer": "", "name": "0.35.3"}, {"layer": "", "name": "0.36"}, {"layer": "", "name": "0.36.1"}, {"layer": "", "name": "0.37"}, {"layer": "", "name": "0.37.1"}, {"layer": "", "name": "0.38"}, {"layer": "", "name": "0.38.1"}, {"layer": "", "name": "0.38.2"}, {"layer": "", "name": "0.38.3"}, {"layer": "", "name": "0.38.4"}, {"layer": "", "name": "0.39"}, {"layer": "", "name": "0.39.1"}, {"layer": "", "name": "0.39.2"}, {"layer": "", "name": "0.39.3"}, {"layer": "", "name": "0.40"}, {"layer": "", "name": "0.40.1"}, {"layer": "", "name": "0.40.2"}, {"layer": "", "name": "0.41"}, {"layer": "", "name": "0.42"}, {"layer": "", "name": "0.42.1"}, {"layer": "", "name": "0.42.2"}, {"layer": "", "name": "0.42.3"}, {"layer": "", "name": "0.42.4"}, {"layer": "", "name": "0.43"}, {"layer": "", "name": "0.43.1"}, {"layer": "", "name": "0.43.2"}, {"layer": "", "name": "0.44"}, {"layer": "", "name": "0.44.1"}, {"layer": "", "name": "0.44.2"}, {"layer": "", "name": "0.45"}, {"layer": "", "name": "0.45.1"}, {"layer": "", "name": "0.46"}, {"layer": "", "name": "0.46.1"}, {"layer": "", "name": "0.47"}, {"layer": "", "name": "0.47.1"}, {"layer": "", "name": "0.48"}, {"layer": "", "name": "0.48.1"}, {"layer": "", "name": "0.49"}, {"layer": "", "name": "0.49.1"}, {"layer": "", "name": "0.50"}, {"layer": "", "name": "0.50.2"}, {"layer": "", "name": "0.51"}, {"layer": "", "name": "0.51.1"}, {"layer": "", "name": "0.51.2"}, {"layer": "", "name": "0.52"}, {"layer": "", "name": "0.52.1"}, {"layer": "", "name": "0.53"}, {"layer": "", "name": "0.53.1"}, {"layer": "", "name": "0.54"}, {"layer": "", "name": "0.55"}, {"layer": "", "name": "0.55.1"}, {"layer": "", "name": "0.55.2"}, {"layer": "", "name": "0.56"}, {"layer": "", "name": "0.56.1"}, {"layer": "", "name": "0.56.2"}, {"layer": "", "name": "0.57"}, {"layer": "", "name": "0.57.1"}, {"layer": "", "name": "0.57.2"}, {"layer": "", "name": "0.57.3"}, {"layer": "", "name": "0.58"}, {"layer": "", "name": "0.58.1"}, {"layer": "", "name": "0.59"}, {"layer": "", "name": "0.59.1"}, {"layer": "", "name": "0.59.2"}, {"layer": "", "name": "0.60"}, {"layer": "", "name": "0.60.1"}, {"layer": "", "name": "0.61"}, {"layer": "", "name": "0.61.1"}, {"layer": "", "name": "0.62.0"}, {"layer": "", "name": "0.62.1"}, {"layer": "", "name": "0.63"}, {"layer": "", "name": "0.63.1"}, {"layer": "", "name": "0.63.2"}, {"layer": "", "name": "0.63.3"}, {"layer": "", "name": "0.64.0"}, {"layer": "", "name": "0.64.1"}, {"layer": "", "name": "0.64.2"}, {"layer": "", "name": "0.64.3"}, {"layer": "", "name": "0.65.0"}, {"layer": "", "name": "0.65.1"}, {"layer": "", "name": "0.65.2"}, {"layer": "", "name": "0.65.3"}, {"layer": "", "name": "0.65.4"}, {"layer": "", "name": "0.65.5"}, {"layer": "", "name": "0.65.6"}, {"layer": "", "name": "0.66.0"}, {"layer": "", "name": "0.66.0.b2"}, {"layer": "", "name": "0.66.0.beta0"}, {"layer": "", "name": "0.66.0.beta1"}, {"layer": "", "name": "0.66.0b3"}, {"layer": "", "name": "0.66.1"}, {"layer": "", "name": "0.66.1b0"}, {"layer": "", "name": "0.67.0"}, {"layer": "", "name": "0.67.0b0"}, {"layer": "", "name": "0.67.0b1"}, {"layer": "", "name": "0.67.1"}, {"layer": "", "name": "0.68.0"}, {"layer": "", "name": "0.68.0b0"}, {"layer": "", "name": "0.68.0b1"}, {"layer": "", "name": "0.68.0b2"}, {"layer": "", "name": "0.68.1"}, {"layer": "", "name": "0.69.0"}, {"layer": "", "name": "0.69.0b0"}, {"layer": "", "name": "0.69.0b1"}, {"layer": "", "name": "0.69.0b2"}, {"layer": "", "name": "0.69.0b3"}, {"layer": "", "name": "0.69.1"}, {"layer": "", "name": "0.70.0"}, {"layer": "", "name": "0.70.0b0"}, {"layer": "", "name": "0.70.0b1"}, {"layer": "", "name": "0.70.0b2"}, {"layer": "", "name": "0.70.0b4"}, {"layer": "", "name": "0.70.0b5"}, {"layer": "", "name": "0.70.0b6"}, {"layer": "", "name": "0.70.0b7"}, {"layer": "", "name": "0.70.1"}, {"layer": "", "name": "0.71.0"}, {"layer": "", "name": "0.71.0b0"}, {"layer": "", "name": "0.71.0b1"}, {"layer": "", "name": "0.72.0"}, {"layer": "", "name": "0.72.0b0"}, {"layer": "", "name": "0.72.0b1"}, {"layer": "", "name": "0.72.0b2"}, {"layer": "", "name": "0.72.0b4"}, {"layer": "", "name": "0.72.0b5"}, {"layer": "", "name": "0.72.0b6"}, {"layer": "", "name": "0.72.0b7"}, {"layer": "", "name": "0.72.0b8"}, {"layer": "", "name": "0.72.0b9"}, {"layer": "", "name": "0.72.1"}, {"layer": "", "name": "0.73.0"}, {"layer": "", "name": "0.73.0b0"}, {"layer": "", "name": "0.73.0b1"}, {"layer": "", "name": "0.73.0b2"}, {"layer": "", "name": "0.73.0b3"}, {"layer": "", "name": "0.73.0b4"}, {"layer": "", "name": "0.73.0b6"}, {"layer": "", "name": "0.73.1"}, {"layer": "", "name": "0.73.2"}, {"layer": "", "name": "0.74.0"}, {"layer": "", "name": "0.74.0b0"}, {"layer": "", "name": "0.74.0b1"}, {"layer": "", "name": "0.74.0b2"}, {"layer": "", "name": "0.74.0b3"}, {"layer": "", "name": "0.74.0b4"}, {"layer": "", "name": "0.74.1"}, {"layer": "", "name": "0.74.2"}, {"layer": "", "name": "0.75.0"}, {"layer": "", "name": "0.75.0b0"}, {"layer": "", "name": "0.75.0b1"}, {"layer": "", "name": "0.75.1"}, {"layer": "", "name": "0.75.2"}, {"layer": "", "name": "0.75.3"}, {"layer": "", "name": "0.76.0"}, {"layer": "", "name": "0.76.0b0"}, {"layer": "", "name": "0.76.0b1"}, {"layer": "", "name": "0.76.0b2"}, {"layer": "", "name": "0.76.0b3"}, {"layer": "", "name": "0.76.0b4"}, {"layer": "", "name": "0.76.0b5"}, {"layer": "", "name": "0.76.1"}, {"layer": "", "name": "0.76.2"}, {"layer": "", "name": "0.77.0"}, {"layer": "", "name": "0.77.0b0"}, {"layer": "", "name": "0.77.0b1"}, {"layer": "", "name": "0.77.0b2"}, {"layer": "", "name": "0.77.0b3"}, {"layer": "", "name": "0.77.0b4"}, {"layer": "", "name": "0.77.1"}, {"layer": "", "name": "0.77.2"}, {"layer": "", "name": "0.77.3"}, {"layer": "", "name": "0.78.0"}, {"layer": "", "name": "0.78.0b0"}, {"layer": "", "name": "0.78.0b1"}, {"layer": "", "name": "0.78.0b2"}, {"layer": "", "name": "0.78.0b3"}, {"layer": "", "name": "0.78.1"}, {"layer": "", "name": "0.78.2"}, {"layer": "", "name": "0.78.3"}, {"layer": "", "name": "0.79.0"}, {"layer": "", "name": "0.79.0b0"}, {"layer": "", "name": "0.79.0b1"}, {"layer": "", "name": "0.79.0b2"}, {"layer": "", "name": "0.79.0b3"}, {"layer": "", "name": "0.79.1"}, {"layer": "", "name": "0.79.2"}, {"layer": "", "name": "0.79.3"}, {"layer": "", "name": "0.80.0"}, {"layer": "", "name": "0.80.0b0"}, {"layer": "", "name": "0.80.0b1"}, {"layer": "", "name": "0.80.0b2"}, {"layer": "", "name": "0.80.0b3"}, {"layer": "", "name": "0.80.0b4"}, {"layer": "", "name": "0.80.0b5"}, {"layer": "", "name": "0.80.1"}, {"layer": "", "name": "0.80.2"}, {"layer": "", "name": "0.80.3"}, {"layer": "", "name": "0.81.0"}, {"layer": "", "name": "0.81.0b0"}, {"layer": "", "name": "0.81.0b1"}, {"layer": "", "name": "0.81.0b2"}, {"layer": "", "name": "0.81.1"}, {"layer": "", "name": "0.81.2"}, {"layer": "", "name": "0.81.4"}, {"layer": "", "name": "0.81.5"}, {"layer": "", "name": "0.81.6"}, {"layer": "", "name": "0.82.0"}, {"layer": "", "name": "0.82.0b0"}, {"layer": "", "name": "0.82.0b1"}, {"layer": "", "name": "0.82.0b2"}, {"layer": "", "name": "0.82.0b3"}, {"layer": "", "name": "0.82.1"}, {"layer": "", "name": "0.83.0"}, {"layer": "", "name": "0.83.0b0"}, {"layer": "", "name": "0.83.0b1"}, {"layer": "", "name": "0.83.0b3"}, {"layer": "", "name": "0.83.1"}, {"layer": "", "name": "0.83.2"}, {"layer": "", "name": "0.83.3"}, {"layer": "", "name": "0.84.0"}, {"layer": "", "name": "0.84.0b0"}, {"layer": "", "name": "0.84.0b1"}, {"layer": "", "name": "0.84.0b2"}, {"layer": "", "name": "0.84.0b3"}, {"layer": "", "name": "0.84.0b4"}, {"layer": "", "name": "0.84.1"}, {"layer": "", "name": "0.84.2"}, {"layer": "", "name": "0.84.3"}, {"layer": "", "name": "0.84.4"}, {"layer": "", "name": "0.84.5"}, {"layer": "", "name": "0.84.6"}, {"layer": "", "name": "0.85.0"}, {"layer": "", "name": "0.85.0b0"}, {"layer": "", "name": "0.85.1"}, {"layer": "", "name": "0.86.0"}, {"layer": "", "name": "0.86.0b0"}, {"layer": "", "name": "0.86.0b1"}, {"layer": "", "name": "0.86.0b2"}, {"layer": "", "name": "0.86.0b3"}, {"layer": "", "name": "0.86.1"}, {"layer": "", "name": "0.86.2"}, {"layer": "", "name": "0.86.3"}, {"layer": "", "name": "0.86.4"}, {"layer": "", "name": "0.87.0"}, {"layer": "", "name": "0.87.0b0"}, {"layer": "", "name": "0.87.0b1"}, {"layer": "", "name": "0.87.0b4"}, {"layer": "", "name": "0.87.0b5"}, {"layer": "", "name": "0.87.0b6"}, {"layer": "", "name": "0.87.1"}, {"layer": "", "name": "0.88.0"}, {"layer": "", "name": "0.88.1"}, {"layer": "", "name": "0.88.2"}, {"layer": "", "name": "0.89.0"}, {"layer": "", "name": "0.89.0b1"}, {"layer": "", "name": "0.89.0b2"}, {"layer": "", "name": "0.89.0b3"}, {"layer": "", "name": "0.89.1"}, {"layer": "", "name": "0.89.2"}, {"layer": "", "name": "0.90.0"}, {"layer": "", "name": "0.90.0b0"}, {"layer": "", "name": "0.90.0b1"}, {"layer": "", "name": "0.90.0b2"}, {"layer": "", "name": "0.90.0b3"}, {"layer": "", "name": "0.90.0b4"}, {"layer": "", "name": "0.90.0b5"}, {"layer": "", "name": "0.90.0b6"}, {"layer": "", "name": "0.90.0b7"}, {"layer": "", "name": "0.90.1"}, {"layer": "", "name": "0.90.2"}, {"layer": "", "name": "0.91.0"}, {"layer": "", "name": "0.91.0b0"}, {"layer": "", "name": "0.91.0b1"}, {"layer": "", "name": "0.91.0b2"}, {"layer": "", "name": "0.91.0b3"}, {"layer": "", "name": "0.91.0b4"}, {"layer": "", "name": "0.91.0b5"}, {"layer": "", "name": "0.91.1"}, {"layer": "", "name": "0.91.2"}, {"layer": "", "name": "0.91.3"}, {"layer": "", "name": "0.91.4"}, {"layer": "", "name": "0.92.0"}, {"layer": "", "name": "0.92.0b0"}, {"layer": "", "name": "0.92.0b1"}, {"layer": "", "name": "0.92.0b2"}, {"layer": "", "name": "0.92.0b3"}, {"layer": "", "name": "0.92.1"}, {"layer": "", "name": "0.92.2"}, {"layer": "", "name": "0.92.3"}, {"layer": "", "name": "0.93.0"}, {"layer": "", "name": "0.93.0b0"}, {"layer": "", "name": "0.93.0b1"}, {"layer": "", "name": "0.93.0b3"}, {"layer": "", "name": "0.93.0b4"}, {"layer": "", "name": "0.93.1"}, {"layer": "", "name": "0.93.2"}, {"layer": "", "name": "0.94.0"}, {"layer": "", "name": "0.94.0b0"}, {"layer": "", "name": "0.94.0b1"}, {"layer": "", "name": "0.94.0b2"}, {"layer": "", "name": "0.94.0b3"}, {"layer": "", "name": "0.94.0b4"}, {"layer": "", "name": "0.94.0b5"}, {"layer": "", "name": "0.94.0b6"}, {"layer": "", "name": "0.94.0b7"}, {"layer": "", "name": "0.94.0b8"}, {"layer": "", "name": "0.94.1"}, {"layer": "", "name": "0.94.2"}, {"layer": "", "name": "0.94.3"}, {"layer": "", "name": "0.94.4"}, {"layer": "", "name": "0.95.0"}, {"layer": "", "name": "0.95.0b0"}, {"layer": "", "name": "0.95.0b1"}, {"layer": "", "name": "0.95.0b2"}, {"layer": "", "name": "0.95.0b3"}, {"layer": "", "name": "0.95.0b4"}, {"layer": "", "name": "0.95.1"}, {"layer": "", "name": "0.95.2"}, {"layer": "", "name": "0.95.3"}, {"layer": "", "name": "0.95.4"}, {"layer": "", "name": "0.96.0"}, {"layer": "", "name": "0.96.0b0"}, {"layer": "", "name": "0.96.0b1"}, {"layer": "", "name": "0.96.0b2"}, {"layer": "", "name": "0.96.1"}, {"layer": "", "name": "0.96.2"}, {"layer": "", "name": "0.96.3"}, {"layer": "", "name": "0.96.4"}, {"layer": "", "name": "0.96.5"}, {"layer": "", "name": "0.97.0"}, {"layer": "", "name": "0.97.0b0"}, {"layer": "", "name": "0.97.0b1"}, {"layer": "", "name": "0.97.0b2"}, {"layer": "", "name": "0.97.0b3"}, {"layer": "", "name": "0.97.1"}, {"layer": "", "name": "0.97.2"}, {"layer": "", "name": "0.98.0"}, {"layer": "", "name": "0.98.0.dev20190826"}, {"layer": "", "name": "0.98.0.dev20190827"}, {"layer": "", "name": "0.98.0.dev20190828"}, {"layer": "", "name": "0.98.0.dev20190829"}, {"layer": "", "name": "0.98.0b0"}, {"layer": "", "name": "0.98.0b1"}, {"layer": "", "name": "0.98.0b2"}, {"layer": "", "name": "0.98.1"}, {"layer": "", "name": "0.98.2"}, {"layer": "", "name": "0.98.3"}, {"layer": "", "name": "0.98.4"}, {"layer": "", "name": "0.98.5"}, {"layer": "", "name": "0.99.0"}, {"layer": "", "name": "0.99.0.dev20190830"}, {"layer": "", "name": "0.99.0.dev20190831"}, {"layer": "", "name": "0.99.0.dev20190903"}, {"layer": "", "name": "0.99.0.dev20190904"}, {"layer": "", "name": "0.99.0.dev20190905"}, {"layer": "", "name": "0.99.0.dev20190906"}, {"layer": "", "name": "0.99.0.dev20190907"}, {"layer": "", "name": "0.99.0.dev20190908"}, {"layer": "", "name": "0.99.0.dev20190910"}, {"layer": "", "name": "0.99.0.dev20190911"}, {"layer": "", "name": "0.99.0.dev20190912"}, {"layer": "", "name": "0.99.0.dev20190913"}, {"layer": "", "name": "0.99.0.dev20190914"}, {"layer": "", "name": "0.99.0.dev20190915"}, {"layer": "", "name": "0.99.0.dev20190917"}, {"layer": "", "name": "0.99.0.dev20190918"}, {"layer": "", "name": "0.99.0.dev20190919"}, {"layer": "", "name": "0.99.0b0"}, {"layer": "", "name": "0.99.0b1"}, {"layer": "", "name": "0.99.0b2"}, {"layer": "", "name": "0.99.0b3"}, {"layer": "", "name": "0.99.1"}, {"layer": "", "name": "0.99.2"}, {"layer": "", "name": "0.99.3"}, {"layer": "", "name": "beta"}, {"layer": "", "name": "dev"}, {"layer": "", "name": "rc"}, {"layer": "", "name": "stable"}] %}
{% set version_floats = [] %}
{% set highest_known_ver = {"highest_ver": 0.0} %}
{% for image_build in value_json | sort(attribute='name') if image_build.name.split(".")[0]=="0" %}
  {% set split_ver = image_build.name.split(".") %}
    {% if split_ver|length == 3 %}
      {% if split_ver[2] | int != ""%}
        {% set ver_str = split_ver[1]+"."+split_ver[2] %}
        {% set ver_float = (ver_str | float) %}
          {% if ver_float > highest_known_ver["highest_ver"] %}
            {% set _ = highest_known_ver.update({'highest_ver': ver_float}) %}
            ver_float={{ver_float}}--highest_known_ver={{highest_known_ver["highest_ver"]}}
          {% endif %}
      {% endif %}
    {% endif %}
    {% if loop.last %}
      {{ highest_known_ver["highest_ver"] }}
    {% endif %}
{% endfor %}

For the above code I receive Error rendering template: SecurityError: access to attribute 'update' of 'dict' object is unsafe. where in fact this is a valid jinja template.

Any suggestions on how to solve this ?

For the above JSON the expected template value would be 0.106.6

Thanks

Posts: 1

Participants: 1

Read full topic

Viewing all 106113 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>