Giter Site home page Giter Site logo

custom-components / custom_updater Goto Github PK

View Code? Open in Web Editor NEW
165.0 18.0 66.0 91 KB

[DEPRECATED]๐Ÿ“ฆ A component which allows you to track and update custom cards/components and python_scripts

License: MIT License

Python 100.00%
homeassistant home-assistant custom-components custom-cards

custom_updater's People

Contributors

collse avatar data-monkey avatar gabrielemariotti avatar ludeeus avatar pinkywafer avatar pnbruckner avatar randellhodges avatar rhoriguchi avatar tjorim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

custom_updater's Issues

Phil Bruckner's custom repo

Version of the custom_component

2.5, latest
Describe the bug
I am not getting Phil's custom repo added to the tracker card.
I have added this to config yaml file:

# Custom Component Updater
custom_updater:
  component_urls:
    - https://raw.githubusercontent.com/pnbruckner/homeassistant-config/master/custom_components.json

I can get the JSON if I curl the component url in Frenck's SSH/Terminal addon
I am using a couple of components from your repo that work fine.... just sun.py from Phil's not working.

log

2018-09-12 12:46:09 WARNING (MainThread) [homeassistant.loader] You are using a custom component for custom_updater which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
2018-09-12 12:46:09 INFO (SyncWorker_3) [custom_components.custom_updater] if you have ANY issues with this, please report them here: https://github.com/custom-components/custom_updater
2018-09-12 12:46:11 DEBUG (SyncWorker_3) [custom_components.custom_updater] Local version of custom_updater is 2.5.0
2018-09-12 12:46:11 DEBUG (SyncWorker_3) [custom_components.custom_updater] Could not get the local version for sun

cache_versions methods cause exception when called from track_time_interval

Version of the custom_component
3.1.4

Describe the bug
cache_versions methods need to accept the now parameter when called from track_time_interval.

log

Log Details (ERROR)
Wed Oct 03 2018 14:55:11 GMT-0500 (Central Daylight Time)

Error doing job: Future exception was never retrieved
Traceback (most recent call last):
  File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
    result = self.fn(*self.args, **self.kwargs)
TypeError: cache_versions() takes 1 positional argument but 2 were given

Version variable with underscores is not allowed in python_scripts

Version of the custom_component
3.1.1

Describe the bug
Adding variable __version__ to a python_scripts script causes script to fail. For python_scripts may need to use a variable named version (or maybe even custom_updater_version) instead.

log

Log Details (ERROR)
Mon Oct 01 2018 21:51:51 GMT-0500 (Central Daylight Time)

Error loading script light_store.py: Line 1: "__version__" is an invalid variable name because it starts with "_"

Reading local component & python_script versions is broken

Version of the custom_component
3.1.0

Describe the bug
It is not seeing any custom components or python scripts from custom URLs.

log

2018-10-01 12:01:56 INFO (MainThread) [homeassistant.loader] Loaded custom_updater from custom_components.custom_updater
2018-10-01 12:01:56 WARNING (MainThread) [homeassistant.loader] You are using a custom component for custom_updater which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
2018-10-01 12:02:15 INFO (MainThread) [homeassistant.setup] Setting up custom_updater
2018-10-01 12:02:15 INFO (Thread-6) [custom_components.custom_updater] if you have ANY issues with this, please report them here: https://github.com/custom-components/custom_updater
2018-10-01 12:02:16 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: service=check_all, domain=custom_updater>
2018-10-01 12:02:16 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: service=update_all, domain=custom_updater>
2018-10-01 12:02:16 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: service=install, domain=custom_updater>
2018-10-01 12:02:16 INFO (MainThread) [homeassistant.setup] Setup of domain custom_updater took 0.9 seconds.
2018-10-01 12:02:16 INFO (MainThread) [homeassistant.core] Bus:Handling <Event component_loaded[L]: component=custom_updater>
2018-10-01 12:44:26 INFO (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: service=check_all, service_data=, domain=custom_updater>

Additional info
get_sensor_data() is using the wrong directory. It is using the current working directory, but when HA is running that is not the current working directory, at least not for my installation. The HA config directory should be passed in. FWIW, I did a test by calling get_sensor_data() manually, both from the HA config directory, and from "/" (which is the cwd when HA is running.) It worked when it was in the HA config directory, but didn't when it wasn't.

Dependabot couldn't find a requirements.txt for this project

Dependabot couldn't find a requirements.txt for this project.

Dependabot requires a requirements.txt to evaluate your project's current Python dependencies. It had expected to find one at the path: /requirements.txt.

If this isn't a Python project, or if it is a library, you may wish to disable updates for it from within Dependabot.

You can mention @dependabot in the comments below to contact the Dependabot team.

Impossible to customize sensors created by CC Custom Updater

show_last_changed are not an option of this component.

Originally posted by @ludeeus in #22 (comment)

please see:

#22 (comment)

and

https://community.home-assistant.io/t/customize-custom-updater-sensors-impossible/70974

We cant customize the sensors created by this CC, which is rather unusual, and please check why this is, and preferably, change code to make it possible.

with Custom-ui installed we should be able to do this:

homessistant:
  customize:
    sensor.custom_card_tracker:
   # icon: mdi:cloud-search
    friendly_name: Custom card tracker
    show_last_changed: true
    templates:
      icon: >
        if (state === 0) return 'mdi:cloud-search';
        return 'mdi:cloud-upload';
      icon_color: >
        if (state === 0) return 'grey';
        return 'rgb(251, 210, 41)';

Needed: overview for custom_updater... how to/instructions

Is your feature request related to a problem? Please describe.
a bit of both, no bug!
Since there's not much documentation on rather an important detail, please let me ask here (tried the community, but no response yet)

How to configure the custom_card tracker (on Hassio Non lovelace).

As of now, I have 2 sensors in the frontend displaying rather unmeaningful states, More-Info is alright.
That is, on the custom component, where I was able to set several components to track.

Not so on the custom_cards.

Describe the solution you'd like
Some instruction and examples how to configure

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

What would be really cool: a list of currently available cards and components to simply copy into the configuration. Not that many cards and CC' yet , so hope thats an option?

Additional context
Add any other context or screenshots about the feature request here.

schermafbeelding 2018-09-13 om 16 48 46
schermafbeelding 2018-09-13 om 16 48 52

custom_updater:
  component_urls:
    - https://raw.githubusercontent.com/robmarkcole/Hue-sensors-HASS/master/custom_updater.json
    - https://raw.githubusercontent.com/pnbruckner/homeassistant-config/master/custom_components.json
  card_urls:
  show_installable: True

Attributes for the sensor sensor.custom_card_tracker are empty

Version of the cusom_component
1.4.1

Describe the bug
The attributes for the sensor sensor.custom_card_tracker are empty, resulting in an error when using the tracker-card.
Even though the attributes are empty the state is showing a value.

sensor.custom_component_tracker is working though and deactivating the tracking for cards in configuration.yaml makes the tracker-card work, but without information about the cards to be udpated.

log
There is no specific error showing in the Debug logs

2018-08-12 12:30:00 INFO (Thread-3) [custom_components.custom_updater] version 1.4.1 is starting, if you have ANY issues with this, please report them here: https://github.com/custom-components/custom_updater
2018-08-12 12:30:00 DEBUG (Thread-3) [custom_components.custom_updater] Gathering all available cards.
2018-08-12 12:30:10 DEBUG (Thread-3) [custom_components.custom_updater] Gathering all available components.
2018-08-12 12:30:13 DEBUG (Thread-3) [custom_components.custom_updater] Local version of custom_updater is 1.4.1

home assistant

Cannot install custom component

Version of the custom_component
3.1.4
HA 0.79.1 Docker

Describe the bug
Calling the service to install "sensors.versions"

log

018-10-02 13:28:16 DEBUG (SyncWorker_38) [custom_components.custom_updater] Installing sensors.versions
2018-10-02 13:28:16 DEBUG (SyncWorker_38) [pyupdate.ha_custom.common] get_repo_data: "['https://raw.githubusercontent.com/custom-components/information/master/repos.json']"
2018-10-02 13:28:16 DEBUG (SyncWorker_38) [pyupdate.ha_custom.custom_components] get_info_all_components: {'binary_sensor.hadockermon': ['binary_sensor.hadockermon', '', 'custom_components/binary_sensor/hadockermon.py', 'https://raw.githubusercontent.com/custom-components/binary_sensor.hadockermon/master/custom_components/binary_sensor/hadockermon.py', 'https://github.com/custom-components/binary_sensor.hadockermon', 'https://github.com/custom-components/binary_sensor.hadockermon/releases/latest'], 'camera.combined': ['camera.combined', '0.0.1', 'custom_components/camera/combined.py', 'https://raw.githubusercontent.com/custom-components/camera.combined/master/custom_components/camera/combined.py', 'https://github.com/custom-components/camera.combined', 'https://github.com/custom-components/camera.combined/releases/latest'], 'camera.multisource': ['camera.multisource', '0.3.0', 'custom_components/camera/multisource.py', 'https://raw.githubusercontent.com/custom-components/camera.multisource/master/custom_components/camera/multisource.py', 'https://github.com/custom-components/camera.multisource', 'https://github.com/custom-components/camera.multisource/releases/latest'], 'camera.unsplash': ['camera.unsplash', '0.4.2', 'custom_components/camera/unsplash.py', 'https://raw.githubusercontent.com/custom-components/camera.unsplash/master/custom_components/camera/unsplash.py', 'https://github.com/custom-components/camera.unsplash', 'https://github.com/custom-components/camera.unsplash/releases/latest'], 'climate.e_thermostaat': ['climate.e_thermostaat', '0.2.0', 'custom_components/climate/e_thermostaat.py', 'https://raw.githubusercontent.com/custom-components/climate.e_thermostaat/master/custom_components/climate/e_thermostaat.py', 'https://github.com/custom-components/climate.e_thermostaat', 'https://github.com/custom-components/climate.e_thermostaat/releases/latest'], 'custom_updater': ['custom_updater', '3.1.4', 'custom_components/custom_updater.py', 'https://raw.githubusercontent.com/custom-components/custom_updater/master/custom_components/custom_updater.py', 'https://github.com/custom-components/custom_updater', 'https://github.com/custom-components/custom_updater/releases/latest'], 'hassbian_config': ['hassbian_config', '2.0.1', 'custom_components/hassbian_config.py', 'https://raw.githubusercontent.com/custom-components/hassbian_config/master/custom_components/hassbian_config.py', 'https://github.com/custom-components/hassbian_config', 'https://github.com/custom-components/hassbian_config/releases/latest'], 'lists': ['lists', '', 'custom_components/lists.py', 'https://raw.githubusercontent.com/custom-components/lists/master/custom_components/lists.py', 'https://github.com/custom-components/lists', 'https://github.com/custom-components/lists/releases/latest'], 'media_player.braviatv_psk': ['media_player.braviatv_psk', '0.2.0', 'custom_components/media_player/braviatv_psk.py', 'https://raw.githubusercontent.com/custom-components/media_player.braviatv_psk/master/custom_components/media_player/braviatv_psk.py', 'https://github.com/custom-components/media_player.braviatv_psk', 'https://github.com/custom-components/media_player.braviatv_psk/releases/latest'], 'sensor.aftership': ['sensor.aftership', '0.3.0', 'custom_components/sensor/aftership.py', 'https://raw.githubusercontent.com/custom-components/sensor.aftership/master/custom_components/sensor/aftership.py', 'https://github.com/custom-components/sensor.aftership', 'https://github.com/custom-components/sensor.aftership/releases/latest'], 'sensor.authenticated': ['sensor.authenticated', '0.3.1', 'custom_components/sensor/authenticated.py', 'https://raw.githubusercontent.com/custom-components/sensor.authenticated/master/custom_components/sensor/authenticated.py', 'https://github.com/custom-components/sensor.authenticated', 'https://github.com/custom-components/sensor.authenticated/releases/latest'], 'sensor.brewdog': ['sensor.brewdog', '0.0.2', 'custom_components/sensor/brewdog.py', 'https://raw.githubusercontent.com/custom-components/sensor.brewdog/master/custom_components/sensor/brewdog.py', 'https://github.com/custom-components/sensor.brewdog', 'https://github.com/custom-components/sensor.brewdog/releases/latest'], 'sensor.feedparser': ['sensor.feedparser', '0.0.1', 'custom_components/sensor/feedparser.py', 'https://raw.githubusercontent.com/custom-components/sensor.feedparser/master/custom_components/sensor/feedparser.py', 'https://github.com/custom-components/sensor.feedparser', 'https://github.com/custom-components/sensor.feedparser/releases/latest'], 'sensor.geoip': ['sensor.geoip', '0.0.1', 'custom_components/sensor/geoip.py', 'https://raw.githubusercontent.com/custom-components/sensor.geoip/master/custom_components/sensor/geoip.py', 'https://github.com/custom-components/sensor.geoip', 'https://github.com/custom-components/sensor.geoip/releases/latest'], 'sensor.launchlibrary': ['sensor.launchlibrary', '1.1.0', 'custom_components/sensor/launchlibrary.py', 'https://raw.githubusercontent.com/custom-components/sensor.launchlibrary/master/custom_components/sensor/launchlibrary.py', 'https://github.com/custom-components/sensor.launchlibrary', 'https://github.com/custom-components/sensor.launchlibrary/releases/latest'], 'sensor.personalcapital': ['sensor.personalcapital', '0.0.1', 'custom_components/sensor/personalcapital.py', 'https://raw.githubusercontent.com/custom-components/sensor.personalcapital/master/custom_components/sensor/personalcapital.py', 'https://github.com/custom-components/sensor.personalcapital', 'https://github.com/custom-components/sensor.personalcapital/releases/latest'], 'sensor.radarr_upcoming_media': ['sensor.radarr_upcoming_media', '0.1.5', 'custom_components/sensor/radarr_upcoming_media.py', 'https://raw.githubusercontent.com/custom-components/sensor.radarr_upcoming_media/master/custom_components/sensor/radarr_upcoming_media.py', 'https://github.com/custom-components/sensor.radarr_upcoming_media', 'https://github.com/custom-components/sensor.radarr_upcoming_media/releases/latest'], 'sensor.rpi_power': ['sensor.rpi_power', '0.0.7', 'custom_components/sensor/rpi_power.py', 'https://raw.githubusercontent.com/custom-components/sensor.rpi_power/master/custom_components/sensor/rpi_power.py', 'https://github.com/custom-components/sensor.rpi_power', 'https://github.com/custom-components/sensor.rpi_power/releases/latest'], 'sensor.ruter': ['sensor.ruter', '2.1.1', 'custom_components/sensor/ruter.py', 'https://raw.githubusercontent.com/custom-components/sensor.ruter/master/custom_components/sensor/ruter.py', 'https://github.com/custom-components/sensor.ruter', 'https://github.com/custom-components/sensor.ruter/releases/latest'], 'sensor.sonarr_upcoming_media': ['sensor.sonarr_upcoming_media', '0.0.7', 'custom_components/sensor/sonarr_upcoming_media.py', 'https://raw.githubusercontent.com/custom-components/sensor.sonarr_upcoming_media/master/custom_components/sensor/sonarr_upcoming_media.py', 'https://github.com/custom-components/sensor.sonarr_upcoming_media', 'https://github.com/custom-components/sensor.sonarr_upcoming_media/releases/latest'], 'sensor.syncthing': ['sensor.syncthing', '', 'custom_components/sensor/syncthing/__init__.py', 'https://raw.githubusercontent.com/custom-components/sensor.syncthing/master/custom_components/sensor/syncthing/__init__.py', 'https://github.com/custom-components/sensor.syncthing', 'https://github.com/custom-components/sensor.syncthing/releases/latest'], 'sensor.tautulli': ['sensor.tautulli', '0.2.0', 'custom_components/sensor/tautulli.py', 'https://raw.githubusercontent.com/custom-components/sensor.tautulli/master/custom_components/sensor/tautulli.py', 'https://github.com/custom-components/sensor.tautulli', 'https://github.com/custom-components/sensor.tautulli/releases/latest'], 'sensor.trakt': ['sensor.trakt', '0.0.2', 'custom_components/sensor/trakt.py', 'https://raw.githubusercontent.com/custom-components/sensor.trakt/master/custom_components/sensor/trakt.py', 'https://github.com/custom-components/sensor.trakt', 'https://github.com/custom-components/sensor.trakt/releases/latest'], 'sensor.untapped': ['sensor.untapped', '', 'custom_components/sensor/untapped/__init__.py', 'https://raw.githubusercontent.com/custom-components/sensor.untapped/master/custom_components/sensor/untapped/__init__.py', 'https://github.com/custom-components/sensor.untapped', 'https://github.com/custom-components/sensor.untapped/releases/latest'], 'sensor.versions': ['sensor.versions', '0.3.0', 'custom_components/sensor/versions.py', 'https://raw.githubusercontent.com/custom-components/sensor.versions/master/custom_components/sensor/versions.py', 'https://github.com/custom-components/sensor.versions', 'https://github.com/custom-components/sensor.versions/releases/latest'], 'sensor.weatheralerts': ['sensor.weatheralerts', '', 'custom_components/sensor/weatheralerts.py', 'https://raw.githubusercontent.com/custom-components/sensor.weatheralerts/master/custom_components/sensor/weatheralerts.py', 'https://github.com/custom-components/sensor.weatheralerts', 'https://github.com/custom-components/sensor.weatheralerts/releases/latest'], 'sensor.wienerlinien': ['sensor.wienerlinien', '1.1.1', 'custom_components/sensor/wienerlinien.py', 'https://raw.githubusercontent.com/custom-components/sensor.wienerlinien/master/custom_components/sensor/wienerlinien.py', 'https://github.com/custom-components/sensor.wienerlinien', 'https://github.com/custom-components/sensor.wienerlinien/releases/latest'], 'sickrage': ['sickrage', '0.1.0', 'custom_components/sickrage/__init__.py', 'https://raw.githubusercontent.com/custom-components/sickrage/master/custom_components/sickrage/__init__.py', 'https://github.com/custom-components/sickrage', 'https://github.com/custom-components/sickrage/releases/latest'], 'switch.hadockermon': ['switch.hadockermon', '', 'custom_components/switch/hadockermon.py', 'https://raw.githubusercontent.com/custom-components/switch.hadockermon/master/custom_components/switch/hadockermon.py', 'https://github.com/custom-components/switch.hadockermon', 'https://github.com/custom-components/switch.hadockermon/releases/latest'], 'usps_mail': ['usps_mail', '0.0.5', 'custom_components/usps_mail.py', 'https://raw.githubusercontent.com/custom-components/usps_mail/master/custom_components/usps_mail.py', 'https://github.com/custom-components/usps_mail', 'https://github.com/custom-components/usps_mail/releases/latest']}
2018-10-02 13:28:16 DEBUG (SyncWorker_38) [pyupdate.ha_custom.custom_components] get_sensor_data: [{'domain': 'custom_components', 'has_update': [], 'custom_updater': {'local': '3.1.4', 'remote': '3.1.4', 'has_update': False, 'not_local': False, 'repo': 'https://github.com/custom-components/custom_updater', 'change_log': 'https://github.com/custom-components/custom_updater/releases/latest'}}, 0]

After that, nothing happens and the sensor is not installed

"Update all" removes the group of the ui-lovelace.yaml file

Version
3.1.8

Description of the bug
When I hit "update all" button everything is updated as expected but the linux group of the ui-lovelace.yaml file is removed. It appears as nogroup.

I set write access rights to the homeassistant group for this file because the user I'm connected with does modifications to the file. So each time I update I have to re-set the group.
The rights are still there though.

Is this possible for the tracker card to not change the group ?

image

hide_sensor not respected.

Version of the cusom_component

2.2.0

Configuration snippet

custom_updater:
  hide_sensor: true

Describe the bug
Just did a clean install of my HA. Placed custom_updater.py in custom_components, tracker-card.js in www. After a restart I got some errors, probably related to there being no ui-lovelace.yaml yet. I created a lovelace file, but didn't include the tracker-card yet. After one more restart, I noticed a sensor at the top of the dashboard as seen below:
image
Viewing the current entities list, I noticed there being only hidden: true value for the component-tracker, not for custom-cards-tracker, which might be related.
image

Not recognizing custom_module: media_player.braviatv_psk

Version of the custom_component
3.1.7
Describe the bug
Even as the custom_component "braviatv_psk is installed to /config/custom_components/media_player/braviatv_psk.py the custom_updater / tracker card does not recognize it and only shows n/a

image

image

Getting Errors Not Finding Components Not Installed

Version of the custom_component
2.7

Describe the bug
On boot, customer updater is throwing errors about not finding components that aren't installed.

log

2018-09-21 17:29:01 DEBUG (SyncWorker_2) [custom_components.custom_updater] Could not get the local version for sensor.syncthing

I don't have Syncthing Sensor installed. The custom updater shouldn't care that it can't find it since it's not installed.

Change entity states to UTC time instead of timestamp

Is your feature request related to a problem? Please describe.
Currently the states of sensor.custom_card_tracker and sensor.custom_component_tracker are timestamps, which are not very useful when reading them.

Describe the solution you'd like
Using a UTC datetime would be much more useful and consistent with other HA components.

Describe alternatives you've considered
None.

Additional context
Rather than using time.time(), I'd suggest using homeassistant.util.dt.utcnow(). Of course, if the timestamp is actually used somewhere (tracker card??), then maybe this can't be done.

Updating Custom_Updater via its own card is a temporary disappearing act

Version
3.1.7

Describe the bug
Upon updating custom_updater itself via the lovelace card, the code itself updated fine in the custom_components directory via "Update All", but the code did not continue to update the remainder of the custom components. It just quit - custom_updater was no longer listed in the card, and "Update All" or "Check All" did nothing.

I restarted Hassio (80.1) with custom_updater debugging enabled and found that custom_updater was now listed in the card, and Update All worked (sort of). It updated just one custom component, but no others. It threw the error below. I need to repeat Check/Update All to update the next component.

This problem has been duplicated on two separate Hassio systems.

log

2018-10-17 10:13:16 WARNING (MainThread) [homeassistant.loader] You are using a custom component for custom_updater which has not been tested by Home Assistant. This component might cause stability prob
2018-10-17 10:13:16 WARNING (MainThread) [homeassistant.loader] You are using a custom component for device_tracker.life360 which has not been tested by Home Assistant. This component might cause stabil
2018-10-17 10:13:52 INFO (SyncWorker_2) [custom_components.custom_updater] if you have ANY issues with this, please report them here: https://github.com/custom-components/custom_updater
2018-10-17 10:13:59 ERROR (MainThread) [homeassistant.core] Timer got out of sync. Resetting
2018-10-17 10:14:59 ERROR (MainThread) [homeassistant.core] Error executing service <ServiceCall custom_updater.update_all (c:ab24d86d0f03422b8556f6fa0f2a15f1)>
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/homeassistant/core.py", line 1185, in _event_to_service_call
    await self._hass.async_add_executor_job(execute_service)
  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.6/site-packages/homeassistant/core.py", line 1182, in execute_service
    service_handler.func(service_call)
  File "/config/custom_components/custom_updater.py", line 96, in update_all_service
    components_controller.update_all()
  File "/config/custom_components/custom_updater.py", line 196, in update_all
    self.custom_url)
  File "/config/deps/lib/python3.6/site-packages/pyupdate/ha_custom/custom_components.py", line 78, in update_all
    upgrade_single(base_dir, name, custom_repos)
  File "/config/deps/lib/python3.6/site-packages/pyupdate/ha_custom/custom_components.py", line 90, in upgrade_single
    update_requirements(local_file)
  File "/config/deps/lib/python3.6/site-packages/pyupdate/ha_custom/custom_components.py", line 135, in update_requirements
    for package in requirements.split(' '):
AttributeError: 'list' object has no attribute 'split'
2018-10-17 10:15:27 ERROR (MainThread) [homeassistant.core] Error executing service <ServiceCall custom_updater.update_all (c:de2d791483c64f2d8d23b0e9f77d993b)>
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/homeassistant/core.py", line 1185, in _event_to_service_call
    await self._hass.async_add_executor_job(execute_service)
  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.6/site-packages/homeassistant/core.py", line 1182, in execute_service
    service_handler.func(service_call)
  File "/config/custom_components/custom_updater.py", line 96, in update_all_service
    components_controller.update_all()
  File "/config/custom_components/custom_updater.py", line 196, in update_all
    self.custom_url)
  File "/config/deps/lib/python3.6/site-packages/pyupdate/ha_custom/custom_components.py", line 78, in update_all
    upgrade_single(base_dir, name, custom_repos)
  File "/config/deps/lib/python3.6/site-packages/pyupdate/ha_custom/custom_components.py", line 90, in upgrade_single
    update_requirements(local_file)
  File "/config/deps/lib/python3.6/site-packages/pyupdate/ha_custom/custom_components.py", line 135, in update_requirements
    for package in requirements.split(' '):
AttributeError: 'list' object has no attribute 'split'

Add support for AppDaemon scripts

Is your feature request related to a problem? Please describe.
No

Describe the solution you'd like
Allow JSON file to list files in the AppDaemon apps folder (default homeassistant_config/apps)
This is an example of AppDaemon script

Describe alternatives you've considered
None

Additional context
None

Dependabot couldn't find a requirements.txt for this project

Dependabot couldn't find a requirements.txt for this project.

Dependabot requires a requirements.txt to evaluate your project's current Python dependencies. It had expected to find one at the path: /requirements.txt.

If this isn't a Python project, or if it is a library, you may wish to disable updates for it from within Dependabot.

You can mention @dependabot in the comments below to contact the Dependabot team.

Error during setup of component custom_updater

VERSION = '3.1.8'

Describe the bug
Error during setup of component custom_updater (json error - missing delimeter). Also commented out component_urls option and got the same error. I did ensure code was pasted from RAW text from Github and was not formatted text.

Not sure when it last worked, but it used to work well.

configuration.yaml

custom_updater:
  component_urls: https://raw.githubusercontent.com/pnbruckner/homeassistant-config/master/custom_components.json

lovelace:
  yaml

ui-lovelace.yaml

resources:
  - url: /local/tracker-card.js?v=0
    type: js
  - type: custom:tracker-card
    title:
    trackers:
      - sensor.custom_card_tracker
      - sensor.custom_component_tracker

log

Home Assistant
0.84.6

Error during setup of component custom_updater
12:21 PM deps/lib/python3.6/site-packages/pyupdate/ha_custom/custom_components.py (ERROR)
You are using a custom component for device_tracker.composite which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
12:21 PM loader.py (WARNING)
You are using a custom component for device_tracker.asuswrt which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
12:21 PM loader.py (WARNING)
You are using a custom component for device_tracker.life360 which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
12:21 PM loader.py (WARNING)
You are using a custom component for custom_updater which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
12:21 PM loader.py (WARNING)
 

Log Details (ERROR)
Fri Jan 04 2019 12:21:06 GMT-0600 (Central Standard Time)

Error during setup of component custom_updater
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/homeassistant/setup.py", line 148, in _async_setup_component
    component.setup, hass, processed_config)  # type: ignore
  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/custom_updater.py", line 71, in setup
    config_show_installabe)
  File "/config/custom_components/custom_updater.py", line 180, in __init__
    self.cache_versions()
  File "/config/custom_components/custom_updater.py", line 186, in cache_versions
    self.custom_url)
  File "/config/deps/lib/python3.6/site-packages/pyupdate/ha_custom/custom_components.py", line 41, in get_sensor_data
    components = get_info_all_components(custom_repos)
  File "/config/deps/lib/python3.6/site-packages/pyupdate/ha_custom/custom_components.py", line 19, in get_info_all_components
    for name, component in response.json().items():
  File "/usr/local/lib/python3.6/site-packages/requests/models.py", line 897, in json
    return complexjson.loads(self.text, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/simplejson/__init__.py", line 518, in loads
    return _default_decoder.decode(s)
  File "/usr/local/lib/python3.6/site-packages/simplejson/decoder.py", line 370, in decode
    obj, end = self.raw_decode(s)
  File "/usr/local/lib/python3.6/site-packages/simplejson/decoder.py", line 400, in raw_decode
    return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting ',' delimiter or '}': line 188 column 146 (char 11239)

Error message bug

Version of the cusom_component

2.2.0

Describe the bug
When using component_urls, if one of those doesn't work, the error message lists the default URL. I didn't try it, but the same bug appears to affect card_urls, too.

log

2018-09-07 13:08:17 DEBUG (Thread-5) [custom_components.custom_updater] Could not get remote info for url https://raw.githubusercontent.com/custom-components/information/master/repos.json

New lovelace config

Is it reasonable to assume that you can't track custom lovelace cards if you use the new .storage config rather than an actual ui-lovelace.yaml file?

Is this something that will be integrated later, or is it unlikely with the new format?

Thanks for your time ๐Ÿ˜„

Add attribute with list of cards/components with updates available

Is your feature request related to a problem? Please describe.
No.

Describe the solution you'd like
Add an attribute that contains a list (or tuple) of all the cards/components that have updates available. This would be a nice summary, in addition to the state that shows the count. For people not using the tracker card this could be displayed in a template sensor. And for the tracker card, maybe this would be nice to display as well.

Describe alternatives you've considered
A template sensor could display this information already, but it would be nice if custom_updater did this itself. E.g.:

sensor:
  - platform: template
    sensors:
      custom_updates:
        entity_id: sensor.custom_component_tracker
        value_template: >
          {% for attr in states.sensor.custom_component_tracker.attributes.items()
              if attr[1].has_update -%}
            {% if not loop.first %},{% endif %}{{ attr[0] }}
          {%- endfor %}

Additional context
None.

custom_updater.install broken if not all track options are used

Version of the custom_component
3.1.1

Describe the bug
Using custom_updater.install service causes an exception if not all track options are used. E.g., I'm using just components and python_scripts.

log

Log Details (ERROR)
Mon Oct 01 2018 16:33:53 GMT-0500 (Central Daylight Time)

Error executing service <ServiceCall custom_updater.install (c:d9fc1b25293d475285ad9a2061cea5bd): element=light_store>
Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/core.py", line 1125, in _event_to_service_call
    await self._hass.async_add_executor_job(execute_service)
  File "/usr/lib/python3.5/asyncio/futures.py", line 380, in __iter__
    yield self  # This tells Task to wait for completion.
  File "/usr/lib/python3.5/asyncio/tasks.py", line 304, in _wakeup
    future.result()
  File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result
    raise self._exception
  File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/core.py", line 1122, in execute_service
    service_handler.func(service_call)
  File "/home/homeassistant/.homeassistant/custom_components/custom_updater.py", line 104, in install_service
    card_controller.install(element)
NameError: free variable 'card_controller' referenced before assignment in enclosing scope```

Sensors are no longer hidden even though configuration is applied

Version of the custom_component
tracker_card 0.1.5 / custom_updater 3.1.6

Describe the bug
The configuration below, doesnt hide the sensors in the ui no more

custom_updater:
show_installable: True
hide_sensor: True
track:
- components
- cards
- python_scripts

indenting is correct - just doesnt show here ...

instead it shows the sensors for all three trackers
log
unfortunately this doesn't produce any logs

custom_updater.update_all not updating from component_urls

Version of the custom_component
3.1.2

Describe the bug
https://github.com/ludeeus/pyupdate/blob/e3c8031081fd43ef482a60190083eba9ec535547/pyupdate/ha_custom/custom_components.py#L66-L72 is only using the first element of the returned list, so the components from component_urls are being ignored and not updated. This function should be looping through the returned list.

EDIT: I read the code wrong. The root of the problem may not be in these particular code lines. But components from component_urls are not getting updated, even though they are listed as having updates.

log

Add your logs here.

custom_updater not seeing all cards

Version of the custom_component
3.1.8

Describe the bug
I have three custom cards in my /config/www folder, but cutom_updater only sees two. I have it configured as such in configuration.yaml:

custom_updater:
  show_installable: false
  hide_sensor: true
  track:
    - components
    - cards
    - python_scripts

I have the tracker-card set like so in Lovelace:

    cards:
      - id: 888355b089af4730a9bb6ba98ebeeeff  # Automatically created id
        type: custom:tracker-card
        title:
        trackers:
          - sensor.custom_card_tracker
          - sensor.custom_component_tracker

My directory tree looks like:
image

With all that set, this is what I see in the Lovelace UI:
image

log (hopefully relevant parts)

2018-11-24 15:41:45 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139620464754928] Received {'type': 'call_service', 'domain': 'custom_updater', 'service': 'check_all', 'service_data': {}, 'id': 35}
2018-11-24 15:41:45 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: domain=custom_updater, service=check_all, service_data=, service_call_id=f43cda51ad7b44babe4d6f28cc97b162>
2018-11-24 15:41:45 DEBUG (MainThread) [homeassistant.components.api] STREAM 139621200462624 FORWARDING <Event call_service[L]: domain=custom_updater, service=check_all, service_data=, service_call_id=f43cda51ad7b44babe4d6f28cc97b162>
2018-11-24 15:41:45 DEBUG (MainThread) [homeassistant.components.api] STREAM 139621200462624 WRITING data: {"event_type": "call_service", "data": {"domain": "custom_updater", "service": "check_all", "service_data": {}, "service_call_id": "f43cda51ad7b44babe4d6f28cc97b162"}, "origin": "LOCAL", "time_fired": "2018-11-24T23:41:45.223068+00:00", "context": {"id": "ef524458903b4227bc54a3fb003f3d3b", "user_id": "7ea9d55db89947e9a6f4676b031a252b"}}
2018-11-24 15:41:45 DEBUG (SyncWorker_12) [pyupdate.ha_custom.common] get_repo_data: "['https://raw.githubusercontent.com/custom-cards/information/master/repos.json']"
2018-11-24 15:41:45 DEBUG (SyncWorker_12) [pyupdate.ha_custom.custom_cards] get_info_all_cards: {'aftership-card': ['aftership-card', '0.0.2', 'https://raw.githubusercontent.com/custom-cards/aftership-card/master/aftership-card.js', 'https://github.com/custom-cards/aftership-card', 'https://github.com/custom-cards/aftership-card/releases/latest'], 'beer-wishlist-card': ['beer-wishlist-card', '0.0.2', 'https://raw.githubusercontent.com/custom-cards/aftership-card/master/aftership-card.js', 'https://github.com/custom-cards/aftership-card', 'https://github.com/custom-cards/aftership-card/releases/latest'], 'button-entity-row': ['button-entity-row', '0.1.4', 'https://raw.githubusercontent.com/custom-cards/button-entity-row/master/button-entity-row.js', 'https://github.com/custom-cards/button-entity-row', 'https://github.com/custom-cards/button-entity-row/releases/latest'], 'canvas-gauge-card': ['canvas-gauge-card', '0.0.2', 'https://raw.githubusercontent.com/custom-cards/canvas-gauge-card/master/canvas-gauge-card.js', 'https://github.com/custom-cards/canvas-gauge-card', 'https://github.com/custom-cards/canvas-gauge-card/releases/latest'], 'circle-sensor-card': ['circle-sensor-card', '1.2.0', 'https://raw.githubusercontent.com/custom-cards/circle-sensor-card/master/circle-sensor-card.js', 'https://github.com/custom-cards/circle-sensor-card', 'https://github.com/custom-cards/circle-sensor-card/releases/latest'], 'ext-weblink': ['ext-weblink', '0.3.2', 'https://raw.githubusercontent.com/custom-cards/ext-weblink/master/ext-weblink.js', 'https://github.com/custom-cards/ext-weblink', 'https://github.com/custom-cards/ext-weblink/releases/latest'], 'light-entity-row': ['light-entity-row', '0.2.4', 'https://raw.githubusercontent.com/custom-cards/light-entity-row/master/light-entity-row.js', 'https://github.com/custom-cards/light-entity-row', 'https://github.com/custom-cards/light-entity-row/releases/latest'], 'list-card': ['list-card', '0.0.7', 'https://raw.githubusercontent.com/custom-cards/list-card/master/list-card.js', 'https://github.com/custom-cards/list-card', 'https://github.com/custom-cards/list-card/releases/latest'], 'rmv-card': ['rmv-card', '999', 'https://raw.githubusercontent.com/custom-cards/marquee-state-element/master/marquee-state-element.js', 'https://github.com/custom-cards/marquee-state-element', 'https://github.com/custom-cards/marquee-state-element/releases/latest'], 'state-attribute-element': ['state-attribute-element', '0.2.0', 'https://raw.githubusercontent.com/custom-cards/state-attribute-element/master/state-attribute-element.js', 'https://github.com/custom-cards/state-attribute-element', 'https://github.com/custom-cards/state-attribute-element/releases/latest'], 'state-element': ['state-element', '0.0.1', 'https://raw.githubusercontent.com/custom-cards/state-element/master/state-element.js', 'https://github.com/custom-cards/state-element', 'https://github.com/custom-cards/state-element/releases/latest'], 'surveillance-card': ['surveillance-card', '0.0.1', 'https://raw.githubusercontent.com/custom-cards/surveillance-card/master/surveillance-card.js', 'https://github.com/custom-cards/surveillance-card', 'https://github.com/custom-cards/surveillance-card/releases/latest'], 'text-element': ['text-element', '0.0.2', 'https://raw.githubusercontent.com/custom-cards/text-element/master/text-element.js', 'https://github.com/custom-cards/text-element', 'https://github.com/custom-cards/text-element/releases/latest'], 'tracker-card': ['tracker-card', '0.1.5', 'https://raw.githubusercontent.com/custom-cards/tracker-card/master/tracker-card.js', 'https://github.com/custom-cards/tracker-card', 'https://github.com/custom-cards/tracker-card/blob/master/changelog.md'], 'upcoming-media-card': ['upcoming-media-card', '0.3.3', 'https://raw.githubusercontent.com/custom-cards/upcoming-media-card/master/upcoming-media-card.js', 'https://github.com/custom-cards/upcoming-media-card', 'https://github.com/custom-cards/upcoming-media-card/releases/latest'], 'username-element': ['username-element', '0.0.1', 'https://raw.githubusercontent.com/custom-cards/username-element/master/username-element.js', 'https://github.com/custom-cards/username-element', 'https://github.com/custom-cards/username-element/releases/latest'], 'vertical-stack-in-card': ['vertical-stack-in-card', '0.0.8', 'https://raw.githubusercontent.com/custom-cards/vertical-stack-in-card/master/vertical-stack-in-card.js', 'https://github.com/custom-cards/vertical-stack-in-card', 'https://github.com/custom-cards/vertical-stack-in-card/blob/master/changelog.md'], 'card-modder': ['card-modder', 'b44fb3', 'https://raw.githubusercontent.com/thomasloven/lovelace-card-modder/master/card-modder.js', 'https://github.com/thomasloven/lovelace-card-modder', 'https://github.com/thomasloven/lovelace-card-modder'], 'color-glance-card': ['color-glance-card', '4717b8', 'https://raw.githubusercontent.com/thomasloven/lovelace-color-glance-card/master/color-glance-card.js', 'https://github.com/thomasloven/lovelace-color-glance-card', 'https://github.com/thomasloven/lovelace-color-glance-card'], 'column-card': ['column-card', 'c8c80f', 'https://raw.githubusercontent.com/thomasloven/lovelace-column-card/master/column-card.js', 'https://github.com/thomasloven/lovelace-column-card', 'https://github.com/thomasloven/lovelace-column-card'], 'fold-entity-row': ['fold-entity-row', 'a310c8', 'https://raw.githubusercontent.com/thomasloven/lovelace-fold-entity-row/master/fold-entity-row.js', 'https://github.com/thomasloven/lovelace-fold-entity-row', 'https://github.com/thomasloven/lovelace-fold-entity-row'], 'lovelace-fullykiosk': ['lovelace-fullykiosk', '96feda', 'https://raw.githubusercontent.com/thomasloven/lovelace-fullykiosk/master/lovelace-fullykiosk.js', 'https://github.com/thomasloven/lovelace-fullykiosk', 'https://github.com/thomasloven/lovelace-fullykiosk'], 'layout-card': ['layout-card', '7db164', 'https://raw.githubusercontent.com/thomasloven/lovelace-layout-card/master/layout-card.js', 'https://github.com/thomasloven/lovelace-layout-card', 'https://github.com/thomasloven/lovelace-layout-card'], 'long-press': ['long-press', 'ca07e2', 'https://raw.githubusercontent.com/thomasloven/lovelace-long-press/master/long-press.js', 'https://github.com/thomasloven/lovelace-long-press', 'https://github.com/thomasloven/lovelace-long-press'], 'lovelace-player': ['lovelace-player', 'c2a43b', 'https://raw.githubusercontent.com/thomasloven/lovelace-player/master/lovelace-player.js', 'https://github.com/thomasloven/lovelace-player', 'https://github.com/thomasloven/lovelace-player'], 'popup-card': ['popup-card', '019d45', 'https://raw.githubusercontent.com/thomasloven/lovelace-popup-card/master/popup-card.js', 'https://github.com/thomasloven/lovelace-popup-card', 'https://github.com/thomasloven/lovelace-popup-card'], 'slider-entity-row': ['slider-entity-row', '5e75f8', 'https://raw.githubusercontent.com/thomasloven/lovelace-slider-entity-row/master/slider-entity-row.js', 'https://github.com/thomasloven/lovelace-slider-entity-row', 'https://github.com/thomasloven/lovelace-slider-entity-row'], 'state-switch': ['state-switch', '2b02f2', 'https://raw.githubusercontent.com/thomasloven/lovelace-state-switch/master/state-switch.js', 'https://github.com/thomasloven/lovelace-state-switch', 'https://github.com/thomasloven/lovelace-state-switch'], 'time-input-row': ['time-input-row', 'f503b7', 'https://raw.githubusercontent.com/thomasloven/lovelace-time-input-row/master/time-input-row.js', 'https://github.com/thomasloven/lovelace-time-input-row', 'https://github.com/thomasloven/lovelace-time-input-row'], 'toggle-lock-entity-row': ['toggle-lock-entity-row', 'a57ac1', 'https://raw.githubusercontent.com/thomasloven/lovelace-toggle-lock-entity-row/master/toggle-lock-entity-row.js', 'https://github.com/thomasloven/lovelace-toggle-lock-entity-row', 'https://github.com/thomasloven/lovelace-toggle-lock-entity-row'], 'useful-markdown-card': ['useful-markdown-card', 'bac550', 'https://raw.githubusercontent.com/thomasloven/lovelace-useful-markdown-card/master/useful-markdown-card.js', 'https://github.com/thomasloven/lovelace-useful-markdown-card', 'https://github.com/thomasloven/lovelace-useful-markdown-card'], 'monster-card': ['monster-card', '0.2.3', 'https://raw.githubusercontent.com/ciotlosm/custom-lovelace/master/monster-card/monster-card.js', 'https://github.com/ciotlosm/custom-lovelace/tree/master/monster-card', 'https://github.com/ciotlosm/custom-lovelace/tree/master/monster-card/changelog.md'], 'gauge-card': ['gauge-card', '0.2.0', 'https://raw.githubusercontent.com/ciotlosm/custom-lovelace/master/gauge-card/gauge-card.js', 'https://github.com/ciotlosm/custom-lovelace/tree/master/gauge-card', 'https://github.com/ciotlosm/custom-lovelace/tree/master/gauge-card/changelog.md'], 'entity-attributes-card': ['entity-attributes-card', '0.1.1', 'https://raw.githubusercontent.com/ciotlosm/custom-lovelace/master/entity-attributes-card/entity-attributes-card.js', 'https://github.com/ciotlosm/custom-lovelace/tree/master/entity-attributes-card', 'https://github.com/ciotlosm/custom-lovelace/tree/master/entity-attributes-card/changelog.md'], 'group-card': ['group-card', '0.0.2', 'https://raw.githubusercontent.com/ciotlosm/custom-lovelace/master/group-card/group-card.js', 'https://github.com/ciotlosm/custom-lovelace/tree/master/group-card', 'https://github.com/ciotlosm/custom-lovelace/tree/master/group-card/changelog.md'], 'thermostat-card': ['thermostat-card', '0.1.1', 'https://raw.githubusercontent.com/ciotlosm/custom-lovelace/master/thermostat-card/thermostat-card.js', 'https://github.com/ciotlosm/custom-lovelace/tree/master/thermostat-card', 'https://github.com/ciotlosm/custom-lovelace/tree/master/thermostat-card/changelog.md'], 'plan-coordinates': ['plan-coordinates', '0.1.0', 'https://raw.githubusercontent.com/ciotlosm/custom-lovelace/master/plan-coordinates/plan-coordinates.js', 'https://github.com/ciotlosm/custom-lovelace/tree/master/plan-coordinates', 'https://github.com/ciotlosm/custom-lovelace/tree/master/plan-coordinates/changelog.md'], 'alarm_control_panel-card': ['alarm_control_panel-card', '0.4.0', 'https://raw.githubusercontent.com/ciotlosm/custom-lovelace/master/alarm_control_panel-card/alarm_control_panel-card.js', 'https://github.com/ciotlosm/custom-lovelace/tree/master/alarm_control_panel-card', 'https://github.com/ciotlosm/custom-lovelace/tree/master/alarm_control_panel-card/changelog.md'], 'bignumber-card': ['bignumber-card', '0.0.1', 'https://raw.githubusercontent.com/ciotlosm/custom-lovelace/master/bignumber-card/bignumber-card.js', 'https://github.com/ciotlosm/custom-lovelace/tree/master/bignumber-card', 'https://github.com/ciotlosm/custom-lovelace/tree/master/bignumber-card/changelog.md'], 'home-setter': ['home-setter', '0.0.1', 'https://raw.githubusercontent.com/ciotlosm/custom-lovelace/master/home-setter/home-setter.js', 'https://github.com/ciotlosm/custom-lovelace/tree/master/home-setter', 'https://github.com/ciotlosm/custom-lovelace/tree/master/home-setter/changelog.md'], 'beer-card': ['beer-card', '0.2.3', 'https://raw.githubusercontent.com/ciotlosm/custom-lovelace/master/beer-card/beer-card.js', 'https://github.com/ciotlosm/custom-lovelace/tree/master/beer-card', 'https://github.com/ciotlosm/custom-lovelace/tree/master/beer-card/changelog.md']}
2018-11-24 15:41:45 DEBUG (SyncWorker_12) [pyupdate.ha_custom.custom_cards] get_sensor_data: [{'domain': 'custom_cards', 'has_update': [], 'tracker-card': {'local': '0.1.5', 'remote': '0.1.5', 'has_update': False, 'not_local': False, 'repo': 'https://github.com/custom-cards/tracker-card', 'change_log': 'https://github.com/custom-cards/tracker-card/blob/master/changelog.md'}, 'monster-card': {'local': '0.2.3', 'remote': '0.2.3', 'has_update': False, 'not_local': False, 'repo': 'https://github.com/ciotlosm/custom-lovelace/tree/master/monster-card', 'change_log': 'https://github.com/ciotlosm/custom-lovelace/tree/master/monster-card/changelog.md'}}, 0]
2018-11-24 15:41:45 DEBUG (SyncWorker_12) [pyupdate.ha_custom.common] get_repo_data: "['https://raw.githubusercontent.com/custom-components/information/master/repos.json']"
2018-11-24 15:41:45 DEBUG (SyncWorker_12) [pyupdate.ha_custom.custom_components] get_info_all_components: {'binary_sensor.hadockermon': ['binary_sensor.hadockermon', '', 'custom_components/binary_sensor/hadockermon.py', 'https://raw.githubusercontent.com/custom-components/binary_sensor.hadockermon/master/custom_components/binary_sensor/hadockermon.py', 'https://github.com/custom-components/binary_sensor.hadockermon', 'https://github.com/custom-components/binary_sensor.hadockermon/releases/latest'], 'camera.combined': ['camera.combined', '0.0.1', 'custom_components/camera/combined.py', 'https://raw.githubusercontent.com/custom-components/camera.combined/master/custom_components/camera/combined.py', 'https://github.com/custom-components/camera.combined', 'https://github.com/custom-components/camera.combined/releases/latest'], 'camera.multisource': ['camera.multisource', '0.3.0', 'custom_components/camera/multisource.py', 'https://raw.githubusercontent.com/custom-components/camera.multisource/master/custom_components/camera/multisource.py', 'https://github.com/custom-components/camera.multisource', 'https://github.com/custom-components/camera.multisource/releases/latest'], 'camera.unsplash': ['camera.unsplash', '0.4.2', 'custom_components/camera/unsplash.py', 'https://raw.githubusercontent.com/custom-components/camera.unsplash/master/custom_components/camera/unsplash.py', 'https://github.com/custom-components/camera.unsplash', 'https://github.com/custom-components/camera.unsplash/releases/latest'], 'climate.e_thermostaat': ['climate.e_thermostaat', '0.2.0', 'custom_components/climate/e_thermostaat.py', 'https://raw.githubusercontent.com/custom-components/climate.e_thermostaat/master/custom_components/climate/e_thermostaat.py', 'https://github.com/custom-components/climate.e_thermostaat', 'https://github.com/custom-components/climate.e_thermostaat/releases/latest'], 'custom_updater': ['custom_updater', '3.1.8', 'custom_components/custom_updater.py', 'https://raw.githubusercontent.com/custom-components/custom_updater/master/custom_components/custom_updater.py', 'https://github.com/custom-components/custom_updater', 'https://github.com/custom-components/custom_updater/releases/latest'], 'hassbian_config': ['hassbian_config', '2.0.1', 'custom_components/hassbian_config.py', 'https://raw.githubusercontent.com/custom-components/hassbian_config/master/custom_components/hassbian_config.py', 'https://github.com/custom-components/hassbian_config', 'https://github.com/custom-components/hassbian_config/releases/latest'], 'lists': ['lists', '', 'custom_components/lists.py', 'https://raw.githubusercontent.com/custom-components/lists/master/custom_components/lists.py', 'https://github.com/custom-components/lists', 'https://github.com/custom-components/lists/releases/latest'], 'media_player.braviatv_psk': ['media_player.braviatv_psk', '0.2.1', 'custom_components/media_player/braviatv_psk.py', 'https://raw.githubusercontent.com/custom-components/media_player.braviatv_psk/master/custom_components/media_player/braviatv_psk.py', 'https://github.com/custom-components/media_player.braviatv_psk', 'https://github.com/custom-components/media_player.braviatv_psk/releases/latest'], 'sensor.aftership': ['sensor.aftership', '0.3.0', 'custom_components/sensor/aftership.py', 'https://raw.githubusercontent.com/custom-components/sensor.aftership/master/custom_components/sensor/aftership.py', 'https://github.com/custom-components/sensor.aftership', 'https://github.com/custom-components/sensor.aftership/releases/latest'], 'sensor.authenticated': ['sensor.authenticated', '0.4.0', 'custom_components/sensor/authenticated.py', 'https://raw.githubusercontent.com/custom-components/sensor.authenticated/master/custom_components/sensor/authenticated.py', 'https://github.com/custom-components/sensor.authenticated', 'https://github.com/custom-components/sensor.authenticated/releases/latest'], 'sensor.brewdog': ['sensor.brewdog', '0.0.2', 'custom_components/sensor/brewdog.py', 'https://raw.githubusercontent.com/custom-components/sensor.brewdog/master/custom_components/sensor/brewdog.py', 'https://github.com/custom-components/sensor.brewdog', 'https://github.com/custom-components/sensor.brewdog/releases/latest'], 'sensor.feedparser': ['sensor.feedparser', '0.0.2', 'custom_components/sensor/feedparser.py', 'https://raw.githubusercontent.com/custom-components/sensor.feedparser/master/custom_components/sensor/feedparser.py', 'https://github.com/custom-components/sensor.feedparser', 'https://github.com/custom-components/sensor.feedparser/releases/latest'], 'sensor.geoip': ['sensor.geoip', '0.0.1', 'custom_components/sensor/geoip.py', 'https://raw.githubusercontent.com/custom-components/sensor.geoip/master/custom_components/sensor/geoip.py', 'https://github.com/custom-components/sensor.geoip', 'https://github.com/custom-components/sensor.geoip/releases/latest'], 'sensor.launchlibrary': ['sensor.launchlibrary', '1.1.0', 'custom_components/sensor/launchlibrary.py', 'https://raw.githubusercontent.com/custom-components/sensor.launchlibrary/master/custom_components/sensor/launchlibrary.py', 'https://github.com/custom-components/sensor.launchlibrary', 'https://github.com/custom-components/sensor.launchlibrary/releases/latest'], 'sensor.owlintuition': ['sensor.owlintuition', '1.1.0', 'custom_components/sensor/owlintuition.py', 'https://raw.githubusercontent.com/custom-components/sensor.owlintuition/master/custom_components/sensor/owlintuition.py', 'https://github.com/custom-components/sensor.owlintuition', 'https://github.com/custom-components/sensor.owlintuition/releases/latest'], 'sensor.personalcapital': ['sensor.personalcapital', '0.0.2', 'custom_components/sensor/personalcapital.py', 'https://raw.githubusercontent.com/custom-components/sensor.personalcapital/master/custom_components/sensor/personalcapital.py', 'https://github.com/custom-components/sensor.personalcapital', 'https://github.com/custom-components/sensor.personalcapital/releases/latest'], 'sensor.plex_recently_added': ['sensor.plex_recently_added', '0.1.8', 'custom_components/sensor/plex_recently_added.py', 'https://raw.githubusercontent.com/custom-components/sensor.plex_recently_added/master/custom_components/sensor/plex_recently_added.py', 'https://github.com/custom-components/sensor.plex_recently_added', 'https://github.com/custom-components/sensor.plex_recently_added/releases/latest'], 'sensor.radarr_upcoming_media': ['sensor.radarr_upcoming_media', '0.2.4', 'custom_components/sensor/radarr_upcoming_media.py', 'https://raw.githubusercontent.com/custom-components/sensor.radarr_upcoming_media/master/custom_components/sensor/radarr_upcoming_media.py', 'https://github.com/custom-components/sensor.radarr_upcoming_media', 'https://github.com/custom-components/sensor.radarr_upcoming_media/releases/latest'], 'sensor.rpi_power': ['sensor.rpi_power', '0.0.7', 'custom_components/sensor/rpi_power.py', 'https://raw.githubusercontent.com/custom-components/sensor.rpi_power/master/custom_components/sensor/rpi_power.py', 'https://github.com/custom-components/sensor.rpi_power', 'https://github.com/custom-components/sensor.rpi_power/releases/latest'], 'sensor.ruter': ['sensor.ruter', '3.0.0', 'custom_components/sensor/ruter.py', 'https://raw.githubusercontent.com/custom-components/sensor.ruter/master/custom_components/sensor/ruter.py', 'https://github.com/custom-components/sensor.ruter', 'https://github.com/custom-components/sensor.ruter/releases/latest'], 'sensor.sonarr_upcoming_media': ['sensor.sonarr_upcoming_media', '0.1.5', 'custom_components/sensor/sonarr_upcoming_media.py', 'https://raw.githubusercontent.com/custom-components/sensor.sonarr_upcoming_media/master/custom_components/sensor/sonarr_upcoming_media.py', 'https://github.com/custom-components/sensor.sonarr_upcoming_media', 'https://github.com/custom-components/sensor.sonarr_upcoming_media/releases/latest'], 'sensor.ssh': ['sensor.ssh', '0.1.1', 'custom_components/sensor/ssh.py', 'https://raw.githubusercontent.com/custom-components/sensor.ssh/master/custom_components/sensor/ssh.py', 'https://github.com/custom-components/sensor.ssh', 'https://github.com/custom-components/sensor.ssh/releases/latest'], 'sensor.syncthing': ['sensor.syncthing', '', 'custom_components/sensor/syncthing/__init__.py', 'https://raw.githubusercontent.com/custom-components/sensor.syncthing/master/custom_components/sensor/syncthing/__init__.py', 'https://github.com/custom-components/sensor.syncthing', 'https://github.com/custom-components/sensor.syncthing/releases/latest'], 'sensor.tautulli': ['sensor.tautulli', '', 'custom_components/sensor/tautulli.py', 'https://raw.githubusercontent.com/custom-components/sensor.tautulli/master/custom_components/sensor/tautulli.py', 'https://github.com/custom-components/sensor.tautulli', 'https://github.com/custom-components/sensor.tautulli/releases/latest'], 'sensor.trakt': ['sensor.trakt', '0.0.2', 'custom_components/sensor/trakt.py', 'https://raw.githubusercontent.com/custom-components/sensor.trakt/master/custom_components/sensor/trakt.py', 'https://github.com/custom-components/sensor.trakt', 'https://github.com/custom-components/sensor.trakt/releases/latest'], 'sensor.unifigateway': ['sensor.unifigateway', '0.2.0', 'custom_components/sensor/unifigateway.py', 'https://raw.githubusercontent.com/custom-components/sensor.unifigateway/master/custom_components/sensor/unifigateway.py', 'https://github.com/custom-components/sensor.unifigateway', 'https://github.com/custom-components/sensor.unifigateway/releases/latest'], 'sensor.untapped': ['sensor.untapped', '', 'custom_components/sensor/untapped/__init__.py', 'https://raw.githubusercontent.com/custom-components/sensor.untapped/master/custom_components/sensor/untapped/__init__.py', 'https://github.com/custom-components/sensor.untapped', 'https://github.com/custom-components/sensor.untapped/releases/latest'], 'sensor.weatheralerts': ['sensor.weatheralerts', '', 'custom_components/sensor/weatheralerts.py', 'https://raw.githubusercontent.com/custom-components/sensor.weatheralerts/master/custom_components/sensor/weatheralerts.py', 'https://github.com/custom-components/sensor.weatheralerts', 'https://github.com/custom-components/sensor.weatheralerts/releases/latest'], 'sensor.wienerlinien': ['sensor.wienerlinien', '1.1.1', 'custom_components/sensor/wienerlinien.py', 'https://raw.githubusercontent.com/custom-components/sensor.wienerlinien/master/custom_components/sensor/wienerlinien.py', 'https://github.com/custom-components/sensor.wienerlinien', 'https://github.com/custom-components/sensor.wienerlinien/releases/latest'], 'sickchill': ['sickchill', '0.1.1', 'custom_components/sickchill/__init__.py', 'https://raw.githubusercontent.com/custom-components/sickchill/master/custom_components/sickchill/__init__.py', 'https://github.com/custom-components/sickchill', 'https://github.com/custom-components/sickchill/releases/latest'], 'switch.hadockermon': ['switch.hadockermon', '', 'custom_components/switch/hadockermon.py', 'https://raw.githubusercontent.com/custom-components/switch.hadockermon/master/custom_components/switch/hadockermon.py', 'https://github.com/custom-components/switch.hadockermon', 'https://github.com/custom-components/switch.hadockermon/releases/latest'], 'usps_mail': ['usps_mail', '0.1.1', 'custom_components/usps_mail.py', 'https://raw.githubusercontent.com/custom-components/usps_mail/master/custom_components/usps_mail.py', 'https://github.com/custom-components/usps_mail', 'https://github.com/custom-components/usps_mail/releases/latest']}
2018-11-24 15:41:45 DEBUG (SyncWorker_12) [pyupdate.ha_custom.custom_components] get_sensor_data: [{'domain': 'custom_components', 'has_update': [], 'custom_updater': {'local': '3.1.8', 'remote': '3.1.8', 'has_update': False, 'not_local': False, 'repo': 'https://github.com/custom-components/custom_updater', 'change_log': 'https://github.com/custom-components/custom_updater/releases/latest'}}, 0]
2018-11-24 15:41:45 DEBUG (SyncWorker_12) [pyupdate.ha_custom.common] get_repo_data: "[]"
2018-11-24 15:41:45 DEBUG (SyncWorker_12) [pyupdate.ha_custom.python_scripts] get_info_all_python_scripts: {}
2018-11-24 15:41:45 DEBUG (SyncWorker_12) [pyupdate.ha_custom.python_scripts] get_sensor_data: [{'domain': 'python_scripts', 'has_update': []}, 0]
2018-11-24 15:41:45 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event service_executed[L]: service_call_id=f43cda51ad7b44babe4d6f28cc97b162>
2018-11-24 15:41:45 DEBUG (MainThread) [homeassistant.components.api] STREAM 139621200462624 FORWARDING <Event service_executed[L]: service_call_id=f43cda51ad7b44babe4d6f28cc97b162>
2018-11-24 15:41:45 DEBUG (MainThread) [homeassistant.components.api] STREAM 139621200462624 WRITING data: {"event_type": "service_executed", "data": {"service_call_id": "f43cda51ad7b44babe4d6f28cc97b162"}, "origin": "LOCAL", "time_fired": "2018-11-24T23:41:45.907376+00:00", "context": {"id": "ef524458903b4227bc54a3fb003f3d3b", "user_id": "7ea9d55db89947e9a6f4676b031a252b"}}
2018-11-24 15:41:45 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection.139620464754928] Sending {'id': 35, 'type': 'result', 'success': True, 'result': None}

For reference, this is card: https://github.com/thomasloven/lovelace-fold-entity-row

Error, setup this component?

HASSIO 0-79
Just installed latest custom_updater.py and

In configuration I put simply

custom_updater:

018-09-30 12:06:16 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/homeassistant/setup.py", line 56, in async_setup_component
return await task # type: ignore
File "/usr/local/lib/python3.6/site-packages/homeassistant/setup.py", line 103, in _async_setup_component
component = loader.get_component(hass, domain)
File "/usr/local/lib/python3.6/site-packages/homeassistant/loader.py", line 92, in get_component
module = importlib.import_module(path)
File "/usr/local/lib/python3.6/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 994, in _gcd_import
File "", line 971, in _find_and_load
File "", line 955, in _find_and_load_unlocked
File "", line 665, in _load_unlocked
File "", line 674, in exec_module
File "", line 781, in get_code
File "", line 741, in source_to_code
File "", line 219, in _call_with_frames_removed
File "/config/custom_components/custom_updater.py", line 79
"""Set up this component."""
^

Feature Suggestion: Home Assistant update availability

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
When using Lovelace, there isn't any clear indicator for when an HA update/new version is availible. In the non Lovelace view, there is a sensor that will show up when a new update is availible.
Describe the solution you'd like
I'd like to use custom updater as a substitution for this sensor while using lovelace. It would also have the added benefit of keeping all updating/versioning in one place.

Error during component setup

Version of the cusom_component

1.2.0

Describe the bug
A clear and concise description of what the bug is.
Component fail to setup (somtimes)
log

2018-07-26 11:19:40 ERROR (MainThread) [homeassistant.setup] Error during setup of component custom_updater
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/urllib3/connection.py", line 171, in _new_conn
    (self._dns_host, self.port), self.timeout, **extra_kw)
  File "/usr/local/lib/python3.6/site-packages/urllib3/util/connection.py", line 56, in create_connection
    for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
  File "/usr/local/lib/python3.6/socket.py", line 745, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Try again
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 600, in urlopen
    chunked=chunked)
  File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 343, in _make_request
    self._validate_conn(conn)
  File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 849, in _validate_conn
    conn.connect()
  File "/usr/local/lib/python3.6/site-packages/urllib3/connection.py", line 314, in connect
    conn = self._new_conn()
  File "/usr/local/lib/python3.6/site-packages/urllib3/connection.py", line 180, in _new_conn
    self, "Failed to establish a new connection: %s" % e)
urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno -3] Try again
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 445, in send
    timeout=timeout
  File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 638, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/local/lib/python3.6/site-packages/urllib3/util/retry.py", line 398, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='raw.githubusercontent.com', port=443): Max retries exceeded with url: /custom-components/information/master/repos.json (Caused by NewConnectionError(': Failed to establish a new connection: [Errno -3] Try again',))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/homeassistant/setup.py", line 146, in _async_setup_component
    component.setup, hass, processed_config)  # type: ignore
  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/custom_updater.py", line 53, in setup
    components_controller = CustomComponents(hass, ha_conf_dir)
  File "/config/custom_components/custom_updater.py", line 229, in __init__
    self.cache_versions('now')
  File "/config/custom_components/custom_updater.py", line 237, in cache_versions
    remoteinfo = self.get_remote_info(component)
  File "/config/custom_components/custom_updater.py", line 304, in get_remote_info
    response = requests.get(COMPS_JSON)
  File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 512, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 622, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 513, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='raw.githubusercontent.com', port=443): Max retries exceeded with url: /custom-components/information/master/repos.json (Caused by NewConnectionError(': Failed to establish a new connection: [Errno -3] Try again',))

New has_update attribute breaks custom_updater.update_all service

Version of the custom_component
2.7.2

Describe the bug
Calling custom_updater.update_all service results in exception.

log

Log Details (ERROR)
Fri Sep 28 2018 08:03:32 GMT-0500 (Central Daylight Time)

Error executing service <ServiceCall custom_updater.update_all (c:834ef85f68774375912c7a637197e778)>
Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/core.py", line 1125, in _event_to_service_call
    await self._hass.async_add_executor_job(execute_service)
  File "/usr/lib/python3.5/asyncio/futures.py", line 380, in __iter__
    yield self  # This tells Task to wait for completion.
  File "/usr/lib/python3.5/asyncio/tasks.py", line 304, in _wakeup
    future.result()
  File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result
    raise self._exception
  File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/core.py", line 1122, in execute_service
    service_handler.func(service_call)
  File "/home/homeassistant/.homeassistant/custom_components/custom_updater.py", line 96, in update_all_service
    components_controller.update_all()
  File "/home/homeassistant/.homeassistant/custom_components/custom_updater.py", line 468, in update_all
    if (self.hass.data[COMP_DATA][name]['has_update'] and
TypeError: list indices must be integers or slices, not str

Additional information
After adding some extra debugging statements I saw that name was 'has_update'. I think line 466 needs to change to:

if name not in ('domain', 'repo', 'hidden', 'has_update'):

I made this change in my local copy and it fixed the problem.

check_all error

Hi,

I get the following error:

Unable to find service custom_components/check_all
14:10 core.py (WARNING)
Unable to find service custom_cards/check_all
14:10 core.py (WARNING)

Do not know why.

What can be wrong?

custom_updater install element error

Version of the custom_component

3.1.0
Describe the bug
A clear and concise description of what the bug is.
trying to install a custom component (life360).

here is my configuration.yaml section:

custom_updater:
  show_installable: True
  hide_sensor: true
  track:
    - components
    - python_scripts
  component_urls:
    - https://raw.githubusercontent.com/pnbruckner/homeassistant-config/master/custom_components.json
  python_script_urls:
    - https://raw.githubusercontent.com/pnbruckner/homeassistant-config/master/python_scripts.json

log

2018-11-26 17:10:04 DEBUG (SyncWorker_12) [custom_components.custom_updater] Installing life360
2018-11-26 17:10:04 ERROR (MainThread) [homeassistant.core] Error executing service <ServiceCall custom_updater.install (c:fe377ee939144431a0ed7512bb19af39): element=life360>
Traceback (most recent call last):
  File "/usr/src/app/homeassistant/core.py", line 1185, in _event_to_service_call
    await self._hass.async_add_executor_job(execute_service)
  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/app/homeassistant/core.py", line 1182, in execute_service
    service_handler.func(service_call)
  File "/config/custom_components/custom_updater.py", line 104, in install_service
    card_controller.install(element)
NameError: free variable 'card_controller' referenced before assignment in enclosing scope

Not working since 0.83

Custom_updater stopped working since 0.83.1 (I think). Before everything was fine and I haven't changed a single file:

configuration.yaml

custom_updater:
  show_installable: False
  track:
    - cards
    - components
  component_urls:
    - https://raw.githubusercontent.com/robmarkcole/Hue-sensors-HASS/master/custom_updater.json
    - https://github.com/bramkragten/custom-ui/blob/master/updater.json
  card_urls:
    - https://raw.githubusercontent.com/kalkih/mini-media-player/master/tracker.json
    - https://raw.githubusercontent.com/kalkih/mini-graph-card/master/tracker.json

ui-lovelace.yaml

resources:
  - url: /local/tracker-card.js?v=0.1.5
    type: js
  - url: /local/monster-card.js?v=0.2.3
    type: js
  - url: /local/gauge-card.js?v=0.2.0
    type: js
  - url: /local/entity-attributes-card.js?v=0.1.1
    type: js
  - url: /local/useful-markdown-card.js
    type: js
  - url: /local/vertical-stack-in-card.js?v=0.0.8
    type: js
  - url: /local/custom_ui/weather-card.js?v=0
    type: js
  - url: /local/mini-graph-card-bundle.js?v=0.0.8
    type: js
  - url: /local/mini-media-player-bundle.js?v=0.9.5
    type: module
  - url: /local/migrate-card/migrate-card.js?v=o
    type: module

Error.log

Dez 04 19:05:55 schneekluth hass[17491]: 2018-12-04 19:05:55 ERROR (MainThread) [homeassistant.setup] Error during setup of component custom_updater
Dez 04 19:05:55 schneekluth hass[17491]: Traceback (most recent call last):
Dez 04 19:05:55 schneekluth hass[17491]:   File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/setup.py", line 148, in _async_setup_component
Dez 04 19:05:55 schneekluth hass[17491]:     component.setup, hass, processed_config)  # type: ignore
Dez 04 19:05:55 schneekluth hass[17491]:   File "/usr/lib/python3.5/asyncio/futures.py", line 380, in __iter__
Dez 04 19:05:55 schneekluth hass[17491]:     yield self  # This tells Task to wait for completion.
Dez 04 19:05:55 schneekluth hass[17491]:   File "/usr/lib/python3.5/asyncio/tasks.py", line 304, in _wakeup
Dez 04 19:05:55 schneekluth hass[17491]:     future.result()
Dez 04 19:05:55 schneekluth hass[17491]:   File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result
Dez 04 19:05:55 schneekluth hass[17491]:     raise self._exception
Dez 04 19:05:55 schneekluth hass[17491]:   File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
Dez 04 19:05:55 schneekluth hass[17491]:     result = self.fn(*self.args, **self.kwargs)
Dez 04 19:05:55 schneekluth hass[17491]:   File "/home/pi/.homeassistant/custom_components/custom_updater.py", line 71, in setup
Dez 04 19:05:55 schneekluth hass[17491]:     config_show_installabe)
Dez 04 19:05:55 schneekluth hass[17491]:   File "/home/pi/.homeassistant/custom_components/custom_updater.py", line 180, in __init__
Dez 04 19:05:55 schneekluth hass[17491]:     self.cache_versions()
Dez 04 19:05:55 schneekluth hass[17491]:   File "/home/pi/.homeassistant/custom_components/custom_updater.py", line 186, in cache_versions
Dez 04 19:05:55 schneekluth hass[17491]:     self.custom_url)
Dez 04 19:05:55 schneekluth hass[17491]:   File "/srv/homeassistant/lib/python3.5/site-packages/pyupdate/ha_custom/custom_components.py", line 41, in get_sensor_data
Dez 04 19:05:55 schneekluth hass[17491]:     components = get_info_all_components(custom_repos)
Dez 04 19:05:55 schneekluth hass[17491]:   File "/srv/homeassistant/lib/python3.5/site-packages/pyupdate/ha_custom/custom_components.py", line 19, in get_info_all_components
Dez 04 19:05:55 schneekluth hass[17491]:     for name, component in response.json().items():
Dez 04 19:05:55 schneekluth hass[17491]:   File "/srv/homeassistant/lib/python3.5/site-packages/requests/models.py", line 897, in json
Dez 04 19:05:55 schneekluth hass[17491]:     return complexjson.loads(self.text, **kwargs)
Dez 04 19:05:55 schneekluth hass[17491]:   File "/srv/homeassistant/lib/python3.5/site-packages/simplejson/__init__.py", line 518, in loads
Dez 04 19:05:55 schneekluth hass[17491]:     return _default_decoder.decode(s)
Dez 04 19:05:55 schneekluth hass[17491]:   File "/srv/homeassistant/lib/python3.5/site-packages/simplejson/decoder.py", line 370, in decode
Dez 04 19:05:55 schneekluth hass[17491]:     obj, end = self.raw_decode(s)
Dez 04 19:05:55 schneekluth hass[17491]:   File "/srv/homeassistant/lib/python3.5/site-packages/simplejson/decoder.py", line 400, in raw_decode
Dez 04 19:05:55 schneekluth hass[17491]:     return self.scan_once(s, idx=_w(s, idx).end())
Dez 04 19:05:55 schneekluth hass[17491]: simplejson.errors.JSONDecodeError: Expecting value: line 7 column 1 (char 6)

Dependabot couldn't find a requirements.txt for this project

Dependabot couldn't find a requirements.txt for this project.

Dependabot requires a requirements.txt to evaluate your project's current Python dependencies. It had expected to find one at the path: /requirements.txt.

If this isn't a Python project, or if it is a library, you may wish to disable updates for it from within Dependabot.

You can mention @dependabot in the comments below to contact the Dependabot team.

only half of the cards are recognized

Version of the custom_component

Describe the bug
Only half of the cards are recognized as being installed, and show in the update window (show_installable: false, so not all are shown by default)

log

Add your logs here.

lovelace resources:

Lovelace Custom cards

#https://github.com/ciotlosm/custom-lovelace

resources:
# https://github.com/custom-cards/tracker-card
# https://github.com/custom-components/custom_updater/wiki/Installation
  - url: /local/custom_ui/lovelace/tracker-card.js?v=0.1.5
    type: js
# https://community.home-assistant.io/t/lovelace-bignumber-card/59280
  - url: /local/custom_ui/lovelace/bignumber-card?v=0.0.1
    type: js
#https://community.home-assistant.io/t/lovelace-attributes-card-entity-row/59122
  - url: /local/custom_ui/lovelace/entity-attributes-card?v=0.0.1
    type: js
# https://community.home-assistant.io/t/lovelace-gauge-card/58880
  - url: /local/custom_ui/lovelace/gauge-card?v=0.1
    type: js
# https://community.home-assistant.io/t/custom-animated-weather-card-for-lovelace/58338
  - url: /local/custom_ui/lovelace/weather-card?v=0.0.1
    type: js
# https://community.home-assistant.io/t/lovelace-bringing-back-entity-filter-monster-card/58701
  - url: /local/custom_ui/lovelace/monster-card?v=0.2.1
    type: js
# https://github.com/kalkih/mini-media-player
# https://community.home-assistant.io/t/lovelace-mini-media-player/68459
  - url: /local/custom_ui/mini-media-player.js?v=0.8.3
    type: module
# https://github.com/matisaul/vertical-style-card
  - url: /local/custom_ui/vertical-style-card.js?v=0.0.2
    type: js
# https://github.com/kuuji/button-card
# https://community.home-assistant.io/t/lovelace-button-card/65981
  - url: /local/custom_ui/button-card.js?v=0.0.2
    type: module
# https://github.com/thomasloven/lovelace-long-press
  - url: /local/custom_ui/long-press.js?v=252428
    type: js

custom_updater.yaml

# https://github.com/custom-components/custom_updater/wiki/Installation
track:
  - components
  - cards
  - python_scripts

component_urls:
  - https://raw.githubusercontent.com/robmarkcole/Hue-sensors-HASS/master/custom_updater.json
  - https://raw.githubusercontent.com/pnbruckner/homeassistant-config/master/custom_components.json

  - https://raw.githubusercontent.com/awesome-developer/my-awesome-repo/master/custom_components.json

card_urls:
  - https://raw.githubusercontent.com/kalkih/mini-media-player/master/tracker.json
  - https://raw.githubusercontent.com/kuuji/button-card/0.0.2/tracker.json
  - https://raw.githubusercontent.com/matisaul/vertical-style-card/master/tracker.json

  - https://raw.githubusercontent.com/awesome-developer/my-awesome-repo/master/custom_cards.json

python_script_urls:
  - https://raw.githubusercontent.com/awesome-developer/my-awesome-repo/master/python_scripts.json

show_installable: false

schermafbeelding 2018-10-05 om 12 54 02

so not displayed:
bignumber-card
attributes-card
gauge-card
weather-card
monster-card

these cards are shown when I show_installable, but with an n/a version:

schermafbeelding 2018-10-05 om 15 18 28

weather-card isn't shown at all

Hide 'sensor' entities

Is your feature request related to a problem? Please describe.

I'm always frustrated when the 'sensors' (with just some gibberish ๐Ÿ˜‰) for this component (sensor.custom_card_tracker and sensor.custom_component_tracker) show up on my overview. There is currently no way to hide these via customize.yaml.

Describe the solution you'd like

In a perfect world they would adhere to how other entities behave, if this is not possible via customize:, provide a config option for it.

Describe alternatives you've considered

As @ludeeus recommended, I added two lines to custom_updater.py.
A new line after line 116 to hide the card sensor containing:

self.hass.data[CARD_DATA]['hidden'] = True

and a new line after line 252 to hide the component sensor containing:

self.hass.data[COMPONENT_DATA]['hidden'] = True

This does effectively hide the entities in the overview.

Additional context

One side effect of this solution shows itself in the Lovelace UI,
the tracker-card now has extra entries for hidden as seen below:

image

Cannot install new version of the component - stuck at 2.7.0

3.1.7

When trying to install new version of the component, it won't load.
Running Homeassistant 0.79.3 in docker on linux server 18.04

log

Unable to install package pyupdate==0.2.15: The directory '/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
    The directory '/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
    Command "/usr/local/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-fn1w8dw4/pyupdate/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-83zuxu41/install-record.txt --single-version-externally-managed --prefix  --compile --user --prefix=" failed with error code 1 in /tmp/pip-install-fn1w8dw4/pyupdate/

Add support for python_scripts

Is your feature request related to a problem? Please describe.
No.

Describe the solution you'd like
Allow JSON files to list files in the python_scripts folder. That would allow controlled releases of these, too.

Describe alternatives you've considered
None.

Additional context
I think this could fairly easily be made to work by changing CustomComponents.install() to use self.hass.data[COMP_DATA][component]['local'] (i.e., the directory part of it) instead of component when determining which folder to check/create.

after 0.78.2 and 0.78.3 update, my lovelace custom updater is broken

Version of the custom_component
version_= '2.7.0'

Describe the bug
custom updater is not showing cards and components,after HA 0.78.2 and 0.78.3 update.

log

2018-09-22 13:21:00 ERROR (MainThread) [homeassistant.setup] Error during setup of component custom_updater
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/homeassistant/setup.py", line 148, in _async_setup_component
    component.setup, hass, processed_config)  # type: ignore
  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/custom_updater.py", line 74, in setup
    config_show_installabe)
  File "/config/custom_components/custom_updater.py", line 143, in __init__
    self.cache_versions()
  File "/config/custom_components/custom_updater.py", line 170, in cache_versions
    local_version = self.get_local_version(card[0])
  File "/config/custom_components/custom_updater.py", line 394, in get_local_version
    resources = self.get_resources()
  File "/config/custom_components/custom_updater.py", line 381, in get_resources
    content = yaml.safe_load(local)
  File "/usr/local/lib/python3.6/site-packages/yaml/__init__.py", line 94, in safe_load
    return load(stream, SafeLoader)
  File "/usr/local/lib/python3.6/site-packages/yaml/__init__.py", line 72, in load
    return loader.get_single_data()
  File "/usr/local/lib/python3.6/site-packages/yaml/constructor.py", line 37, in get_single_data
    return self.construct_document(node)
  File "/usr/local/lib/python3.6/site-packages/yaml/constructor.py", line 41, in construct_document
    data = self.construct_object(node)
  File "/usr/local/lib/python3.6/site-packages/yaml/constructor.py", line 86, in construct_object
    data = constructor(self, node)
  File "/usr/local/lib/python3.6/site-packages/homeassistant/util/yaml.py", line 205, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.6/site-packages/yaml/constructor.py", line 141, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.6/site-packages/yaml/constructor.py", line 86, in construct_object
    data = constructor(self, node)
  File "/usr/local/lib/python3.6/site-packages/homeassistant/util/yaml.py", line 232, in _construct_seq
    obj, = loader.construct_yaml_seq(node)
  File "/usr/local/lib/python3.6/site-packages/yaml/constructor.py", line 393, in construct_yaml_seq
    data.extend(self.construct_sequence(node))
  File "/usr/local/lib/python3.6/site-packages/yaml/constructor.py", line 116, in construct_sequence
    for child in node.value]
  File "/usr/local/lib/python3.6/site-packages/yaml/constructor.py", line 116, in <listcomp>
    for child in node.value]
  File "/usr/local/lib/python3.6/site-packages/yaml/constructor.py", line 86, in construct_object
    data = constructor(self, node)
  File "/usr/local/lib/python3.6/site-packages/homeassistant/util/yaml.py", line 205, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.6/site-packages/yaml/constructor.py", line 141, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.6/site-packages/yaml/constructor.py", line 86, in construct_object
    data = constructor(self, node)
  File "/usr/local/lib/python3.6/site-packages/yaml/constructor.py", line 414, in construct_undefined
    node.start_mark)

Create hassio addon

I know that the installation is pretty easy, but still it would be very convenient to install this via addon (also update process is better.

What do you think about that?

No module named 'pyupdate'

Version of the custom_component
3.1.8

Describe the bug
On restart, I get this log:

Error during setup of component custom_updater
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/homeassistant/setup.py", line 148, in _async_setup_component
    component.setup, hass, processed_config)  # type: ignore
  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/custom_updater.py", line 71, in setup
    config_show_installabe)
  File "/config/custom_components/custom_updater.py", line 171, in __init__
    from pyupdate.ha_custom import custom_components
ModuleNotFoundError: No module named 'pyupdate'

Does it even work with hassio? Or is pyupdate missing there?

Error during setup of component custom_updater (no_lovelace)

Version of the custom_component

'2.7.1'
Describe the bug
after having updated to the latest version '2.7.1' on Hassio 0.75.3 (no Lovelace) this is in the log:
anything I can do to correctly install?
log

018-09-27 07:24:58 ERROR (MainThread) [homeassistant.setup] Error during setup of component custom_updater
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/homeassistant/setup.py", line 148, in _async_setup_component
    component.setup, hass, processed_config)  # type: ignore
  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/custom_updater.py", line 73, in setup
    config_show_installabe)
  File "/config/custom_components/custom_updater.py", line 142, in __init__
    self.cache_versions()
  File "/config/custom_components/custom_updater.py", line 169, in cache_versions
    local_version = self.get_local_version(card[0])
  File "/config/custom_components/custom_updater.py", line 395, in get_local_version
    resources = self.get_resources()
  File "/config/custom_components/custom_updater.py", line 382, in get_resources
    if content['resources'] is not None:
KeyError: 'resources'

tried 2.7.0 but is almost identical:

2018-09-27 09:01:45 ERROR (MainThread) [homeassistant.setup] Error during setup of component custom_updater
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/homeassistant/setup.py", line 148, in _async_setup_component
    component.setup, hass, processed_config)  # type: ignore
  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/custom_updater.py", line 73, in setup
    config_show_installabe)
  File "/config/custom_components/custom_updater.py", line 142, in __init__
    self.cache_versions()
  File "/config/custom_components/custom_updater.py", line 169, in cache_versions
    local_version = self.get_local_version(card[0])
  File "/config/custom_components/custom_updater.py", line 393, in get_local_version
    resources = self.get_resources()
  File "/config/custom_components/custom_updater.py", line 381, in get_resources
    if content['resources'] is not None:
KeyError: 'resources'

No working on 0.84.0b4

After update to beta home assistant 0.84.0b4 custom updater not working. No show custom card only show version custom updater.

Only " ??? Updates" is shown

HASS 0.79.1


custom_updater:
  track:
    - components
    - cards
    - python_scripts
  card_urls:
    - https://raw.githubusercontent.com/matisaul/vertical-style-card/master/vertical-style-card.js
    - https://raw.githubusercontent.com/kuuji/button-card/0.0.2/tracker.json
    - https://raw.githubusercontent.com/rdehuyss

resources:
   - url: /local/tracker-card.js?v=0.1.5
     type: js

2018-09-30 16:52:58 ERROR (MainThread) [homeassistant.setup] Error during setup of component custom_updater
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/homeassistant/setup.py", line 148, in _async_setup_component
component.setup, hass, processed_config) # type: ignore
File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/custom_updater.py", line 65, in setup
config_show_installabe)
File "/config/custom_components/custom_updater.py", line 131, in init
self.cache_versions()
File "/config/custom_components/custom_updater.py", line 137, in cache_versions
self.custom_url)
File "/config/deps/lib/python3.6/site-packages/pyupdate/ha_custom/custom_cards.py", line 47, in get_sensor_data
cards = get_info_all_cards(custom_repos)
File "/config/deps/lib/python3.6/site-packages/pyupdate/ha_custom/custom_cards.py", line 15, in get_info_all_cards
for name, card in response.json().items():
File "/usr/local/lib/python3.6/site-packages/requests/models.py", line 896, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/local/lib/python3.6/site-packages/simplejson/init.py", line 518, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.6/site-packages/simplejson/decoder.py", line 370, in decode
obj, end = self.raw_decode(s)
File "/usr/local/lib/python3.6/site-packages/simplejson/decoder.py", line 400, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Component not found: custom_updater

Version of the custom_component
3.1.7
Describe the bug
When I add

custom_updater:
  show_installable: true
  hide_sensor: true
  track:
    - components
    - cards
    - python_scripts

or just:

custom_updater:

I get this error
Component not found: custom_updater

removing it, check is ok.

custom_updater.py is in config/custom_components folder

What else can I check?

Do I need to make some modification in the python script?

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.