home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
71.14k stars 29.81k forks source link

Restart Home Assistant from the webgui does not work anymore #98154

Closed phellarv closed 10 months ago

phellarv commented 1 year ago

The problem

When I go to Settings -> ... -> Restart Home Assistant, and choose Restart Home Assistant, nothing happens.

What version of Home Assistant Core has the issue?

core-2023.8.1

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

No response

Link to integration documentation on our website

No response

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

2023-08-10 12:45:52.666 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/hassio/__init__.py", line 565, in async_handle_core_service
    errors = await conf_util.async_check_ha_config_file(hass)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/config.py", line 978, in async_check_ha_config_file
    res = await check_config.async_check_ha_config_file(hass)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/check_config.py", line 235, in async_check_ha_config_file
    p_validated = platform_schema(p_validated)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/validators.py", line 232, in __call__
    return self._exec((Schema(val) for val in self.validators), v)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/validators.py", line 351, in _exec
    v = func(v)
        ^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 272, in __call__
    return self._compiled([], data)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 818, in validate_callable
    return schema(data)
           ^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 272, in __call__
    return self._compiled([], data)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 595, in validate_dict
    return base_validate(path, iteritems(data), out)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 387, in validate_mapping
    cval = cvalue(key_path, value)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 818, in validate_callable
    return schema(data)
           ^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/config_validation.py", line 568, in verify
    return cast(dict, schema(value))
                      ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 272, in __call__
    return self._compiled([], data)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 595, in validate_dict
    return base_validate(path, iteritems(data), out)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 387, in validate_mapping
    cval = cvalue(key_path, value)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/validators.py", line 229, in _run
    return self._exec(self._compiled, value, path)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/validators.py", line 353, in _exec
    v = func(path, v)
        ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 818, in validate_callable
    return schema(data)
           ^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/config_validation.py", line 872, in validator
    if key in config:
       ^^^^^^^^^^^^^
TypeError: argument of type 'NoneType' is not iterable

Additional information

No response

joostlek commented 1 year ago

Can you maybe send your yaml (please redact any sensitive information). The structure is important!

jbouwh commented 1 year ago

I think @joostlek ment to share configuration.yaml. As it seems you have an issue with the config check. Can you check if your configuration is valid? If not, then you should solve that first.

phellarv commented 1 year ago

You're quite right:

[core-ssh config]$ ha core check
Processing... Done.

Error: Testing configuration at /config
Fatal error while loading config: argument of type 'NoneType' is not iterable
Failed config
  General Errors: 
    - argument of type 'NoneType' is not iterable

Successful config (partial)

I will investigate further

phellarv commented 1 year ago

Here is my config configuration.yaml:

# Loads default set of integrations. Do not remove.
# Added line
default_config:

# Cloud
cloud:

assist_pipeline:

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 172.16.40.1
    - 192.168.10.14
  ip_ban_enabled: true
  login_attempts_threshold: 5

# Recorder to MariaDB
recorder:
  db_url: !secret recorder_db_url
  purge_keep_days: 30

# InfluxDB
influxdb:
  host: dockerstation.home.arpa
  port: 8086
  database: !secret influxdb_database
  username: !secret influxdb_user
  password: !secret influxdb_password
  max_retries: 3
  default_measurement: state

# Prometheus
prometheus:
  namespace: hass
  component_config_glob:
    sensor.*_hum:
      override_metric: humidity_percent
    sensor.*_temp:
      override_metric: temperature_c
    sensor.temperature*:
      override_metric: temperature_c
    sensor.*_bat:
      override_metric: battery_percent
  filter:
    include_domains:
      - sensor

# Extra Tibber data
tibber_data:
  email: !secret tibber_user
  password: !secret tibber_password

# Text to speech
tts:
  - platform: google_translate

# Includes
automation: !include automations.yaml
#rest: !include rest.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
sensor: !include sensors.yaml
device_tracker: !include device_tracker.yaml
binary_sensor: !include binary_sensor.yaml
group: !include groups.yaml
climate: !include climate.yaml
websitechecker: !include websitechecker.yaml

automations.yaml

- id: nrrestartnotification
  alias: Home Assistant Restart
  description: ''
  trigger:
  - platform: homeassistant
    event: start
  condition: []
  action:
  - service: input_boolean.turn_on
    data:
      entity_id: input_boolean.home_assistant_restarted
  mode: single
- id: '1665496574413'
  alias: Reboot system each night
  description: ''
  trigger:
  - platform: time
    at: 03:00:00
  condition: []
  action: []
  mode: single
- id: '1689020603163'
  alias: Check for games
  description: ''
  trigger:
  - platform: time
    at: 06:00:00
  condition: []
  action:
  - service: hassio.addon_start
    data:
      addon: db21ed7f_free_games_claimer
  mode: single

scripts.yaml

fra_start_nrk:
  alias: Fra start - NRK
  sequence:
  - condition: state
    entity_id: remote.stuetv
    attribute: current_activity
    state: no.nrk.tv
  - service: remote.send_command
    data:
      command: DPAD_DOWN
      num_repeats: 2
      delay_secs: 0.4
      hold_secs: 0.5
    target:
      entity_id: remote.stuetv
  - delay:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 400
  - service: remote.send_command
    data:
      hold_secs: 0.5
      command: DPAD_CENTER
    target:
      entity_id: remote.stuetv
  mode: single
  icon: mdi:television
fra_start_tv2:
  alias: Fra start - TV2
  sequence:
  - condition: state
    entity_id: remote.stuetv
    attribute: current_activity
    state: no.tv2.sumo
  - service: remote.send_command
    data:
      command: DPAD_DOWN
    target:
      entity_id: remote.stuetv
  - service: remote.send_command
    data:
      command: DPAD_LEFT
      num_repeats: 2
      delay_secs: 0.4
      hold_secs: 0.5
    target:
      entity_id: remote.stuetv
  - delay:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 400
  - service: remote.send_command
    data:
      hold_secs: 0.5
      command: DPAD_CENTER
    target:
      entity_id: remote.stuetv
  mode: single
  icon: mdi:television

scenes.yaml

- id: '1668969786468'
  name: GodNatt
  entities: {}
  icon: mdi:shield-home
  metadata: {}
- id: '1668969848098'
  name: GodMorgen
  entities: {}
  icon: mdi:shield-home-outline
  metadata: {}
- id: '1683190958734'
  name: TV2
  entities: {}
  metadata: {}
  icon: mdi:television
- id: '1683191160792'
  name: NRK
  entities: {}
  metadata: {}
  icon: mdi:television
- id: '1683193159154'
  name: Netflix
  entities: {}
  icon: mdi:netflix
  metadata: {}
- id: '1683193189226'
  name: Disneyplus
  entities: {}
  icon: mdi:television
  metadata: {}
- id: '1683193208993'
  name: Prime
  entities: {}
  icon: mdi:television
  metadata: {}
- id: '1683193702867'
  name: Discovery
  entities: {}
  icon: mdi:television
  metadata: {}
- id: '1683193794181'
  name: HBO
  entities: {}
  icon: mdi:television
  metadata: {}
- id: '1683193921738'
  name: Viaplay
  entities: {}
  icon: mdi:television
  metadata: {}
- id: '1683196660134'
  name: fra start
  entities: {}
  icon: mdi:skip-backward
  metadata: {}

sensors.yaml:

# System Monitors
- platform: systemmonitor
  resources:
    - type: disk_use_percent
      arg: /config
    - type: memory_use_percent
    - type: memory_use
    - type: memory_free
    - type: swap_use_percent
    - type: swap_use
    - type: swap_free
    - type: load_1m
    - type: load_5m
    - type: load_15m
    - type: processor_use
    - type: processor_temperature
    - type: last_boot

# Søppeltømming
- platform: rest
  name: Restavfall
  resource: https://www.oslo.kommune.no/xmlhttprequest.php?service=ren.search&street=Krokliveien&number=67&letter=B&street_id=13995
  value_template: "{{ value_json.data.result[0].HentePunkts[0].Tjenester[0].TommeDato }}"

- platform: rest
  name: Papiravfall
  resource: https://www.oslo.kommune.no/xmlhttprequest.php?service=ren.search&street=Krokliveien&number=67&letter=B&street_id=13995
  value_template: "{{ value_json.data.result[0].HentePunkts[0].Tjenester[1].TommeDato }}"

# Posten
- platform: rest
  resource: https://www.posten.no/levering-av-post/_/component/main/1/leftRegion/9?postCode=0584
  headers:
    x-requested-with: XMLHttpRequest
  name: post_kommer
  scan_interval: 12000
  value_template: "{{ value_json.nextDeliveryDays[0] }}"

# Buss
- platform: entur_public_transport
  name: 58
  expand_platforms: true
  show_on_map: true
  stop_ids:
    - "NSR:StopPlace:5993"
  line_whitelist:
    - "RUT:Line:58"
- platform: entur_public_transport
  name: 60
  expand_platforms: true
  show_on_map: true
  stop_ids:
    - "NSR:StopPlace:5945"
  line_whitelist:
    - "RUT:Line:60"

# #Total luftforurensing
#   - platform: template
#     sensors:
#       air_quality_level:
#         friendly_name: "Luftforurensing"
#         unit_of_measurement: ''
#         value_template: "{%if states.air_quality.air_quality_norway.attributes.level == 'low' %}Lav{% elif states.air_quality.air_quality_norway.attributes.level == 'medium' %}Moderat{% elif states.air_quality.air_quality_norway.attributes.level == 'high' %}Høyt{% elif states.air_quality.air_quality_norway.attributes.level == 'very high' %}Svært høyt{% endif %}"

# #NO2 : Summen av NO2 og NO kalles for NOx
#   - platform: template
#     sensors:
#       air_quality_nitrogen_dioxide:
#         friendly_name: "Nox"
#         unit_of_measurement: ''
#         value_template: "{%if states.air_quality.air_quality_norway.attributes.nitrogen_dioxide|float < 100 %}Lav{% elif states.air_quality.air_quality_norway.attributes.nitrogen_dioxide|float > 100 %}Moderat{% elif states.air_quality.air_quality_norway.attributes.nitrogen_dioxide|float > 200 %}Høyt{% elif states.air_quality.air_quality_norway.attributes.nitrogen_dioxide|float > 400 %}Svært høyt{% endif %}"

# #PM10: Asfalt-, bremse- og dekkslitasje, strøsand, vedfyring, industri, langtransportert bidrag
#   - platform: template
#     sensors:
#       air_quality_particulate_matter_10:
#         friendly_name: "Veistøv"
#         unit_of_measurement: ''
#         value_template: "{%if states.air_quality.air_quality_norway.attributes.particulate_matter_10|float < 60 %}Lav{% elif states.air_quality.air_quality_norway.attributes.particulate_matter_10|float > 60 %}Moderat{% elif states.air_quality.air_quality_norway.attributes.particulate_matter_10|float > 120 %}Høyt{% elif states.air_quality.air_quality_norway.attributes.particulate_matter_10|float > 400 %}Svært høyt{% endif %}"

# #PM2,5: Vedfyring, eksosutslipp, industri, langtransportert bidrag
#   - platform: template
#     sensors:
#       air_quality_particulate_matter_2_5:
#         friendly_name: "Finstøv"
#         unit_of_measurement: ''
#         value_template: "{%if states.air_quality.air_quality_norway.attributes.particulate_matter_2_5|float < 30 %}Lav{% elif states.air_quality.air_quality_norway.attributes.particulate_matter_2_5|float > 30 %}Moderat{% elif states.air_quality.air_quality_norway.attributes.particulate_matter_2_5|float > 50 %}Høyt{% elif states.air_quality.air_quality_norway.attributes.particulate_matter_2_5|float > 150 %}Svært høyt{% endif %}"

# #Ozon :Ozon er en reaktiv gass
#   - platform: template
#     sensors:
#       air_quality_ozone:
#         friendly_name: "Ozon"
#         unit_of_measurement: ''
#         value_template: "{%if states.air_quality.air_quality_norway.attributes.nitrogen_dioxide|float < 100 %}Lav{% elif states.air_quality.air_quality_norway.attributes.nitrogen_dioxide|float > 100 %}Moderat{% elif states.air_quality.air_quality_norway.attributes.nitrogen_dioxide|float > 180 %}Høyt{% elif states.air_quality.air_quality_norway.attributes.nitrogen_dioxide|float > 240 %}Svært høyt{% endif %}"

# Utetemperatur
- platform: min_max
  name: "Temperatur ute"
  type: min
  round_digits: 1
  entity_ids:
    - sensor.temperature_1_veranda
    - sensor.temperature_1_inngang

# Tibber
- platform: template
  sensors:
    real_time_consumption_krokliveien_67_b:
      friendly_name: "Forbruk nå"
      unit_of_measurement: "W"
      value_template: "{{ states('sensor.power_krokliveien') }}"
      icon_template: mdi:flash
    consumption_this_day_krokliveien_67_b:
      friendly_name: "Forbruk i dag"
      unit_of_measurement: "kWh"
      value_template: "{{ states('sensor.accumulated_consumption_krokliveien') | round(2) }}"
      icon_template: mdi:flash
    cost_this_day_krokliveien_67_b:
      friendly_name: "Kostnad i dag eksl subsidie"
      unit_of_measurement: "kr"
      value_template: "{{ states('sensor.accumulated_cost_krokliveien') | round(2) }}"
      icon_template: mdi:cash
    tibber_price_level:
      friendly_name: "Price Level"
      value_template: "{{ state_attr('sensor.electricity_price_krokliveien', 'price_level') }}"
    tibber_grid_company:
      friendly_name: "Leverandør nå"
      value_template: "{{ state_attr('sensor.electricity_price_krokliveien', 'grid_company') }}"
    tibber_prisniva:
      friendly_name: "Prisnivå nå"
      icon_template: "hass:eye"
      value_template: >-
        {% if is_state('sensor.tibber_price_level', 'VERY_CHEAP') %}
        Veldig billig
        {% elif is_state('sensor.tibber_price_level', 'CHEAP') %}
        Billig
        {% elif is_state('sensor.tibber_price_level', 'NORMAL') %}
        Normal
        {% elif is_state('sensor.tibber_price_level', 'EXPENSIVE') %}
        Dyrt
        {% elif is_state('sensor.tibber_price_level', 'VERY_EXPENSIVE') %}
        Veldig dyrt
        {% endif %}

# Temperaturer
- platform: template
  sensors:
    #     temperature_1_stuevindu:
    #       friendly_name: "Stuevindu"
    #       unit_of_measurement: 'C'
    #       icon_template: mdi:thermometer
    #       value_template: "{{ state_attr('binary_sensor.openclose_24', 'temperature') | round(0) }}"
    #     temperature_1_verandador:
    #       friendly_name: "Verandadør"
    #       unit_of_measurement: 'C'
    #       icon_template: mdi:thermometer
    #       value_template: "{{ state_attr('binary_sensor.openclose_25', 'temperature') | round(0) }}"
    temperature_0_soverom:
      friendly_name: "Soverom Kjeller"
      unit_of_measurement: "C"
      icon_template: mdi:thermometer
      value_template: "{{ state_attr('climate.temperature_0_gjesterom', 'current_temperature') | round(1) }}"
    temperature_1_stuegulv_fra_adax:
      friendly_name: "Stue Adax"
      unit_of_measurement: "C"
      icon_template: mdi:thermometer
      value_template: "{{ state_attr('climate.temperature_1_stuegang', 'current_temperature') | round(1) }}"
    temperature_1_average:
      friendly_name: "Temperatur 1. etasje"
      unit_of_measurement: "C"
      icon_template: mdi:thermometer
      value_template: "{{ ((states('input_number.fake_temp_oppholdsrom')|float + states('sensor.smartcube_1_stue_device_temperature')|float + states('sensor.temperature_1_kjokken')|float) / 3) | round(1) }}"
    temperature_1_stue_average:
      friendly_name: "Gjennomsnittstemp stue"
      unit_of_measurement: "°C"
      value_template: >-
        {{ ((states('input_number.fake_temp_oppholdsrom')|float + states('sensor.smartcube_1_stue_device_temperature')|float) / 2) | round(1) }}

# Uptime conversion
- platform: template
  sensors:
    pfsense_uptime:
      friendly_name: "Uptime pfSense (korrigert)"
      value_template: >-
        {% set time = (states.sensor.freebsd_router_uptime.state | int) | int %}
        {% set minutes = ((time % 3600) / 60) | int %}
        {% set hours = ((time % 86400) / 3600) | int %}
        {% set days = (time / 86400) | int %}      
        {%- if time < 60 -%}
          Less than a minute
          {%- else -%}
          {%- if days > 0 -%}
            {{ days }}d
          {%- endif -%}
          {%- if hours > 0 -%}
            {%- if days > 0 -%}
              {{ ' ' }}
            {%- endif -%}
            {{ hours }}h
          {%- endif -%}
          {%- if minutes > 0 -%}
            {%- if days > 0 or hours > 0 -%}
              {{ ' ' }}
            {%- endif -%}
            {{ minutes }}m
          {%- endif -%}
        {%- endif -%}
    # hass_uptime:
    #   value_template: >-
    #     {%- set uptime  = states.sensor.hass_uptime_minutes.state | round -%}
    #     {%- set sep     = ', ' -%}
    #     {%- set TIME_MAP = {
    #         'week': (uptime / 10080) % 10080,
    #          'day': (uptime / 1440) % 7,
    #         'hour': (uptime / 60) % 24,
    #       'minute': (uptime % 60)
    #     }
    #     -%}

    #     {%- for unit, duration in TIME_MAP.items() if duration >= 1 -%}
    #       {%- if not loop.first -%}
    #         {{ sep }}
    #       {%- endif -%}

    #       {{ (duration | string).split('.')[0] }} {{ unit }}

    #       {%- if duration >= 2 -%}
    #         s
    #       {%- endif -%}
    #     {%- endfor -%}

    #     {%- if uptime < 1 -%}
    #       just now
    #     {%- endif -%}

- platform: template
  sensors:  
    pfsense_uptime:
    friendly_name: 'pfSense uptime'
    value_template: >- 
      {% set time = (states.sensor.freebsd_router_uptime.state | int) | int %}
      {% set minutes = ((time % 3600) / 60) | int %}
      {% set hours = ((time % 86400) / 3600) | int %}
      {% set days = (time / 86400) | int %}

      {%- if time < 60 -%}
        Less than a minute
        {%- else -%}
        {%- if days > 0 -%}
          {{ days }}d
        {%- endif -%}
        {%- if hours > 0 -%}
          {%- if days > 0 -%}
            {{ ' ' }}
          {%- endif -%}
          {{ hours }}h
        {%- endif -%}
        {%- if minutes > 0 -%}
          {%- if days > 0 or hours > 0 -%}
            {{ ' ' }}
          {%- endif -%}
          {{ minutes }}m
        {%- endif -%}
      {%- endif -%}

binary_sensor.yaml

- platform: ping
  host: 192.168.10.14
  name: Raspbian-dns
  count: 2
  scan_interval: 30
- platform: ping
  host: 172.16.40.100
  name: Unifi
  count: 2
  scan_interval: 30
- platform: ping
  host: 172.16.40.40
  name: Mainframe
  count: 2
  scan_interval: 30
- platform: ping
  host: 172.16.40.1
  name: Netgate
  count: 2
  scan_interval: 30

groups.yaml

garmin:
  name: Garmin
  entities:
    - switch.kaffetrakter_1_kjokken
    - light.taklampe_1_stue
    - light.readinglight_1_stue
    - light.lampe_2_kontorpult
    - light.taklampe_2_kontor
    - light.utelys_1_veranda
    - light.utelys_1_inngang
    - light.taklampe_0_gang
    - light.taklampe_2_gang

climate.yaml

- platform: generic_thermostat
  name: Kjellergang
  heater: switch.panelovn_0_kjellergang
  target_sensor: sensor.temperatur_0_kjellergang_temperature
  min_temp: 15
  max_temp: 25
  target_temp: 17
  cold_tolerance: 0.3
  hot_tolerance: 0
  min_cycle_duration:
    seconds: 5
  keep_alive:
    minutes: 3
  initial_hvac_mode: "heat"
  away_temp: 16
  precision: 0.1

- platform: generic_thermostat
  name: Stue
  heater: switch.ekstraovn_stua
  target_sensor: sensor.smartcube_1_stue_device_temperature
  min_temp: 15
  max_temp: 25
  target_temp: 17
  cold_tolerance: 0.3
  hot_tolerance: 0
  min_cycle_duration:
    seconds: 5
  keep_alive:
    minutes: 3
  initial_hvac_mode: "heat"
  away_temp: 16
  precision: 0.1

websitechecker.yaml:

update_interval: 10 # Optional, value in minutes, defaults to 10
websites:
  - url: https://me.duckboot.net
    name: Me
    verify_ssl: true # Optional, default is true
  - url: https://vault.duckboot.net
    name: Vaultwarden
    verify_ssl: true # Optional, default is true
  - url: https://blogg.duckboot.net
    name: Blogg
    verify_ssl: true # Optional, default is true
  - url: https://hellarvikfoto.no
    name: Hellarvikfoto
    verify_ssl: true # Optional, default is true

device_tracker.yaml is empty at the moment.

Sorry about the amount of yaml, but this is what I run

joostlek commented 1 year ago

Thanks! This will help us fix the issue.

gjohansson-ST commented 1 year ago

I do think the problem is that device_tracker.yaml is empty so it results in None which is the error you get.

Easy to check by setting a comment in front.

phellarv commented 1 year ago

I do think the problem is that device_tracker.yaml is empty so it results in None which is the error you get.

Easy to check by setting a comment in front.

Nope. Did not work.

[core-ssh config]$ git pull
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 294 bytes | 294.00 KiB/s, done.
From git.duckboot.net:duckboot/hassos
   c09e659..ca676cd  master     -> origin/master
Updating c09e659..ca676cd
Fast-forward
 configuration.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
[core-ssh config]$ ha core check
Processing... Done.

Error: Testing configuration at /config
Fatal error while loading config: argument of type 'NoneType' is not iterable
Failed config
  General Errors: 
    - argument of type 'NoneType' is not iterable

Successful config (partial)
joostlek commented 1 year ago

I think I saw some custom components so this config isn't 1:1 testable by us. I just had a thought, can you create a backup just in case and just start commenting out stuff until it does work? Then we can break down where the issue might be coming from

phellarv commented 1 year ago

I'm into my 4th beer now, so I might wait until tomorrow before doing more intrusive testing. But thanks a lot so far.

joostlek commented 1 year ago

Haha, that's fine, enjoy!

issue-triage-workflows[bot] commented 10 months ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

phellarv commented 10 months ago

Sorry - Forgot about this issue. But I found the perpetrator. It was a templated sensor:

- platform: template
  sensors:
    pfsense_uptime:
    friendly_name: "pfSense uptime"
    value_template: >-
      {% set time = (states.sensor.freebsd_router_uptime.state | int) | int %}
      {% set minutes = ((time % 3600) / 60) | int %}
      {% set hours = ((time % 86400) / 3600) | int %}
      {% set days = (time / 86400) | int %}

      {%- if time < 60 -%}
        Less than a minute
        {%- else -%}
        {%- if days > 0 -%}
          {{ days }}d
        {%- endif -%}
        {%- if hours > 0 -%}
          {%- if days > 0 -%}
            {{ ' ' }}
          {%- endif -%}
          {{ hours }}h
        {%- endif -%}
        {%- if minutes > 0 -%}
          {%- if days > 0 or hours > 0 -%}
            {{ ' ' }}
          {%- endif -%}
          {{ minutes }}m
        {%- endif -%}
      {%- endif -%}

Since I did not use that sensor anymore, I simply removed it, and restart works as normal again. Thanks for the patience.