diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100644 index 1abf507..0000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,7 +0,0 @@ -FROM mcr.microsoft.com/vscode/devcontainers/python:0-3.8 -ENV DEBIAN_FRONTEND=noninteractive - -# Install GH CLI -RUN apt-get update \ - \ - && curl -sfSL https://raw.githubusercontent.com/microsoft/vscode-dev-containers/master/script-library/github-debian.sh | bash - \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 319acd9..bf9c540 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,34 +1,29 @@ { - "build": { - "dockerfile": "Dockerfile", - }, - "extensions": [ - "ms-python.python", - "ms-python.vscode-pylance", - "visualstudioexptteam.vscodeintellicode", - "esbenp.prettier-vscode" - ], - "settings": { - "files.eol": "\n", - "editor.tabSize": 4, - "terminal.integrated.shell.linux": "/bin/bash", - "editor.formatOnPaste": false, - "editor.formatOnSave": true, - "editor.formatOnType": true, - "files.trimTrailingWhitespace": true, - "python.pythonPath": "/usr/local/bin/python3", - "python.linting.pylintEnabled": true, - "python.linting.enabled": true, - "python.formatting.provider": "black", - "python.formatting.blackArgs": [ - "--target-version", - "py38" - ], - "python.formatting.blackPath": "/usr/local/bin/black", - "python.linting.banditPath": "/usr/local/bin/bandit", - "python.linting.flake8Path": "/usr/local/bin/flake8", - "python.linting.mypyPath": "/usr/local/bin/mypy", - "python.linting.pylintPath": "/usr/local/bin/pylint", - "python.linting.pydocstylePath": "/usr/local/bin/pydocstyle" - } + "image": "ghcr.io/ludeeus/devcontainer/python:stable", + "context": "..", + "postCreateCommand": "python3 -m pip install -r requirements.txt", + "extensions": [ + "ms-python.python", + "github.vscode-pull-request-github", + "ryanluker.vscode-coverage-gutters", + "ms-python.vscode-pylance" + ], + "settings": { + "files.eol": "\n", + "editor.tabSize": 4, + "terminal.integrated.shell.linux": "/bin/bash", + "python.pythonPath": "/usr/local/python/bin/python", + "python.analysis.autoSearchPaths": false, + "python.linting.pylintEnabled": true, + "python.linting.enabled": true, + "python.linting.pylintArgs": [ + "--disable", + "import-error" + ], + "python.formatting.provider": "black", + "editor.formatOnPaste": false, + "editor.formatOnSave": true, + "editor.formatOnType": true, + "files.trimTrailingWhitespace": true + } } \ No newline at end of file diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 1ceb71d..8bc6d15 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -11,6 +11,7 @@ jobs: outputs: repository: ${{ steps.repository.outputs.repository }} category: ${{ steps.category.outputs.category }} + removal: ${{ steps.removal.outputs.removal }} steps: - name: Check out repository uses: actions/checkout@v2 @@ -18,20 +19,30 @@ jobs: - name: Clone origin run: git clone --depth 1 https://github.com/hacs/default /tmp/repositories/default - - name: Clone new addition - run: | - repo=$(python3 -m scripts.changed.repo) - git clone --depth 1 "https://github.com/$repo" /tmp/repositories/addition - - - name: Set category - id: category - run: echo "::set-output name=category::$(python3 -m scripts.changed.category)" - - name: Set repository id: repository run: echo "::set-output name=repository::$(python3 -m scripts.changed.repo)" + - name: Check removal + id: removal + run: | + if [ "${{ steps.repository.outputs.repository }}" == "Bad data []" ]; then + echo "::set-output name=removal::true" + fi + + - name: Set category + if: steps.removal.outputs.removal != 'true' + id: category + run: echo "::set-output name=category::$(python3 -m scripts.changed.category)" + + - name: Clone new addition + if: steps.removal.outputs.removal != 'true' + run: | + repo=$(python3 -m scripts.changed.repo) + git clone --depth 1 "https://github.com/$repo" /tmp/repositories/addition + - name: Upload shared artifacts + if: steps.removal.outputs.removal != 'true' uses: actions/upload-artifact@master with: name: repositories @@ -41,6 +52,7 @@ jobs: runs-on: ubuntu-latest name: Check Owner needs: preflight + if: needs.preflight.outputs.removal != 'true' steps: - name: Check out repository uses: actions/checkout@v2 @@ -74,33 +86,30 @@ jobs: name: repositories path: /tmp/repositories - - name: Pull Home Assistant Container - run: docker pull homeassistant/home-assistant:beta + - name: Get hassfest action + run: | + git clone --depth 1 https://github.com/home-assistant/actions.git /tmp/actions + echo "::add-matcher::/tmp/actions/hassfest/problem-matcher.json" + + - name: Enable problem-matcher + run: echo "::add-matcher::/tmp/actions/hassfest/problem-matcher.json" + + - name: Build hassfest + run: docker build /tmp/actions/hassfest -f /tmp/actions/hassfest/Dockerfile -t hassfest - name: Run hassfest run: | integration=$(python3 -m scripts.helpers.integration_path) domain=$(python3 -m scripts.helpers.domain) docker run \ - --entrypoint="" \ - -w="/usr/src/homeassistant" \ - -v "$integration":"/$domain" \ - homeassistant/home-assistant:beta \ - /bin/bash -c "\ - python3 -m pip --disable-pip-version-check install \ - pipdeptree==1.0.0 \ - stdlib-list==0.7.0 \ - tqdm==4.48.2 \ - \ - && python3 -m \ - script.hassfest \ - --action validate \ - --integration-path /$domain \ - " + --rm \ + -v "$integration":"/github/workspace/$domain" \ + hassfest hacs: runs-on: ubuntu-latest name: "Run HACS Action" needs: preflight + if: needs.preflight.outputs.removal != 'true' steps: - name: HACS action uses: "hacs/action@main" diff --git a/appdaemon b/appdaemon index aaa9d8b..7e80280 100644 --- a/appdaemon +++ b/appdaemon @@ -6,7 +6,6 @@ "apop880/SmartThings-Button", "apop880/White-Noise", "badguy99/octoblock", - "badguy99/octocost", "benleb/ad-automoli", "benleb/ad-ench", "benleb/ad-healthcheck", @@ -30,6 +29,7 @@ "nickneos/Appdaemon-ZHA-Hue-Dimmer-Switch", "nickneos/Appdaemon-ZHA-Xiaomi-Aqara-Switch", "nickneos/Bring-Back-group.all_x", + "NiklasReiche/ad-spotify-mood-lights-sync", "Odianosen25/Monitor-App", "Petro31/ad_convert_media_volume", "Petro31/ad_count_entities", diff --git a/blacklist b/blacklist index 8dafe3a..f0c929a 100644 --- a/blacklist +++ b/blacklist @@ -6,6 +6,7 @@ "au190/au190_bkk_stop_card", "au190/au190_lock_entity", "au190/au190_thermostat_card", + "badguy99/octocost", "basnijholt/media_player.kef", "benleb/ad-batterycheck", "benleb/ad-ench-ad3", @@ -45,6 +46,7 @@ "custom-components/sensor.geoip", "custom-components/sensor.kodi_recently_added", "custom-components/sensor.launchlibrary", + "custom-components/sensor.rpi_power", "custom-components/sensor.ruter", "custom-components/sensor.syncthing", "custom-components/sensor.tautulli", @@ -52,10 +54,13 @@ "custom-components/sensor.wifi-scanner", "custom-components/sickchill", "custom-components/switch.hadockermon", + "custom-components/uilogs", "custom-components/usps_mail", + "edenhaus/ha-prosenic", "eifinger/here_travel_time", "enriqg9/dual-thermostat", "fineemb/lynk-co", + "futuretense/lock-manager", "heinoldenhuis/home_assistant_area_waste", "home-assistant-community-themes/template", "home-assistant-community-themes/theme-request", diff --git a/integration b/integration index 5a7e4fa..d6adf24 100644 --- a/integration +++ b/integration @@ -9,6 +9,7 @@ "akasma74/Hass-Custom-Alarm", "albertogeniola/meross-homeassistant", "AlexxIT/SonoffLAN", + "AlexxIT/XiaomiGateway3", "algirdasc/hass-floureon", "alryaz/hass-hekr-component", "alryaz/hass-mosenergosbyt", @@ -18,6 +19,7 @@ "And3rsL/Deebot-for-hassio", "And3rsL/VisonicAlarm-for-Hassio", "andersonshatch/midea-ac-py", + "andvikt/mega_hacs", "Anonym-tsk/homeassistant-climate-xiaomi-remote", "arjenvrh/audi_connect_ha", "asantaga/lightwaverf_HA_EnergySensor", @@ -30,6 +32,7 @@ "ayavilevich/homeassistant-dlink-presence", "azogue/eventsensor", "azogue/fasthue", + "B5r1oJ0A9G/teufel_raumfeld", "bacco007/sensor.opennem", "bacco007/sensor.waternsw", "barban-dev/homeassistant-midea-dehumidifier", @@ -67,7 +70,9 @@ "cagnulein/switchbot_press", "caiosweet/Home-Assistant-custom-components-DPC-Alert", "caiosweet/Home-Assistant-custom-components-INGV", + "caronc/ha-ultrasync", "Ceerbeerus/beerbolaget", + "cgarwood/homeassistant-fullykiosk", "claudegel/sinope-1", "claudegel/sinope-130", "claudegel/sinope-gt125", @@ -107,7 +112,6 @@ "custom-components/sensor.personalcapital", "custom-components/sensor.plex_recently_added", "custom-components/sensor.radarr_upcoming_media", - "custom-components/sensor.rpi_power", "custom-components/sensor.sonarr_upcoming_media", "custom-components/sensor.ssh", "custom-components/sensor.stadtreinigung_hamburg", @@ -119,7 +123,6 @@ "custom-components/srp_energy", "custom-components/sytadin", "custom-components/templatesensor", - "custom-components/uilogs", "custom-components/unsplash", "custom-components/ups", "custom-components/weatheralerts", @@ -145,6 +148,7 @@ "dave-code-ruiz/uhomeuponor", "DavidFW1960/bom_forecast", "DavidMStraub/homeassistant-homeconnect", + "DCSBL/ha-homewizard-energy", "deblockt/hass-proscenic-790T-vacuum", "definitio/ha-rhvoice", "definitio/ha-sox", @@ -160,11 +164,11 @@ "dmitry-k/yandex_smart_home", "doudz/homeassistant-myjdownloader", "doudz/homeassistant-zigate", + "dphae/bsh", "dr1rrb/ha-twinkly", "DSorlov/hasl-platform", "dynasticorpheus/gigasetelements-ha", "eavanvalkenburg/sia", - "edenhaus/ha-prosenic", "eifinger/hass-foldingathomecontrol", "eifinger/open_route_service", "elad-bar/ha-blueiris", @@ -175,6 +179,7 @@ "ericpignet/home-assistant-tplink_router", "eseglem/hass-wattbox", "exKAjFASH/media_player.elkoep_lara", + "exxamalte/home-assistant-custom-components-nsw-rural-fire-service-fire-danger", "eyalcha/kan_program", "eyalcha/read_your_meter", "eyalcha/thermal", @@ -188,11 +193,13 @@ "FL550/dwd_weather", "fondberg/spotcast", "freakshock88/hass-populartimes", + "fred-oranje/rituals-genie", "freol35241/ltss", - "futuretense/lock-manager", + "futuretense/keymaster", "gadgetchnnel/entities_calendar", "garbled1/balboa_homeassistan", "garbled1/homeassistant_ecowitt", + "gazoodle/gecko-home-assistant", "gcobb321/icloud3", "gcorgnet/sensor.emby_upcoming_media", "GeorgeSG/ha-slack-user", @@ -210,20 +217,26 @@ "heyajohnny/afvalinfo", "heyajohnny/cryptoinfo", "Home-Is-Where-You-Hang-Your-Hack/sensor.goveetemp_bt_hci", + "HomeAssistant-Mods/home-assistant-miele", "imicknl/ha-tahoma", + "iprak/winix", "iprak/yahoofinance", "isabellaalstrom/sensor.krisinformation", "itchannel/fordpass-ha", + "itchannel/optus-ha", "ITTV-tools/homeassistant-kostalplenticore", "JAAlperin/hass-bardolph", "jaruba/ha-samsungtv-tizen", "jason0x43/hacs-hubitat", "JayBlackedOut/hass-nhlapi", + "jcgoette/baby_buddy_homeassistant", "jcwillox/hass-auto-backup", + "jellespijker/home-assistant-ultimaker", "jensweimann/awb", "jeroenterheerdt/HADailySensor", "jeroenterheerdt/HAsmartirrigation", "jesserockz/ha-leafspy", + "jessevl/homeassistant-greenchoice", "jihao/colorfulclouds-hass", "jihao/rokid-webhook-hass", "jihao/traccar-cn-hass", @@ -237,12 +250,16 @@ "jonkristian/wasteplan_trv", "jscruz/sensor.carbon_intensity_uk", "jseidl/hass-magic_areas", + "jtbgroup/kodi-media-sensors", + "jugla/worldtidesinfocustom", "JurajNyiri/HomeAssistant-Atrea", "JurajNyiri/HomeAssistant-qBitTorrentAlternativeSpeed", "JurajNyiri/HomeAssistant-Tapo-Control", "JurajNyiri/HomeAssistant-Tavos", + "jvitkauskas/homeassistant_salus", "jxlarrea/ha-emfitqs", "kalanda/homeassistant-aemet-sensor", + "kesteraernoudt/dobiss", "kirei/hass-chargeamps", "kodi1/darksky_m", "kodi1/esp_wd", @@ -251,12 +268,14 @@ "kodi1/tvh_rec", "KoljaWindeler/ics", "KoljaWindeler/kaco", + "KoljaWindeler/ytube_music_player", "konnected-io/noonlight-hass", "kuchel77/diskspace", "kukulich/home-assistant-jablotron100", "laszlojakab/homeassistant-dijnet", "laszlojakab/homeassistant-easycontrols", "legrego/homeassistant-elasticsearch", + "lendy007/homeassistant-skodaconnect", "lichtteil/local_luftdaten", "Limych/ha-average", "Limych/ha-beward", @@ -277,8 +296,10 @@ "mammuth/ha-fritzbox-tools", "mampfes/hacs_waste_collection_schedule", "mampfes/hacs_wiffi", + "MartinDybal/TapHome-HomeAssistant", "Martinvdm/garbage-nissewaard-homeassistant", "maykar/plex_assistant", + "metbril/home-assistant-brandstofprijzen", "michaellunzer/Home-Assistant-Custom-Component-Fortnite", "Michsior14/ha-laser-egg", "mikelawrence/senseme-hacs", @@ -288,6 +309,7 @@ "Mofeywalker/openmensa-hass-component", "moralmunky/Home-Assistant-Mail-And-Packages", "mrk-its/homeassistant-blitzortung", + "msekoranja/emsc-hacs-repository", "msp1974/homeassistant-jlrincontrol", "MTrab/landroid_cloud", "mudape/iphonedetect", @@ -295,6 +317,7 @@ "nagyrobi/home-assistant-custom-components-cover-rf-time-based", "nagyrobi/home-assistant-custom-components-linkplay", "nagyrobi/home-assistant-custom-components-pfsense-gateways", + "natekspencer/hacs-litterrobot", "nickneos/HA_harmony_climate_component", "nielsfaber/alarmo", "nielsfaber/scheduler-component", @@ -327,6 +350,7 @@ "postlund/dlink_hnap", "Pouzor/freebox_player", "ppanagiotis/pymusiccast", + "prairiesnpr/hass-tdameritrade", "ptimatth/GeorideHA", "PTST/O365-HomeAssistant", "py-smart-gardena/hass-gardena-smart-system", @@ -334,10 +358,13 @@ "r-renato/ha-climacell-weather", "r-renato/hass-xiaomi-mi-flora-and-flower-care", "raman325/ha-zoom-automation", + "rccoleman/lamarzocco", "rdehuyss/homeassistant-custom_components-denkovi", "reharmsen/hass-youless-component", "remco770/garbage-bar-homeassistant", + "ReneNulschDE/mbapi2020", "rgruebel/ha_zigbee2mqtt_networkmap", + "rj175/home-assistant-aws-codepipeline", "rkoebrugge/hacs-youless-component", "rob196/home-assistant-fxmarketapi", "robbinjanssen/home-assistant-omnik-inverter", @@ -354,11 +381,13 @@ "rsnodgrass/hass-adtpulse", "rsnodgrass/hass-flo-water", "rsnodgrass/hass-integrations", + "rsnodgrass/hass-lunos", "rsnodgrass/hass-poolmath", "rsnodgrass/hass-sensorpush", "rsnodgrass/hass-xantech", "rt400/ReversoTTS-HA", "rt400/School-Vacation", + "ryanmac8/HA-Mint-Mobile", "ryanmac8/Home-Assistant-Marta", "ryannazaretian/hacs-nexia-climate-integration", "safepay/cover.hd_powerview", @@ -392,6 +421,7 @@ "tefinger/hass-brematic", "TekniskSupport/home-assistant-resrobot", "tellerbop/havistapool", + "thebino/rki_covid", "ThermIQ/thermiq_mqtt-ha", "thevoltagesource/LennoxiComfort", "Thomas55555/husqvarna_automower", @@ -407,10 +437,12 @@ "tmonck/clean_up_snapshots", "tomaae/homeassistant-mikrotik_router", "tomaae/homeassistant-openmediavault", + "tomasbedrich/home-assistant-skydance", "toreamun/amshan-homeassistant", "toreamun/victorsmartkill-homeassistant", "troykelly/hacs-amberelectric", "troykelly/hacs-trackimo", + "tschamm/boschshc-hass", "turbokongen/hass-AMS", "turbulator/pandora-cas", "tuxuser/abfallapi_jumomind_ha", @@ -420,7 +452,6 @@ "twrecked/hass-virtual", "tybritten/ical-sensor-homeassistant", "ualex73/monitor_docker", - "unsigus/hass-homewizard-energy", "uvjustin/alarmdotcom", "vanstinator/hass-raincloud", "Verbalinsurection/next_rocket_launch", @@ -431,8 +462,10 @@ "websylv/homeassistant-meteoswiss", "willholdoway/hifiberry", "xirixiz/homeassistant-afvalwijzer", + "xlcnd/meteoalarmeu", "xMrVizzy/Minecraft-Version", "xMrVizzy/Philips-AirPurifier", + "xraver/mercedes_me_api", "youdroid/home-assistant-couchpotato", "youdroid/home-assistant-gitea", "youdroid/home-assistant-sickchill", diff --git a/plugin b/plugin index 487f448..5bd9893 100644 --- a/plugin +++ b/plugin @@ -21,6 +21,7 @@ "bokub/rgb-light-card", "bramkragten/swipe-card", "bramkragten/weather-card", + "bratanon/lovelace-conditional-entity-row", "Ceerbeerus/beerbolaget-card", "chaptergy/lightalarm-card", "ciotlosm/lovelace-thermostat-dark-card", @@ -74,6 +75,7 @@ "dmulcahey/zha-network-card", "dnguyen800/air-visual-card", "dooz127/swipe-glance-card", + "ExperienceLovelace/ha-floorplan", "ezand/lovelace-posten-card", "faeibson/lovelace-multiline-text-input-card", "fineemb/lovelace-air-filter-card", @@ -88,6 +90,7 @@ "finity69x2/cover-position-preset-row", "finity69x2/fan-control-entity-row", "finity69x2/light-brightness-preset-row", + "finity69x2/toggle-control-button-row", "gadgetchnnel/lovelace-card-preloader", "gadgetchnnel/lovelace-card-templater", "gadgetchnnel/lovelace-home-feed-card", @@ -98,6 +101,7 @@ "hasl-sensor/lovelace-hasl-departure-card", "hasl-sensor/lovelace-hasl-traffic-status-card", "htmltiger/numberbox-card", + "hulkhaugen/hass-bha-icons", "iantrich/aftership-card", "iantrich/config-template-card", "iantrich/podcast-card", @@ -117,12 +121,14 @@ "jeremywillans/lovelace-roomba-vacuum-card", "jonahkr/power-distribution-card", "jonkristian/entur-card", + "jtbgroup/kodi-playlist-card", "kalkih/mini-graph-card", "kalkih/mini-media-player", "kalkih/simple-weather-card", "kibibit/kb-better-graph-colors", "kibibit/kb-frosted-cards", "kibibit/kb-steam-card", + "kirbo/ha-lovelace-elapsed-time-card", "konnectedvn/lovelace-vertical-slider-cover-card", "KTibow/fullscreen-card", "ljmerza/fitbit-card", @@ -161,18 +167,23 @@ "postlund/search-card", "r-renato/ha-card-waze-travel-time", "r-renato/ha-card-weather-conditions", + "rccoleman/lovelace-lamarzocco-config-card", "reptilex/tesla-style-solar-power-card", "RodBr/miflora-card", + "RomRider/apexcharts-card", "royto/logbook-card", "rsnodgrass/water-heater-card", "Savjee/button-text-card", "sbryfcz/harmony-card", "sdelliot/pie-chart-card", "Sian-Lee-SA/honeycomb-menu", + "SNoof85/lovelace-tempometer-gauge-card", + "sopelj/lovelace-kanji-clock-card", "TarheelGrad1998/gallery-card", "tcarlsen/lovelace-light-with-profiles", "TheLastProject/lovelace-media-art-background", "TheLastProject/lovelace-valetudo-map-card", + "tholgir/TodoIst-Task-List", "thomasloven/lovelace-auto-entities", "thomasloven/lovelace-badge-card", "thomasloven/lovelace-card-mod", diff --git a/removed b/removed index 1c8cfb5..4a2c2e8 100644 --- a/removed +++ b/removed @@ -405,5 +405,35 @@ "reason": "NWS radar server no longer operational", "removal_type": "removal", "link": "https://github.com/MatthewFlamm/nwsradar/issues/16" + }, + { + "repository": "futuretense/lock-manager", + "reason": "replacing integration", + "removal_type": "removal", + "link": "https://github.com/FutureTense/keymaster" + }, + { + "repository": "custom-components/uilogs", + "reason": "Deprecated", + "removal_type": "remove", + "link": "https://github.com/custom-components/uilogs/issues/17" + }, + { + "repository": "custom-components/sensor.rpi_power", + "reason": "Repo archived", + "removal_type": "removal", + "link": "https://github.com/custom-components/sensor.rpi_power" + }, + { + "repository": "badguy99/octocost", + "reason": "Archived", + "removal_type": "remove", + "link": "https://github.com/hacs/integration/issues/1809" + }, + { + "repository": "edenhaus/ha-prosenic", + "reason": "Archived", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/807" } -] \ No newline at end of file +] diff --git a/scripts/remove b/scripts/remove index 6cbee29..23aae3d 100644 --- a/scripts/remove +++ b/scripts/remove @@ -10,4 +10,4 @@ echo $reason echo $removal_type echo $link -python scripts/remove_repo.py "$repository" "$removal_type" "$reason" "$link" || exit 0 \ No newline at end of file +python3 scripts/remove_repo.py "$repository" "$removal_type" "$reason" "$link" || exit 0 diff --git a/theme b/theme index 8ac4534..b58bf51 100644 --- a/theme +++ b/theme @@ -61,4 +61,4 @@ "Poeschl/slate_red", "seangreen2/slate_theme", "wowgamr/animated-weather-card" -] +] \ No newline at end of file