From 39336d3ea367e5c50e88fa09165257290a07b150 Mon Sep 17 00:00:00 2001
From: Franck Nijhof <git@frenck.dev>
Date: Sun, 5 Apr 2020 17:27:16 +0200
Subject: [PATCH] Add prettier (in pre-commit and CI) (#33693)

* Add prettier (in pre-commit and CI)

* Make all file prettier

* Change order

* Add to Azure Pipelines

* Fix a YAML file prettier caught as invalid

* Remove flow mapping using curly braces from all YAML service files
---
 .pre-commit-config.yaml                       |   4 +
 .prettierignore                               |   5 +
 azure-pipelines-ci.yml                        |   4 +
 homeassistant/components/abode/strings.json   |   2 +-
 homeassistant/components/adguard/strings.json |  58 ++++-----
 homeassistant/components/ads/services.yaml    |   4 +-
 .../components/aftership/services.yaml        |  10 +-
 .../alarm_control_panel/services.yaml         |  12 +-
 .../alarm_control_panel/strings.json          |  46 +++----
 .../components/alarmdecoder/manifest.json     |  10 +-
 .../components/alarmdecoder/services.yaml     |   4 +-
 homeassistant/components/alert/services.yaml  |  12 +-
 .../components/ambiclimate/strings.json       |   2 +-
 .../components/amcrest/services.yaml          |  26 ++--
 .../components/androidtv/services.yaml        |  16 +--
 .../components/apple_tv/services.yaml         |   7 +-
 .../components/arcam_fmj/strings.json         |   6 +-
 homeassistant/components/august/manifest.json |  12 +-
 homeassistant/components/august/strings.json  |  58 ++++-----
 homeassistant/components/auth/strings.json    |   2 +-
 .../components/binary_sensor/strings.json     |   1 -
 .../components/blackbird/services.yaml        |   5 +-
 .../components/broadlink/services.yaml        |  11 +-
 .../components/calendar/services.yaml         |   1 -
 homeassistant/components/camera/services.yaml |  23 ++--
 .../components/cert_expiry/strings.json       |  40 +++---
 .../components/channels/services.yaml         |   6 +-
 .../components/climate/services.yaml          |  22 ++--
 .../components/counter/services.yaml          |   8 +-
 homeassistant/components/cover/services.yaml  |  20 +--
 homeassistant/components/daikin/strings.json  |  32 ++---
 homeassistant/components/deconz/manifest.json |   8 +-
 homeassistant/components/deconz/services.yaml |   6 +-
 homeassistant/components/deconz/strings.json  |   2 +-
 .../components/denonavr/services.yaml         |   6 +-
 .../components/device_tracker/services.yaml   |  14 +--
 homeassistant/components/doods/manifest.json  |   5 +-
 .../components/doorbird/manifest.json         |  13 +-
 .../components/doorbird/strings.json          |  66 +++++-----
 .../components/duckdns/services.yaml          |   2 +-
 .../components/dynalite/manifest.json         |  12 +-
 homeassistant/components/ebusd/strings.json   |   2 +-
 homeassistant/components/ecobee/services.yaml |   4 +-
 homeassistant/components/ecobee/strings.json  |  40 +++---
 homeassistant/components/edl21/manifest.json  |   8 +-
 .../components/eight_sleep/services.yaml      |  12 +-
 homeassistant/components/elkm1/manifest.json  |   8 +-
 homeassistant/components/elkm1/services.yaml  |   8 +-
 homeassistant/components/elkm1/strings.json   |   2 +-
 .../components/emulated_roku/strings.json     |  38 +++---
 .../components/envisalink/services.yaml       |   6 +-
 homeassistant/components/epson/services.yaml  |   4 +-
 homeassistant/components/esphome/strings.json |  62 ++++-----
 .../components/evohome/services.yaml          |  26 ++--
 homeassistant/components/ezviz/manifest.json  |   2 +-
 .../components/facebox/services.yaml          |   6 +-
 homeassistant/components/foscam/services.yaml |   4 +-
 homeassistant/components/freebox/strings.json |  42 +++----
 .../components/frontend/manifest.json         |   8 +-
 .../components/frontend/services.yaml         |   2 +-
 homeassistant/components/gdacs/manifest.json  |   8 +-
 .../components/geniushub/services.yaml        |   9 +-
 .../components/geofency/strings.json          |   2 +-
 homeassistant/components/glances/strings.json |  64 +++++-----
 .../components/gpslogger/strings.json         |   2 +-
 homeassistant/components/griddy/strings.json  |  36 +++---
 .../components/hangouts/strings.json          |  52 ++++----
 .../components/harmony/manifest.json          |   2 +-
 .../components/hdmi_cec/services.yaml         |   3 +-
 homeassistant/components/heos/strings.json    |  36 +++---
 .../homekit_controller/strings.json           |  72 +++++------
 .../components/homematic/services.yaml        |   5 +-
 homeassistant/components/html5/services.yaml  |   2 +-
 .../components/huawei_lte/strings.json        |  76 +++++------
 homeassistant/components/hue/strings.json     |   2 +-
 homeassistant/components/icloud/services.yaml |  23 ++--
 homeassistant/components/icloud/strings.json  |  72 +++++------
 homeassistant/components/ifttt/services.yaml  |  12 +-
 homeassistant/components/ihc/manifest.json    |   5 +-
 .../components/image_processing/services.yaml |   2 +-
 .../components/input_boolean/services.yaml    |  13 +-
 .../components/input_select/services.yaml     |  28 +++--
 .../components/input_text/services.yaml       |   9 +-
 homeassistant/components/ipma/strings.json    |  32 ++---
 homeassistant/components/kodi/services.yaml   |  12 +-
 .../components/konnected/manifest.json        |  13 +-
 homeassistant/components/linky/strings.json   |  38 +++---
 .../components/local_file/services.yaml       |   4 +-
 .../components/locative/strings.json          |   2 +-
 homeassistant/components/lock/services.yaml   |   6 +-
 .../components/luftdaten/strings.json         |   1 -
 .../components/lutron_caseta/strings.json     |   8 +-
 .../components/marytts/manifest.json          |   4 +-
 .../components/media_player/services.yaml     |  46 +++----
 homeassistant/components/met/strings.json     |  32 ++---
 .../components/meteo_france/strings.json      |  26 ++--
 .../components/microsoft_face/services.yaml   |  40 ++++--
 .../components/mikrotik/manifest.json         |   8 +-
 .../components/mikrotik/strings.json          |  64 +++++-----
 .../components/minecraft_server/strings.json  |  40 +++---
 homeassistant/components/modbus/services.yaml |  32 +++--
 .../components/monoprice/services.yaml        |   4 +-
 .../components/monoprice/strings.json         |   2 +-
 homeassistant/components/myq/manifest.json    |   8 +-
 homeassistant/components/neato/strings.json   |  48 +++----
 homeassistant/components/nest/strings.json    |   2 +-
 .../components/netatmo/manifest.json          |  23 +---
 homeassistant/components/netatmo/strings.json |   2 +-
 homeassistant/components/nexia/manifest.json  |   8 +-
 homeassistant/components/nexia/strings.json   |   2 +-
 .../components/nextcloud/manifest.json        |   8 +-
 .../components/nissan_leaf/services.yaml      |   1 -
 homeassistant/components/notify/services.yaml |   6 +-
 homeassistant/components/nuheat/manifest.json |  12 +-
 homeassistant/components/nuheat/strings.json  |  44 +++----
 homeassistant/components/nuki/services.yaml   |   3 +-
 homeassistant/components/nut/manifest.json    |   4 +-
 homeassistant/components/nut/strings.json     |   3 +-
 homeassistant/components/opencv/manifest.json |   5 +-
 .../components/openerz/manifest.json          |  10 +-
 .../components/opentherm_gw/services.yaml     |  40 +++---
 .../components/opentherm_gw/strings.json      |   4 +-
 .../components/opnsense/manifest.json         |   4 +-
 .../components/pilight/services.yaml          |   4 +-
 homeassistant/components/plaato/strings.json  |   2 +-
 homeassistant/components/plex/strings.json    |  76 +++++------
 homeassistant/components/proxy/manifest.json  |   4 +-
 homeassistant/components/ps4/services.yaml    |   4 +-
 homeassistant/components/qrcode/manifest.json |   5 +-
 homeassistant/components/rachio/manifest.json |  12 +-
 homeassistant/components/rachio/strings.json  |   2 +-
 .../components/rainbird/services.yaml         |   2 +-
 .../components/rainforest_eagle/manifest.json |   8 +-
 homeassistant/components/remote/services.yaml |  30 ++---
 homeassistant/components/rflink/services.yaml |   8 +-
 homeassistant/components/roomba/manifest.json |   8 +-
 homeassistant/components/salt/manifest.json   |  10 +-
 .../components/samsungtv/manifest.json        |   4 +-
 .../components/samsungtv/strings.json         |   4 +-
 homeassistant/components/script/services.yaml |   6 +-
 homeassistant/components/sense/manifest.json  |   8 +-
 .../components/sensibo/services.yaml          |   4 +-
 .../components/seven_segments/manifest.json   |   4 +-
 .../components/shopping_list/services.yaml    |  11 +-
 .../components/shopping_list/strings.json     |  20 +--
 .../components/sighthound/manifest.json       |  15 +--
 .../components/smartthings/strings.json       |  18 +--
 homeassistant/components/smhi/strings.json    |  32 ++---
 .../components/snapcast/services.yaml         |  10 +-
 .../components/solaredge/strings.json         |  34 ++---
 homeassistant/components/soma/strings.json    |  44 +++----
 .../components/songpal/services.yaml          |   6 +-
 homeassistant/components/sonos/services.yaml  |  30 ++---
 .../components/soundtouch/services.yaml       |  14 +--
 .../components/squeezebox/services.yaml       |   4 +-
 .../components/starline/strings.json          |  76 +++++------
 homeassistant/components/switch/services.yaml |   6 +-
 .../components/switcher_kis/services.yaml     |   4 +-
 homeassistant/components/tado/manifest.json   |   8 +-
 .../components/tankerkoenig/manifest.json     |   4 +-
 .../components/telegram_bot/services.yaml     |  64 +++++-----
 .../components/tellduslive/strings.json       |  44 +++----
 homeassistant/components/tesla/manifest.json  |   9 +-
 homeassistant/components/tesla/strings.json   |   2 +-
 homeassistant/components/tmb/manifest.json    |   8 +-
 .../components/todoist/services.yaml          |   1 -
 homeassistant/components/toon/strings.json    |   2 +-
 .../components/transmission/strings.json      |  60 ++++-----
 homeassistant/components/tts/services.yaml    |   8 +-
 .../components/twentemilieu/strings.json      |  38 +++---
 homeassistant/components/unifi/manifest.json  |   8 +-
 homeassistant/components/unifi/strings.json   | 118 +++++++++---------
 homeassistant/components/upnp/strings.json    |  52 ++++----
 homeassistant/components/vacuum/services.yaml |  26 ++--
 homeassistant/components/vera/manifest.json   |   4 +-
 .../components/verisure/services.yaml         |   5 +-
 homeassistant/components/vesync/strings.json  |  34 ++---
 homeassistant/components/vizio/strings.json   |  98 +++++++--------
 .../components/wake_on_lan/services.yaml      |   9 +-
 .../components/water_heater/services.yaml     |   6 +-
 homeassistant/components/wemo/services.yaml   |   4 +-
 .../components/wunderlist/services.yaml       |   4 +-
 .../components/xiaomi_aqara/services.yaml     |  37 ++++--
 .../components/yeelight/services.yaml         |  24 ++--
 homeassistant/components/zha/services.yaml    |   4 +-
 homeassistant/components/zwave/strings.json   |  38 +++---
 script/gen_requirements_all.py                |   2 +-
 187 files changed, 1642 insertions(+), 1681 deletions(-)
 create mode 100644 .prettierignore

diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 23827ae870d..a39b2659914 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -55,6 +55,10 @@ repos:
     rev: v1.21.0
     hooks:
       - id: yamllint
+  - repo: https://github.com/prettier/prettier
+    rev: 2.0.2
+    hooks:
+      - id: prettier
   - repo: local
     hooks:
       # Run mypy through our wrapper script in order to get the possible
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 00000000000..cf629378161
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,5 @@
+*.md
+azure-*.yml
+docs/source/_templates/*
+homeassistant/components/*/.translations/*.json
+tests/fixtures/*
diff --git a/azure-pipelines-ci.yml b/azure-pipelines-ci.yml
index eedeefad073..2e9ec2b4e38 100644
--- a/azure-pipelines-ci.yml
+++ b/azure-pipelines-ci.yml
@@ -72,6 +72,10 @@ stages:
         . venv/bin/activate
         pre-commit run pyupgrade --all-files
       displayName: 'Run pyupgrade'
+    - script: |
+        . venv/bin/activate
+        pre-commit run prettier --all-files
+      displayName: 'Run prettier'
   - job: 'Validate'
     pool:
       vmImage: 'ubuntu-latest'
diff --git a/homeassistant/components/abode/strings.json b/homeassistant/components/abode/strings.json
index bf7e768f6e3..5c1385c6ecd 100644
--- a/homeassistant/components/abode/strings.json
+++ b/homeassistant/components/abode/strings.json
@@ -19,4 +19,4 @@
       "single_instance_allowed": "Only a single configuration of Abode is allowed."
     }
   }
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/adguard/strings.json b/homeassistant/components/adguard/strings.json
index d33ba2b397a..fb17a8ea471 100644
--- a/homeassistant/components/adguard/strings.json
+++ b/homeassistant/components/adguard/strings.json
@@ -1,32 +1,32 @@
 {
-    "config": {
-        "title": "AdGuard Home",
-        "step": {
-            "user": {
-                "title": "Link your AdGuard Home.",
-                "description": "Set up your AdGuard Home instance to allow monitoring and control.",
-                "data": {
-                    "host": "Host",
-                    "password": "Password",
-                    "port": "Port",
-                    "username": "Username",
-                    "ssl": "AdGuard Home uses a SSL certificate",
-                    "verify_ssl": "AdGuard Home uses a proper certificate"
-                }
-            },
-            "hassio_confirm": {
-                "title": "AdGuard Home via Hass.io add-on",
-                "description": "Do you want to configure Home Assistant to connect to the AdGuard Home provided by the Hass.io add-on: {addon}?"
-            }
-        },
-        "error": {
-            "connection_error": "Failed to connect."
-        },
-        "abort": {
-            "adguard_home_outdated": "This integration requires AdGuard Home {minimal_version} or higher, you have {current_version}.",
-            "adguard_home_addon_outdated": "This integration requires AdGuard Home {minimal_version} or higher, you have {current_version}. Please update your Hass.io AdGuard Home add-on.",
-            "existing_instance_updated": "Updated existing configuration.",
-            "single_instance_allowed": "Only a single configuration of AdGuard Home is allowed."
+  "config": {
+    "title": "AdGuard Home",
+    "step": {
+      "user": {
+        "title": "Link your AdGuard Home.",
+        "description": "Set up your AdGuard Home instance to allow monitoring and control.",
+        "data": {
+          "host": "Host",
+          "password": "Password",
+          "port": "Port",
+          "username": "Username",
+          "ssl": "AdGuard Home uses a SSL certificate",
+          "verify_ssl": "AdGuard Home uses a proper certificate"
         }
+      },
+      "hassio_confirm": {
+        "title": "AdGuard Home via Hass.io add-on",
+        "description": "Do you want to configure Home Assistant to connect to the AdGuard Home provided by the Hass.io add-on: {addon}?"
+      }
+    },
+    "error": {
+      "connection_error": "Failed to connect."
+    },
+    "abort": {
+      "adguard_home_outdated": "This integration requires AdGuard Home {minimal_version} or higher, you have {current_version}.",
+      "adguard_home_addon_outdated": "This integration requires AdGuard Home {minimal_version} or higher, you have {current_version}. Please update your Hass.io AdGuard Home add-on.",
+      "existing_instance_updated": "Updated existing configuration.",
+      "single_instance_allowed": "Only a single configuration of AdGuard Home is allowed."
     }
-}
\ No newline at end of file
+  }
+}
diff --git a/homeassistant/components/ads/services.yaml b/homeassistant/components/ads/services.yaml
index 81751e768f1..1e7b664b674 100644
--- a/homeassistant/components/ads/services.yaml
+++ b/homeassistant/components/ads/services.yaml
@@ -6,10 +6,10 @@ write_data_by_name:
   fields:
     adsvar:
       description: The name of the variable to write to.
-      example: '.global_var'
+      example: ".global_var"
     adstype:
       description: The data type of the variable to write to.
-      example: 'int'
+      example: "int"
     value:
       description: The value to write to the variable.
       example: 1
diff --git a/homeassistant/components/aftership/services.yaml b/homeassistant/components/aftership/services.yaml
index 157156c3252..5ad30d25d8b 100644
--- a/homeassistant/components/aftership/services.yaml
+++ b/homeassistant/components/aftership/services.yaml
@@ -5,20 +5,20 @@ add_tracking:
   fields:
     tracking_number:
       description: Tracking number for the new tracking
-      example: '123456789'
+      example: "123456789"
     title:
       description: A custom title for the new tracking
-      example: 'Laptop'
+      example: "Laptop"
     slug:
       description: Slug (carrier) of the new tracking
-      example: 'USPS'
+      example: "USPS"
 
 remove_tracking:
   description: Remove a tracking from Aftership.
   fields:
     tracking_number:
       description: Tracking number of the tracking to remove
-      example: '123456789'
+      example: "123456789"
     slug:
       description: Slug (carrier) of the tracking to remove
-      example: 'USPS'
+      example: "USPS"
diff --git a/homeassistant/components/alarm_control_panel/services.yaml b/homeassistant/components/alarm_control_panel/services.yaml
index b31cb718b3f..fa5c573a7f8 100644
--- a/homeassistant/components/alarm_control_panel/services.yaml
+++ b/homeassistant/components/alarm_control_panel/services.yaml
@@ -5,7 +5,7 @@ alarm_disarm:
   fields:
     entity_id:
       description: Name of alarm control panel to disarm.
-      example: 'alarm_control_panel.downstairs'
+      example: "alarm_control_panel.downstairs"
     code:
       description: An optional code to disarm the alarm control panel with.
       example: 1234
@@ -15,7 +15,7 @@ alarm_arm_custom_bypass:
   fields:
     entity_id:
       description: Name of alarm control panel to arm custom bypass.
-      example: 'alarm_control_panel.downstairs'
+      example: "alarm_control_panel.downstairs"
     code:
       description: An optional code to arm custom bypass the alarm control panel with.
       example: 1234
@@ -25,7 +25,7 @@ alarm_arm_home:
   fields:
     entity_id:
       description: Name of alarm control panel to arm home.
-      example: 'alarm_control_panel.downstairs'
+      example: "alarm_control_panel.downstairs"
     code:
       description: An optional code to arm home the alarm control panel with.
       example: 1234
@@ -35,7 +35,7 @@ alarm_arm_away:
   fields:
     entity_id:
       description: Name of alarm control panel to arm away.
-      example: 'alarm_control_panel.downstairs'
+      example: "alarm_control_panel.downstairs"
     code:
       description: An optional code to arm away the alarm control panel with.
       example: 1234
@@ -45,7 +45,7 @@ alarm_arm_night:
   fields:
     entity_id:
       description: Name of alarm control panel to arm night.
-      example: 'alarm_control_panel.downstairs'
+      example: "alarm_control_panel.downstairs"
     code:
       description: An optional code to arm night the alarm control panel with.
       example: 1234
@@ -55,7 +55,7 @@ alarm_trigger:
   fields:
     entity_id:
       description: Name of alarm control panel to trigger.
-      example: 'alarm_control_panel.downstairs'
+      example: "alarm_control_panel.downstairs"
     code:
       description: An optional code to trigger the alarm control panel with.
       example: 1234
diff --git a/homeassistant/components/alarm_control_panel/strings.json b/homeassistant/components/alarm_control_panel/strings.json
index 4e14a8c2a3d..928c8d2a2e2 100644
--- a/homeassistant/components/alarm_control_panel/strings.json
+++ b/homeassistant/components/alarm_control_panel/strings.json
@@ -1,25 +1,25 @@
 {
-    "device_automation": {
-        "action_type": {
-            "arm_away": "Arm {entity_name} away",
-            "arm_home": "Arm {entity_name} home",
-            "arm_night": "Arm {entity_name} night",
-            "disarm": "Disarm {entity_name}",
-            "trigger": "Trigger {entity_name}"
-        },
-        "condition_type": {
-            "is_triggered": "{entity_name} is triggered",
-            "is_disarmed": "{entity_name} is disarmed",
-            "is_armed_home": "{entity_name} is armed home",
-            "is_armed_away": "{entity_name} is armed away",
-            "is_armed_night": "{entity_name} is armed night"
-        },
-        "trigger_type": {
-            "triggered": "{entity_name} triggered",
-            "disarmed": "{entity_name} disarmed",
-            "armed_home": "{entity_name} armed home",
-            "armed_away": "{entity_name} armed away",
-            "armed_night": "{entity_name} armed night"
-        }
+  "device_automation": {
+    "action_type": {
+      "arm_away": "Arm {entity_name} away",
+      "arm_home": "Arm {entity_name} home",
+      "arm_night": "Arm {entity_name} night",
+      "disarm": "Disarm {entity_name}",
+      "trigger": "Trigger {entity_name}"
+    },
+    "condition_type": {
+      "is_triggered": "{entity_name} is triggered",
+      "is_disarmed": "{entity_name} is disarmed",
+      "is_armed_home": "{entity_name} is armed home",
+      "is_armed_away": "{entity_name} is armed away",
+      "is_armed_night": "{entity_name} is armed night"
+    },
+    "trigger_type": {
+      "triggered": "{entity_name} triggered",
+      "disarmed": "{entity_name} disarmed",
+      "armed_home": "{entity_name} armed home",
+      "armed_away": "{entity_name} armed away",
+      "armed_night": "{entity_name} armed night"
     }
-}
\ No newline at end of file
+  }
+}
diff --git a/homeassistant/components/alarmdecoder/manifest.json b/homeassistant/components/alarmdecoder/manifest.json
index 06ab3ab1483..48c5cb824ad 100644
--- a/homeassistant/components/alarmdecoder/manifest.json
+++ b/homeassistant/components/alarmdecoder/manifest.json
@@ -1,7 +1,7 @@
 {
-    "domain": "alarmdecoder",
-    "name": "AlarmDecoder",
-    "documentation": "https://www.home-assistant.io/integrations/alarmdecoder",
-    "requirements": ["alarmdecoder==1.13.2"],
-    "codeowners": ["@ajschmidt8"]
+  "domain": "alarmdecoder",
+  "name": "AlarmDecoder",
+  "documentation": "https://www.home-assistant.io/integrations/alarmdecoder",
+  "requirements": ["alarmdecoder==1.13.2"],
+  "codeowners": ["@ajschmidt8"]
 }
diff --git a/homeassistant/components/alarmdecoder/services.yaml b/homeassistant/components/alarmdecoder/services.yaml
index 1193f90ff8e..bcf5a927713 100644
--- a/homeassistant/components/alarmdecoder/services.yaml
+++ b/homeassistant/components/alarmdecoder/services.yaml
@@ -2,8 +2,8 @@ alarm_keypress:
   description: Send custom keypresses to the alarm.
   fields:
     keypress:
-      description: 'String to send to the alarm panel.'
-      example: '*71'
+      description: "String to send to the alarm panel."
+      example: "*71"
 
 alarm_toggle_chime:
   description: Send the alarm the toggle chime command.
diff --git a/homeassistant/components/alert/services.yaml b/homeassistant/components/alert/services.yaml
index 1cdd1f02e7e..99530200546 100644
--- a/homeassistant/components/alert/services.yaml
+++ b/homeassistant/components/alert/services.yaml
@@ -1,12 +1,18 @@
 toggle:
   description: Toggle alert's notifications.
   fields:
-    entity_id: {description: Name of the alert to toggle., example: alert.garage_door_open}
+    entity_id:
+      description: Name of the alert to toggle.
+      example: alert.garage_door_open
 turn_off:
   description: Silence alert's notifications.
   fields:
-    entity_id: {description: Name of the alert to silence., example: alert.garage_door_open}
+    entity_id:
+      description: Name of the alert to silence.
+      example: alert.garage_door_open
 turn_on:
   description: Reset alert's notifications.
   fields:
-    entity_id: {description: Name of the alert to reset., example: alert.garage_door_open}
+    entity_id:
+      description: Name of the alert to reset.
+      example: alert.garage_door_open
diff --git a/homeassistant/components/ambiclimate/strings.json b/homeassistant/components/ambiclimate/strings.json
index 78386077af2..f38836c0414 100644
--- a/homeassistant/components/ambiclimate/strings.json
+++ b/homeassistant/components/ambiclimate/strings.json
@@ -20,4 +20,4 @@
       "access_token": "Unknown error generating an access token."
     }
   }
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/amcrest/services.yaml b/homeassistant/components/amcrest/services.yaml
index 820f965c533..10865586b6d 100644
--- a/homeassistant/components/amcrest/services.yaml
+++ b/homeassistant/components/amcrest/services.yaml
@@ -3,49 +3,49 @@ enable_recording:
   fields:
     entity_id:
       description: "Name(s) of the cameras, or 'all' for all cameras."
-      example: 'camera.house_front'
+      example: "camera.house_front"
 
 disable_recording:
   description: Disable continuous recording to camera storage.
   fields:
     entity_id:
       description: "Name(s) of the cameras, or 'all' for all cameras."
-      example: 'camera.house_front'
+      example: "camera.house_front"
 
 enable_audio:
   description: Enable audio stream.
   fields:
     entity_id:
       description: "Name(s) of the cameras, or 'all' for all cameras."
-      example: 'camera.house_front'
+      example: "camera.house_front"
 
 disable_audio:
   description: Disable audio stream.
   fields:
     entity_id:
       description: "Name(s) of the cameras, or 'all' for all cameras."
-      example: 'camera.house_front'
+      example: "camera.house_front"
 
 enable_motion_recording:
   description: Enable recording a clip to camera storage when motion is detected.
   fields:
     entity_id:
       description: "Name(s) of the cameras, or 'all' for all cameras."
-      example: 'camera.house_front'
+      example: "camera.house_front"
 
 disable_motion_recording:
   description: Disable recording a clip to camera storage when motion is detected.
   fields:
     entity_id:
       description: "Name(s) of the cameras, or 'all' for all cameras."
-      example: 'camera.house_front'
+      example: "camera.house_front"
 
 goto_preset:
   description: Move camera to PTZ preset.
   fields:
     entity_id:
       description: "Name(s) of the cameras, or 'all' for all cameras."
-      example: 'camera.house_front'
+      example: "camera.house_front"
     preset:
       description: Preset number, starting from 1.
       example: 1
@@ -55,7 +55,7 @@ set_color_bw:
   fields:
     entity_id:
       description: "Name(s) of the cameras, or 'all' for all cameras."
-      example: 'camera.house_front'
+      example: "camera.house_front"
     color_bw:
       description: Color mode, one of 'auto', 'color' or 'bw'.
       example: auto
@@ -65,24 +65,24 @@ start_tour:
   fields:
     entity_id:
       description: "Name(s) of the cameras, or 'all' for all cameras."
-      example: 'camera.house_front'
+      example: "camera.house_front"
 
 stop_tour:
   description: Stop camera's PTZ tour function.
   fields:
     entity_id:
       description: "Name(s) of the cameras, or 'all' for all cameras."
-      example: 'camera.house_front'
+      example: "camera.house_front"
 
 ptz_control:
   description: Move (Pan/Tilt) and/or Zoom a PTZ camera
   fields:
     entity_id:
       description: "Name of the camera, or 'all' for all cameras."
-      example: 'camera.house_front'
+      example: "camera.house_front"
     movement:
       description: "up, down, right, left, right_up, right_down, left_up, left_down, zoom_in, zoom_out"
-      example: 'right'
+      example: "right"
     travel_time:
       description: "(optional) Travel time in fractional seconds: from 0 to 1.  Default: .2"
-      example: '.5'
+      example: ".5"
diff --git a/homeassistant/components/androidtv/services.yaml b/homeassistant/components/androidtv/services.yaml
index 96d70ef4998..9de4f928b38 100644
--- a/homeassistant/components/androidtv/services.yaml
+++ b/homeassistant/components/androidtv/services.yaml
@@ -5,31 +5,31 @@ adb_command:
   fields:
     entity_id:
       description: Name(s) of Android TV / Fire TV entities.
-      example: 'media_player.android_tv_living_room'
+      example: "media_player.android_tv_living_room"
     command:
       description: Either a key command or an ADB shell command.
-      example: 'HOME'
+      example: "HOME"
 download:
   description: Download a file from your Android TV / Fire TV device to your Home Assistant instance.
   fields:
     entity_id:
       description: Name of Android TV / Fire TV entity.
-      example: 'media_player.android_tv_living_room'
+      example: "media_player.android_tv_living_room"
     device_path:
       description: The filepath on the Android TV / Fire TV device.
-      example: '/storage/emulated/0/Download/example.txt'
+      example: "/storage/emulated/0/Download/example.txt"
     local_path:
       description: The filepath on your Home Assistant instance.
-      example: '/config/example.txt'
+      example: "/config/example.txt"
 upload:
   description: Upload a file from your Home Assistant instance to an Android TV / Fire TV device.
   fields:
     entity_id:
       description: Name(s) of Android TV / Fire TV entities.
-      example: 'media_player.android_tv_living_room'
+      example: "media_player.android_tv_living_room"
     device_path:
       description: The filepath on the Android TV / Fire TV device.
-      example: '/storage/emulated/0/Download/example.txt'
+      example: "/storage/emulated/0/Download/example.txt"
     local_path:
       description: The filepath on your Home Assistant instance.
-      example: '/config/example.txt'
+      example: "/config/example.txt"
diff --git a/homeassistant/components/apple_tv/services.yaml b/homeassistant/components/apple_tv/services.yaml
index 01e26a5630b..af1e052fa33 100644
--- a/homeassistant/components/apple_tv/services.yaml
+++ b/homeassistant/components/apple_tv/services.yaml
@@ -1,5 +1,8 @@
 apple_tv_authenticate:
   description: Start AirPlay device authentication.
   fields:
-    entity_id: {description: Name(s) of entities to authenticate with., example: media_player.apple_tv}
-apple_tv_scan: {description: Scan for Apple TV devices.}
+    entity_id:
+      description: Name(s) of entities to authenticate with.
+      example: media_player.apple_tv
+apple_tv_scan:
+  description: Scan for Apple TV devices.
diff --git a/homeassistant/components/arcam_fmj/strings.json b/homeassistant/components/arcam_fmj/strings.json
index b0006dbb5ae..85413da8f80 100644
--- a/homeassistant/components/arcam_fmj/strings.json
+++ b/homeassistant/components/arcam_fmj/strings.json
@@ -1,5 +1,5 @@
 {
-    "config": {
-        "title": "Arcam FMJ"
-    }
+  "config": {
+    "title": "Arcam FMJ"
+  }
 }
diff --git a/homeassistant/components/august/manifest.json b/homeassistant/components/august/manifest.json
index f1085b81554..c2c383468f6 100644
--- a/homeassistant/components/august/manifest.json
+++ b/homeassistant/components/august/manifest.json
@@ -2,14 +2,8 @@
   "domain": "august",
   "name": "August",
   "documentation": "https://www.home-assistant.io/integrations/august",
-  "requirements": [
-    "py-august==0.25.0"
-  ],
-  "dependencies": [
-    "configurator"
-  ],
-  "codeowners": [
-    "@bdraco"
-  ],
+  "requirements": ["py-august==0.25.0"],
+  "dependencies": ["configurator"],
+  "codeowners": ["@bdraco"],
   "config_flow": true
 }
diff --git a/homeassistant/components/august/strings.json b/homeassistant/components/august/strings.json
index 1695d33cd63..da8c4918452 100644
--- a/homeassistant/components/august/strings.json
+++ b/homeassistant/components/august/strings.json
@@ -1,32 +1,32 @@
 {
-   "config" : {
-      "error" : {
-         "unknown" : "Unexpected error",
-         "cannot_connect" : "Failed to connect, please try again",
-         "invalid_auth" : "Invalid authentication"
+  "config": {
+    "error": {
+      "unknown": "Unexpected error",
+      "cannot_connect": "Failed to connect, please try again",
+      "invalid_auth": "Invalid authentication"
+    },
+    "abort": {
+      "already_configured": "Account is already configured"
+    },
+    "step": {
+      "validation": {
+        "title": "Two factor authentication",
+        "data": {
+          "code": "Verification code"
+        },
+        "description": "Please check your {login_method} ({username}) and enter the verification code below"
       },
-      "abort" : {
-         "already_configured" : "Account is already configured"
-      },
-      "step" : {
-         "validation" : {
-            "title" : "Two factor authentication",
-            "data" : {
-               "code" : "Verification code"
-            },
-            "description" : "Please check your {login_method} ({username}) and enter the verification code below"
-         },
-         "user" : {
-            "description" : "If the Login Method is 'email', Username is the email address. If the Login Method is 'phone', Username is the phone number in the format '+NNNNNNNNN'.",
-            "data" : {
-               "timeout" : "Timeout (seconds)",
-               "password" : "Password",
-               "username" : "Username",
-               "login_method" : "Login Method"
-            },
-            "title" : "Setup an August account"
-         }
-      },
-      "title" : "August"
-   }
+      "user": {
+        "description": "If the Login Method is 'email', Username is the email address. If the Login Method is 'phone', Username is the phone number in the format '+NNNNNNNNN'.",
+        "data": {
+          "timeout": "Timeout (seconds)",
+          "password": "Password",
+          "username": "Username",
+          "login_method": "Login Method"
+        },
+        "title": "Setup an August account"
+      }
+    },
+    "title": "August"
+  }
 }
diff --git a/homeassistant/components/auth/strings.json b/homeassistant/components/auth/strings.json
index 57f5ed659b0..d386bb7a488 100644
--- a/homeassistant/components/auth/strings.json
+++ b/homeassistant/components/auth/strings.json
@@ -1,5 +1,5 @@
 {
-  "mfa_setup":{
+  "mfa_setup": {
     "totp": {
       "title": "TOTP",
       "step": {
diff --git a/homeassistant/components/binary_sensor/strings.json b/homeassistant/components/binary_sensor/strings.json
index e01af8d183e..f2b32f45304 100644
--- a/homeassistant/components/binary_sensor/strings.json
+++ b/homeassistant/components/binary_sensor/strings.json
@@ -87,7 +87,6 @@
       "not_opened": "{entity_name} closed",
       "turned_on": "{entity_name} turned on",
       "turned_off": "{entity_name} turned off"
-
     }
   }
 }
diff --git a/homeassistant/components/blackbird/services.yaml b/homeassistant/components/blackbird/services.yaml
index d541e21049d..a783dff241b 100644
--- a/homeassistant/components/blackbird/services.yaml
+++ b/homeassistant/components/blackbird/services.yaml
@@ -3,8 +3,7 @@ set_all_zones:
   fields:
     entity_id:
       description: Name of any blackbird zone.
-      example: 'media_player.zone_1'
+      example: "media_player.zone_1"
     source:
       description: Name of source to switch to.
-      example: 'Source 1'
-
+      example: "Source 1"
diff --git a/homeassistant/components/broadlink/services.yaml b/homeassistant/components/broadlink/services.yaml
index 2281cb1cc4d..f1b39976afc 100644
--- a/homeassistant/components/broadlink/services.yaml
+++ b/homeassistant/components/broadlink/services.yaml
@@ -1,9 +1,14 @@
 send:
   description: Send a raw packet to device.
   fields:
-    host: {description: IP address of device to send packet via. This must be an already configured device., example: "192.168.0.1"}
-    packet: {description: base64 encoded packet.}
+    host:
+      description: IP address of device to send packet via. This must be an already configured device.
+      example: "192.168.0.1"
+    packet:
+      description: base64 encoded packet.
 learn:
   description: Learn a IR or RF code from remote.
   fields:
-    host: {description: IP address of device to send packet via. This must be an already configured device., example: "192.168.0.1"}
+    host:
+      description: IP address of device to send packet via. This must be an already configured device.
+      example: "192.168.0.1"
diff --git a/homeassistant/components/calendar/services.yaml b/homeassistant/components/calendar/services.yaml
index d8a0575bced..8e2958f7370 100644
--- a/homeassistant/components/calendar/services.yaml
+++ b/homeassistant/components/calendar/services.yaml
@@ -1,2 +1 @@
 # Describes the format for available calendar services
-
diff --git a/homeassistant/components/camera/services.yaml b/homeassistant/components/camera/services.yaml
index 6196322e234..14f94976984 100644
--- a/homeassistant/components/camera/services.yaml
+++ b/homeassistant/components/camera/services.yaml
@@ -5,61 +5,61 @@ turn_off:
   fields:
     entity_id:
       description: Entity id.
-      example: 'camera.living_room'
+      example: "camera.living_room"
 
 turn_on:
   description: Turn on camera.
   fields:
     entity_id:
       description: Entity id.
-      example: 'camera.living_room'
+      example: "camera.living_room"
 
 enable_motion_detection:
   description: Enable the motion detection in a camera.
   fields:
     entity_id:
       description: Name(s) of entities to enable motion detection.
-      example: 'camera.living_room_camera'
+      example: "camera.living_room_camera"
 
 disable_motion_detection:
   description: Disable the motion detection in a camera.
   fields:
     entity_id:
       description: Name(s) of entities to disable motion detection.
-      example: 'camera.living_room_camera'
+      example: "camera.living_room_camera"
 
 snapshot:
   description: Take a snapshot from a camera.
   fields:
     entity_id:
       description: Name(s) of entities to create snapshots from.
-      example: 'camera.living_room_camera'
+      example: "camera.living_room_camera"
     filename:
       description: Template of a Filename. Variable is entity_id.
-      example: '/tmp/snapshot_{{ entity_id }}'
+      example: "/tmp/snapshot_{{ entity_id }}"
 
 play_stream:
   description: Play camera stream on supported media player.
   fields:
     entity_id:
       description: Name(s) of entities to stream from.
-      example: 'camera.living_room_camera'
+      example: "camera.living_room_camera"
     media_player:
       description: Name(s) of media player to stream to.
-      example: 'media_player.living_room_tv'
+      example: "media_player.living_room_tv"
     format:
       description: (Optional) Stream format supported by media player.
-      example: 'hls'
+      example: "hls"
 
 record:
   description: Record live camera feed.
   fields:
     entity_id:
       description: Name of entities to record.
-      example: 'camera.living_room_camera'
+      example: "camera.living_room_camera"
     filename:
       description: Template of a Filename. Variable is entity_id.  Must be mp4.
-      example: '/tmp/snapshot_{{ entity_id }}.mp4'
+      example: "/tmp/snapshot_{{ entity_id }}.mp4"
     duration:
       description: (Optional) Target recording length (in seconds).
       default: 30
@@ -67,4 +67,3 @@ record:
     lookback:
       description: (Optional) Target lookback period (in seconds) to include in addition to duration.  Only available if there is currently an active HLS stream.
       example: 4
-
diff --git a/homeassistant/components/cert_expiry/strings.json b/homeassistant/components/cert_expiry/strings.json
index 4d4982a19af..e47613e17ca 100644
--- a/homeassistant/components/cert_expiry/strings.json
+++ b/homeassistant/components/cert_expiry/strings.json
@@ -1,24 +1,24 @@
 {
-    "config": {
-        "title": "Certificate Expiry",
-        "step": {
-            "user": {
-                "title": "Define the certificate to test",
-                "data": {
-                    "name": "The name of the certificate",
-                    "host": "The hostname of the certificate",
-                    "port": "The port of the certificate"
-                }
-            }
-        },
-        "error": {
-            "resolve_failed": "This host can not be resolved",
-            "connection_timeout": "Timeout when connecting to this host",
-            "connection_refused": "Connection refused when connecting to host"
-        },
-        "abort": {
-            "already_configured": "This host and port combination is already configured",
-            "import_failed": "Import from config failed"
+  "config": {
+    "title": "Certificate Expiry",
+    "step": {
+      "user": {
+        "title": "Define the certificate to test",
+        "data": {
+          "name": "The name of the certificate",
+          "host": "The hostname of the certificate",
+          "port": "The port of the certificate"
         }
+      }
+    },
+    "error": {
+      "resolve_failed": "This host can not be resolved",
+      "connection_timeout": "Timeout when connecting to this host",
+      "connection_refused": "Connection refused when connecting to host"
+    },
+    "abort": {
+      "already_configured": "This host and port combination is already configured",
+      "import_failed": "Import from config failed"
     }
+  }
 }
diff --git a/homeassistant/components/channels/services.yaml b/homeassistant/components/channels/services.yaml
index cbb1dd201a6..f06b2bfd905 100644
--- a/homeassistant/components/channels/services.yaml
+++ b/homeassistant/components/channels/services.yaml
@@ -3,21 +3,21 @@ seek_forward:
   fields:
     entity_id:
       description: Name of entity for the instance of Channels to seek in.
-      example: 'media_player.family_room_channels'
+      example: "media_player.family_room_channels"
 
 seek_backward:
   description: Seek backward by a set number of seconds.
   fields:
     entity_id:
       description: Name of entity for the instance of Channels to seek in.
-      example: 'media_player.family_room_channels'
+      example: "media_player.family_room_channels"
 
 seek_by:
   description: Seek by an inputted number of seconds.
   fields:
     entity_id:
       description: Name of entity for the instance of Channels to seek in.
-      example: 'media_player.family_room_channels'
+      example: "media_player.family_room_channels"
     seconds:
       description: Number of seconds to seek by. Negative numbers seek backwards.
       example: 120
diff --git a/homeassistant/components/climate/services.yaml b/homeassistant/components/climate/services.yaml
index 815df57f342..99964081277 100644
--- a/homeassistant/components/climate/services.yaml
+++ b/homeassistant/components/climate/services.yaml
@@ -5,7 +5,7 @@ set_aux_heat:
   fields:
     entity_id:
       description: Name(s) of entities to change.
-      example: 'climate.kitchen'
+      example: "climate.kitchen"
     aux_heat:
       description: New value of axillary heater.
       example: true
@@ -15,17 +15,17 @@ set_preset_mode:
   fields:
     entity_id:
       description: Name(s) of entities to change.
-      example: 'climate.kitchen'
+      example: "climate.kitchen"
     preset_mode:
       description: New value of preset mode
-      example: 'away'
+      example: "away"
 
 set_temperature:
   description: Set target temperature of climate device.
   fields:
     entity_id:
       description: Name(s) of entities to change.
-      example: 'climate.kitchen'
+      example: "climate.kitchen"
     temperature:
       description: New target temperature for HVAC.
       example: 25
@@ -37,14 +37,14 @@ set_temperature:
       example: 20
     hvac_mode:
       description: HVAC operation mode to set temperature to.
-      example: 'heat'
+      example: "heat"
 
 set_humidity:
   description: Set target humidity of climate device.
   fields:
     entity_id:
       description: Name(s) of entities to change.
-      example: 'climate.kitchen'
+      example: "climate.kitchen"
     humidity:
       description: New target humidity for climate device.
       example: 60
@@ -54,7 +54,7 @@ set_fan_mode:
   fields:
     entity_id:
       description: Name(s) of entities to change.
-      example: 'climate.nest'
+      example: "climate.nest"
     fan_mode:
       description: New value of fan mode.
       example: On Low
@@ -64,7 +64,7 @@ set_hvac_mode:
   fields:
     entity_id:
       description: Name(s) of entities to change.
-      example: 'climate.nest'
+      example: "climate.nest"
     hvac_mode:
       description: New value of operation mode.
       example: heat
@@ -74,7 +74,7 @@ set_swing_mode:
   fields:
     entity_id:
       description: Name(s) of entities to change.
-      example: 'climate.nest'
+      example: "climate.nest"
     swing_mode:
       description: New value of swing mode.
 
@@ -83,11 +83,11 @@ turn_on:
   fields:
     entity_id:
       description: Name(s) of entities to change.
-      example: 'climate.kitchen'
+      example: "climate.kitchen"
 
 turn_off:
   description: Turn climate device off.
   fields:
     entity_id:
       description: Name(s) of entities to change.
-      example: 'climate.kitchen'
+      example: "climate.kitchen"
diff --git a/homeassistant/components/counter/services.yaml b/homeassistant/components/counter/services.yaml
index 449ae6841ff..960424df0ca 100644
--- a/homeassistant/components/counter/services.yaml
+++ b/homeassistant/components/counter/services.yaml
@@ -5,25 +5,25 @@ decrement:
   fields:
     entity_id:
       description: Entity id of the counter to decrement.
-      example: 'counter.count0'
+      example: "counter.count0"
 increment:
   description: Increment a counter.
   fields:
     entity_id:
       description: Entity id of the counter to increment.
-      example: 'counter.count0'
+      example: "counter.count0"
 reset:
   description: Reset a counter.
   fields:
     entity_id:
       description: Entity id of the counter to reset.
-      example: 'counter.count0'
+      example: "counter.count0"
 configure:
   description: Change counter parameters
   fields:
     entity_id:
       description: Entity id of the counter to change.
-      example: 'counter.count0'
+      example: "counter.count0"
     minimum:
       description: New minimum value for the counter or None to remove minimum
       example: 0
diff --git a/homeassistant/components/cover/services.yaml b/homeassistant/components/cover/services.yaml
index 64534e40974..604955aa199 100644
--- a/homeassistant/components/cover/services.yaml
+++ b/homeassistant/components/cover/services.yaml
@@ -5,28 +5,28 @@ open_cover:
   fields:
     entity_id:
       description: Name(s) of cover(s) to open.
-      example: 'cover.living_room'
+      example: "cover.living_room"
 
 close_cover:
   description: Close all or specified cover.
   fields:
     entity_id:
       description: Name(s) of cover(s) to close.
-      example: 'cover.living_room'
+      example: "cover.living_room"
 
 toggle:
   description: Toggles a cover open/closed.
   fields:
     entity_id:
       description: Name(s) of cover(s) to toggle.
-      example: 'cover.garage_door'
+      example: "cover.garage_door"
 
 set_cover_position:
   description: Move to specific position all or specified cover.
   fields:
     entity_id:
       description: Name(s) of cover(s) to set cover position.
-      example: 'cover.living_room'
+      example: "cover.living_room"
     position:
       description: Position of the cover (0 to 100).
       example: 30
@@ -36,35 +36,35 @@ stop_cover:
   fields:
     entity_id:
       description: Name(s) of cover(s) to stop.
-      example: 'cover.living_room'
+      example: "cover.living_room"
 
 open_cover_tilt:
   description: Open all or specified cover tilt.
   fields:
     entity_id:
       description: Name(s) of cover(s) tilt to open.
-      example: 'cover.living_room_blinds'
+      example: "cover.living_room_blinds"
 
 close_cover_tilt:
   description: Close all or specified cover tilt.
   fields:
     entity_id:
       description: Name(s) of cover(s) to close tilt.
-      example: 'cover.living_room_blinds'
+      example: "cover.living_room_blinds"
 
 toggle_cover_tilt:
   description: Toggles a cover tilt open/closed.
   fields:
     entity_id:
       description: Name(s) of cover(s) to toggle tilt.
-      example: 'cover.living_room_blinds'
+      example: "cover.living_room_blinds"
 
 set_cover_tilt_position:
   description: Move to specific position all or specified cover tilt.
   fields:
     entity_id:
       description: Name(s) of cover(s) to set cover tilt position.
-      example: 'cover.living_room_blinds'
+      example: "cover.living_room_blinds"
     tilt_position:
       description: Tilt position of the cover (0 to 100).
       example: 30
@@ -74,4 +74,4 @@ stop_cover_tilt:
   fields:
     entity_id:
       description: Name(s) of cover(s) to stop.
-      example: 'cover.living_room_blinds'
+      example: "cover.living_room_blinds"
diff --git a/homeassistant/components/daikin/strings.json b/homeassistant/components/daikin/strings.json
index 4badc8b72d7..6c48024efc4 100644
--- a/homeassistant/components/daikin/strings.json
+++ b/homeassistant/components/daikin/strings.json
@@ -1,19 +1,19 @@
 {
-    "config": {
-        "title": "Daikin AC",
-        "step": {
-            "user": {
-                "title": "Configure Daikin AC",
-                "description": "Enter IP address of your Daikin AC.",
-                "data": {
-                    "host": "Host"
-                }
-            }
-        },
-        "abort": {
-            "device_timeout": "Timeout connecting to the device.",
-            "device_fail": "Unexpected error creating device.",
-            "already_configured": "Device is already configured"
+  "config": {
+    "title": "Daikin AC",
+    "step": {
+      "user": {
+        "title": "Configure Daikin AC",
+        "description": "Enter IP address of your Daikin AC.",
+        "data": {
+          "host": "Host"
         }
+      }
+    },
+    "abort": {
+      "device_timeout": "Timeout connecting to the device.",
+      "device_fail": "Unexpected error creating device.",
+      "already_configured": "Device is already configured"
     }
-}
\ No newline at end of file
+  }
+}
diff --git a/homeassistant/components/deconz/manifest.json b/homeassistant/components/deconz/manifest.json
index 28894682430..5ff4a303b0c 100644
--- a/homeassistant/components/deconz/manifest.json
+++ b/homeassistant/components/deconz/manifest.json
@@ -3,16 +3,12 @@
   "name": "deCONZ",
   "config_flow": true,
   "documentation": "https://www.home-assistant.io/integrations/deconz",
-  "requirements": [
-    "pydeconz==70"
-  ],
+  "requirements": ["pydeconz==70"],
   "ssdp": [
     {
       "manufacturer": "Royal Philips Electronics"
     }
   ],
-  "codeowners": [
-    "@kane610"
-  ],
+  "codeowners": ["@kane610"],
   "quality_scale": "platinum"
 }
diff --git a/homeassistant/components/deconz/services.yaml b/homeassistant/components/deconz/services.yaml
index bd5c2eb6a0c..d8bf3e4d994 100644
--- a/homeassistant/components/deconz/services.yaml
+++ b/homeassistant/components/deconz/services.yaml
@@ -3,7 +3,7 @@ configure:
   fields:
     entity:
       description: Entity id representing a specific device in deCONZ.
-      example: 'light.rgb_light'
+      example: "light.rgb_light"
     field:
       description: >-
         Field is a string representing a full path to deCONZ endpoint (when
@@ -15,11 +15,11 @@ configure:
       example: '{"on": true}'
     bridgeid:
       description: (Optional) Bridgeid is a string unique for each deCONZ hardware. It can be found as part of the integration name.
-      example: '00212EFFFF012345'
+      example: "00212EFFFF012345"
 
 device_refresh:
   description: Refresh device lists from deCONZ.
   fields:
     bridgeid:
       description: (Optional) Bridgeid is a string unique for each deCONZ hardware. It can be found as part of the integration name.
-      example: '00212EFFFF012345'
+      example: "00212EFFFF012345"
diff --git a/homeassistant/components/deconz/strings.json b/homeassistant/components/deconz/strings.json
index 52cd90e54a1..c4ceffd5373 100644
--- a/homeassistant/components/deconz/strings.json
+++ b/homeassistant/components/deconz/strings.json
@@ -95,4 +95,4 @@
       "side_6": "Side 6"
     }
   }
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/denonavr/services.yaml b/homeassistant/components/denonavr/services.yaml
index 889adc3af05..c9831a68aa5 100644
--- a/homeassistant/components/denonavr/services.yaml
+++ b/homeassistant/components/denonavr/services.yaml
@@ -1,11 +1,11 @@
 # Describes the format for available webostv services
 
 get_command:
-  description: 'Send a generic http get command.'
+  description: "Send a generic http get command."
   fields:
     entity_id:
       description: Name(s) of the denonavr entities where to run the API method.
-      example: 'media_player.living_room_receiver'
+      example: "media_player.living_room_receiver"
     command:
       description: Endpoint of the command, including associated parameters.
-      example: '/goform/formiPhoneAppDirect.xml?RCKSK0410370'
+      example: "/goform/formiPhoneAppDirect.xml?RCKSK0410370"
diff --git a/homeassistant/components/device_tracker/services.yaml b/homeassistant/components/device_tracker/services.yaml
index 51865034b00..63435d0ac9d 100644
--- a/homeassistant/components/device_tracker/services.yaml
+++ b/homeassistant/components/device_tracker/services.yaml
@@ -5,22 +5,22 @@ see:
   fields:
     mac:
       description: MAC address of device
-      example: 'FF:FF:FF:FF:FF:FF'
+      example: "FF:FF:FF:FF:FF:FF"
     dev_id:
       description: Id of device (find id in known_devices.yaml).
-      example: 'phonedave'
+      example: "phonedave"
     host_name:
       description: Hostname of device
-      example: 'Dave'
+      example: "Dave"
     location_name:
       description: Name of location where device is located (not_home is away).
-      example: 'home'
+      example: "home"
     gps:
       description: GPS coordinates where device is located (latitude, longitude).
-      example: '[51.509802, -0.086692]'
+      example: "[51.509802, -0.086692]"
     gps_accuracy:
       description: Accuracy of GPS coordinates.
-      example: '80'
+      example: "80"
     battery:
       description: Battery level of device.
-      example: '100'
+      example: "100"
diff --git a/homeassistant/components/doods/manifest.json b/homeassistant/components/doods/manifest.json
index 253174972b1..2e7c9efc7c6 100644
--- a/homeassistant/components/doods/manifest.json
+++ b/homeassistant/components/doods/manifest.json
@@ -2,9 +2,6 @@
   "domain": "doods",
   "name": "DOODS - Distributed Outside Object Detection Service",
   "documentation": "https://www.home-assistant.io/integrations/doods",
-  "requirements": [
-    "pydoods==1.0.2",
-    "pillow==7.0.0"
-  ],
+  "requirements": ["pydoods==1.0.2", "pillow==7.0.0"],
   "codeowners": []
 }
diff --git a/homeassistant/components/doorbird/manifest.json b/homeassistant/components/doorbird/manifest.json
index e0aef80ab61..6c1c75ff328 100644
--- a/homeassistant/components/doorbird/manifest.json
+++ b/homeassistant/components/doorbird/manifest.json
@@ -2,16 +2,9 @@
   "domain": "doorbird",
   "name": "DoorBird",
   "documentation": "https://www.home-assistant.io/integrations/doorbird",
-  "requirements": [
-    "doorbirdpy==2.0.8"
-  ],
-  "dependencies": [
-    "http",
-    "logbook"
-  ],
+  "requirements": ["doorbirdpy==2.0.8"],
+  "dependencies": ["http", "logbook"],
   "zeroconf": ["_axis-video._tcp.local."],
-  "codeowners": [
-    "@oblogic7", "@bdraco"
-  ],
+  "codeowners": ["@oblogic7", "@bdraco"],
   "config_flow": true
 }
diff --git a/homeassistant/components/doorbird/strings.json b/homeassistant/components/doorbird/strings.json
index e4fb72db91b..6bfda8c31dd 100644
--- a/homeassistant/components/doorbird/strings.json
+++ b/homeassistant/components/doorbird/strings.json
@@ -1,37 +1,37 @@
 {
-   "options" : {
-      "step" : {
-         "init" : {
-            "data" : {
-               "events" : "Comma separated list of events."
-            },
-            "description" : "Add an comma separated event name for each event you wish to track. After entering them here, use the DoorBird app to assign them to a specific event. See the documentation at https://www.home-assistant.io/integrations/doorbird/#events. Example: somebody_pressed_the_button, motion"
-         }
+  "options": {
+    "step": {
+      "init": {
+        "data": {
+          "events": "Comma separated list of events."
+        },
+        "description": "Add an comma separated event name for each event you wish to track. After entering them here, use the DoorBird app to assign them to a specific event. See the documentation at https://www.home-assistant.io/integrations/doorbird/#events. Example: somebody_pressed_the_button, motion"
       }
-   },
-   "config" : {
-      "step" : {
-         "user" : {
-            "title" : "Connect to the DoorBird",
-            "data" : {
-               "password" : "Password",
-               "host" : "Host (IP Address)",
-               "name" : "Device Name",
-               "username" : "Username"
-            }
-         }
-      },
-      "abort" : {
-         "already_configured" : "This DoorBird is already configured",
-         "link_local_address": "Link local addresses are not supported",
-         "not_doorbird_device": "This device is not a DoorBird"
-      },
-      "title" : "DoorBird",
-      "flow_title" : "DoorBird {name} ({host})",
-      "error" : {
-         "invalid_auth" : "Invalid authentication",
-         "unknown" : "Unexpected error",
-         "cannot_connect" : "Failed to connect, please try again"
+    }
+  },
+  "config": {
+    "step": {
+      "user": {
+        "title": "Connect to the DoorBird",
+        "data": {
+          "password": "Password",
+          "host": "Host (IP Address)",
+          "name": "Device Name",
+          "username": "Username"
+        }
       }
-   }
+    },
+    "abort": {
+      "already_configured": "This DoorBird is already configured",
+      "link_local_address": "Link local addresses are not supported",
+      "not_doorbird_device": "This device is not a DoorBird"
+    },
+    "title": "DoorBird",
+    "flow_title": "DoorBird {name} ({host})",
+    "error": {
+      "invalid_auth": "Invalid authentication",
+      "unknown": "Unexpected error",
+      "cannot_connect": "Failed to connect, please try again"
+    }
+  }
 }
diff --git a/homeassistant/components/duckdns/services.yaml b/homeassistant/components/duckdns/services.yaml
index 8c353a0b3cd..e0ba27390df 100644
--- a/homeassistant/components/duckdns/services.yaml
+++ b/homeassistant/components/duckdns/services.yaml
@@ -3,4 +3,4 @@ set_txt:
   fields:
     txt:
       description: Payload for the TXT record.
-      example: 'This domain name is reserved for use in documentation'
+      example: "This domain name is reserved for use in documentation"
diff --git a/homeassistant/components/dynalite/manifest.json b/homeassistant/components/dynalite/manifest.json
index 5c18f0421cd..39f72f57b06 100755
--- a/homeassistant/components/dynalite/manifest.json
+++ b/homeassistant/components/dynalite/manifest.json
@@ -1,8 +1,8 @@
 {
-    "domain": "dynalite",
-    "name": "Philips Dynalite",
-    "config_flow": true,
-    "documentation": "https://www.home-assistant.io/integrations/dynalite",
-    "codeowners": ["@ziv1234"],
-    "requirements": ["dynalite_devices==0.1.39"]
+  "domain": "dynalite",
+  "name": "Philips Dynalite",
+  "config_flow": true,
+  "documentation": "https://www.home-assistant.io/integrations/dynalite",
+  "codeowners": ["@ziv1234"],
+  "requirements": ["dynalite_devices==0.1.39"]
 }
diff --git a/homeassistant/components/ebusd/strings.json b/homeassistant/components/ebusd/strings.json
index ee62df8ddad..ed1827dd9c2 100644
--- a/homeassistant/components/ebusd/strings.json
+++ b/homeassistant/components/ebusd/strings.json
@@ -3,4 +3,4 @@
     "day": "Day",
     "night": "Night"
   }
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/ecobee/services.yaml b/homeassistant/components/ecobee/services.yaml
index 2155d3cf7d2..88137bd9530 100644
--- a/homeassistant/components/ecobee/services.yaml
+++ b/homeassistant/components/ecobee/services.yaml
@@ -55,7 +55,7 @@ resume_program:
   fields:
     entity_id:
       description: Name(s) of entities to change.
-      example: 'climate.kitchen'
+      example: "climate.kitchen"
     resume_all:
       description: Resume all events and return to the scheduled program. This default to false which removes only the top event.
       example: true
@@ -65,7 +65,7 @@ set_fan_min_on_time:
   fields:
     entity_id:
       description: Name(s) of entities to change.
-      example: 'climate.kitchen'
+      example: "climate.kitchen"
     fan_min_on_time:
       description: New value of fan min on time.
       example: 5
diff --git a/homeassistant/components/ecobee/strings.json b/homeassistant/components/ecobee/strings.json
index 9e7e9fed396..a6eaa488c60 100644
--- a/homeassistant/components/ecobee/strings.json
+++ b/homeassistant/components/ecobee/strings.json
@@ -1,23 +1,23 @@
 {
-    "config": {
-        "title": "ecobee",
-        "step": {
-            "user": {
-                "title": "ecobee API key",
-                "description": "Please enter the API key obtained from ecobee.com.",
-                "data": {"api_key": "API Key"}
-            },
-            "authorize": {
-                "title": "Authorize app on ecobee.com",
-                "description": "Please authorize this app at https://www.ecobee.com/consumerportal/index.html with pin code:\n\n{pin}\n\nThen, press Submit."
-            }
-        },
-        "error": {
-            "pin_request_failed": "Error requesting PIN from ecobee; please verify API key is correct.",
-            "token_request_failed": "Error requesting tokens from ecobee; please try again."
-        },
-        "abort": {
-            "one_instance_only": "This integration currently supports only one ecobee instance."
-        }
+  "config": {
+    "title": "ecobee",
+    "step": {
+      "user": {
+        "title": "ecobee API key",
+        "description": "Please enter the API key obtained from ecobee.com.",
+        "data": { "api_key": "API Key" }
+      },
+      "authorize": {
+        "title": "Authorize app on ecobee.com",
+        "description": "Please authorize this app at https://www.ecobee.com/consumerportal/index.html with pin code:\n\n{pin}\n\nThen, press Submit."
+      }
+    },
+    "error": {
+      "pin_request_failed": "Error requesting PIN from ecobee; please verify API key is correct.",
+      "token_request_failed": "Error requesting tokens from ecobee; please try again."
+    },
+    "abort": {
+      "one_instance_only": "This integration currently supports only one ecobee instance."
     }
+  }
 }
diff --git a/homeassistant/components/edl21/manifest.json b/homeassistant/components/edl21/manifest.json
index 6eaf933b82b..3e469e44601 100644
--- a/homeassistant/components/edl21/manifest.json
+++ b/homeassistant/components/edl21/manifest.json
@@ -2,10 +2,6 @@
   "domain": "edl21",
   "name": "EDL21",
   "documentation": "https://www.home-assistant.io/integrations/edl21",
-  "requirements": [
-    "pysml==0.0.2"
-  ],
-  "codeowners": [
-    "@mtdcr"
-  ]
+  "requirements": ["pysml==0.0.2"],
+  "codeowners": ["@mtdcr"]
 }
diff --git a/homeassistant/components/eight_sleep/services.yaml b/homeassistant/components/eight_sleep/services.yaml
index 49a3c67d604..05354bccc68 100644
--- a/homeassistant/components/eight_sleep/services.yaml
+++ b/homeassistant/components/eight_sleep/services.yaml
@@ -1,6 +1,12 @@
 heat_set:
   description: Set heating/cooling level for eight sleep.
   fields:
-    duration: {description: Duration to heat/cool at the target level in seconds., example: 3600}
-    entity_id: {description: Entity id of the bed state to adjust., example: sensor.eight_left_bed_state}
-    target: {description: Target cooling/heating level from -100 to 100., example: 35}
+    duration:
+      description: Duration to heat/cool at the target level in seconds.
+      example: 3600
+    entity_id:
+      description: Entity id of the bed state to adjust.
+      example: sensor.eight_left_bed_state
+    target:
+      description: Target cooling/heating level from -100 to 100.
+      example: 35
diff --git a/homeassistant/components/elkm1/manifest.json b/homeassistant/components/elkm1/manifest.json
index d1ce5d28c24..5a88792208a 100644
--- a/homeassistant/components/elkm1/manifest.json
+++ b/homeassistant/components/elkm1/manifest.json
@@ -2,11 +2,7 @@
   "domain": "elkm1",
   "name": "Elk-M1 Control",
   "documentation": "https://www.home-assistant.io/integrations/elkm1",
-  "requirements": [
-    "elkm1-lib==0.7.17"
-  ],
-  "codeowners": [
-    "@bdraco"
-  ],
+  "requirements": ["elkm1-lib==0.7.17"],
+  "codeowners": ["@bdraco"],
   "config_flow": true
 }
diff --git a/homeassistant/components/elkm1/services.yaml b/homeassistant/components/elkm1/services.yaml
index fbcbf7edc6d..beb4427d14c 100644
--- a/homeassistant/components/elkm1/services.yaml
+++ b/homeassistant/components/elkm1/services.yaml
@@ -3,7 +3,7 @@ alarm_arm_home_instant:
   fields:
     entity_id:
       description: Name of alarm control panel to arm.
-      example: 'alarm_control_panel.main'
+      example: "alarm_control_panel.main"
     code:
       description: An code to arm the alarm control panel.
       example: 1234
@@ -13,7 +13,7 @@ alarm_arm_night_instant:
   fields:
     entity_id:
       description: Name of alarm control panel to arm.
-      example: 'alarm_control_panel.main'
+      example: "alarm_control_panel.main"
     code:
       description: An code to arm the alarm control panel.
       example: 1234
@@ -23,7 +23,7 @@ alarm_arm_vacation:
   fields:
     entity_id:
       description: Name of alarm control panel to arm.
-      example: 'alarm_control_panel.main'
+      example: "alarm_control_panel.main"
     code:
       description: An code to arm the alarm control panel.
       example: 1234
@@ -33,7 +33,7 @@ alarm_display_message:
   fields:
     entity_id:
       description: Name of alarm control panel to display messages on.
-      example: 'alarm_control_panel.main'
+      example: "alarm_control_panel.main"
     clear:
       description: 0=clear message, 1=clear message with * key, 2=Display until timeout; default 2
       example: 1
diff --git a/homeassistant/components/elkm1/strings.json b/homeassistant/components/elkm1/strings.json
index a5246a004c3..36272a3de88 100644
--- a/homeassistant/components/elkm1/strings.json
+++ b/homeassistant/components/elkm1/strings.json
@@ -25,4 +25,4 @@
       "address_already_configured": "An ElkM1 with this address is already configured"
     }
   }
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/emulated_roku/strings.json b/homeassistant/components/emulated_roku/strings.json
index 376252966a3..987e4907911 100644
--- a/homeassistant/components/emulated_roku/strings.json
+++ b/homeassistant/components/emulated_roku/strings.json
@@ -1,21 +1,21 @@
 {
-    "config": {
-        "abort": {
-            "name_exists": "Name already exists"
+  "config": {
+    "abort": {
+      "name_exists": "Name already exists"
+    },
+    "step": {
+      "user": {
+        "data": {
+          "advertise_ip": "Advertise IP",
+          "advertise_port": "Advertise port",
+          "host_ip": "Host IP",
+          "listen_port": "Listen port",
+          "name": "Name",
+          "upnp_bind_multicast": "Bind multicast (True/False)"
         },
-        "step": {
-            "user": {
-                "data": {
-                    "advertise_ip": "Advertise IP",
-                    "advertise_port": "Advertise port",
-                    "host_ip": "Host IP",
-                    "listen_port": "Listen port",
-                    "name": "Name",
-                    "upnp_bind_multicast": "Bind multicast (True/False)"
-                },
-                "title": "Define server configuration"
-            }
-        },
-        "title": "EmulatedRoku"
-    }
-}
\ No newline at end of file
+        "title": "Define server configuration"
+      }
+    },
+    "title": "EmulatedRoku"
+  }
+}
diff --git a/homeassistant/components/envisalink/services.yaml b/homeassistant/components/envisalink/services.yaml
index 2a5f91791df..e9229ad838d 100644
--- a/homeassistant/components/envisalink/services.yaml
+++ b/homeassistant/components/envisalink/services.yaml
@@ -5,10 +5,10 @@ alarm_keypress:
   fields:
     entity_id:
       description: Name of the alarm control panel to trigger.
-      example: 'alarm_control_panel.downstairs'
+      example: "alarm_control_panel.downstairs"
     keypress:
-      description: 'String to send to the alarm panel (1-6 characters).'
-      example: '*71'
+      description: "String to send to the alarm panel (1-6 characters)."
+      example: "*71"
 
 invoke_custom_function:
   description: >
diff --git a/homeassistant/components/epson/services.yaml b/homeassistant/components/epson/services.yaml
index 6e9724c95f7..a463cd35512 100644
--- a/homeassistant/components/epson/services.yaml
+++ b/homeassistant/components/epson/services.yaml
@@ -3,7 +3,7 @@ select_cmode:
   fields:
     entity_id:
       description: Name of projector
-      example: 'media_player.epson_projector'
+      example: "media_player.epson_projector"
     cmode:
       description: Name of Cmode
-      example: 'cinema'
+      example: "cinema"
diff --git a/homeassistant/components/esphome/strings.json b/homeassistant/components/esphome/strings.json
index 3b662441e13..00d1ab1828e 100644
--- a/homeassistant/components/esphome/strings.json
+++ b/homeassistant/components/esphome/strings.json
@@ -1,35 +1,35 @@
 {
-    "config": {
-        "abort": {
-            "already_configured": "ESP is already configured"
+  "config": {
+    "abort": {
+      "already_configured": "ESP is already configured"
+    },
+    "error": {
+      "resolve_error": "Can't resolve address of the ESP. If this error persists, please set a static IP address: https://esphomelib.com/esphomeyaml/components/wifi.html#manual-ips",
+      "connection_error": "Can't connect to ESP. Please make sure your YAML file contains an 'api:' line.",
+      "invalid_password": "Invalid password!"
+    },
+    "step": {
+      "user": {
+        "data": {
+          "host": "Host",
+          "port": "Port"
         },
-        "error": {
-            "resolve_error": "Can't resolve address of the ESP. If this error persists, please set a static IP address: https://esphomelib.com/esphomeyaml/components/wifi.html#manual-ips",
-            "connection_error": "Can't connect to ESP. Please make sure your YAML file contains an 'api:' line.",
-            "invalid_password": "Invalid password!"
+        "description": "Please enter connection settings of your [ESPHome](https://esphomelib.com/) node.",
+        "title": "ESPHome"
+      },
+      "authenticate": {
+        "data": {
+          "password": "Password"
         },
-        "step": {
-            "user": {
-                "data": {
-                    "host": "Host",
-                    "port": "Port"
-                },
-                "description": "Please enter connection settings of your [ESPHome](https://esphomelib.com/) node.",
-                "title": "ESPHome"
-            },
-            "authenticate": {
-                "data": {
-                    "password": "Password"
-                },
-                "description": "Please enter the password you set in your configuration for {name}.",
-                "title": "Enter Password"
-            },
-            "discovery_confirm": {
-                "description": "Do you want to add the ESPHome node `{name}` to Home Assistant?",
-                "title": "Discovered ESPHome node"
-            }
-        },
-        "title": "ESPHome",
-        "flow_title": "ESPHome: {name}"
-    }
+        "description": "Please enter the password you set in your configuration for {name}.",
+        "title": "Enter Password"
+      },
+      "discovery_confirm": {
+        "description": "Do you want to add the ESPHome node `{name}` to Home Assistant?",
+        "title": "Discovered ESPHome node"
+      }
+    },
+    "title": "ESPHome",
+    "flow_title": "ESPHome: {name}"
+  }
 }
diff --git a/homeassistant/components/evohome/services.yaml b/homeassistant/components/evohome/services.yaml
index ebc859ed9e3..04f7a3ac2aa 100644
--- a/homeassistant/components/evohome/services.yaml
+++ b/homeassistant/components/evohome/services.yaml
@@ -3,16 +3,16 @@
 
 set_system_mode:
   description: >-
-      Set the system mode, either indefinitely, or for a specified period of time, after
-      which it will revert to Auto. Not all systems support all modes.
+    Set the system mode, either indefinitely, or for a specified period of time, after
+    which it will revert to Auto. Not all systems support all modes.
   fields:
     mode:
-      description: 'One of: Auto, AutoWithEco, Away, DayOff, HeatingOff, or Custom.'
+      description: "One of: Auto, AutoWithEco, Away, DayOff, HeatingOff, or Custom."
       example: Away
     period:
       description: >-
-          A period of time in days; used only with Away, DayOff, or Custom. The system
-          will revert to Auto at midnight (up to 99 days, today is day 1).
+        A period of time in days; used only with Away, DayOff, or Custom. The system
+        will revert to Auto at midnight (up to 99 days, today is day 1).
       example: '{"days": 28}'
     duration:
       description: The duration in hours; used only with AutoWithEco (up to 24 hours).
@@ -20,18 +20,18 @@ set_system_mode:
 
 reset_system:
   description: >-
-      Set the system to Auto mode and reset all the zones to follow their schedules.
-      Not all Evohome systems support this feature (i.e. AutoWithReset mode).
+    Set the system to Auto mode and reset all the zones to follow their schedules.
+    Not all Evohome systems support this feature (i.e. AutoWithReset mode).
 
 refresh_system:
   description: >-
-      Pull the latest data from the vendor's servers now, rather than waiting for the
-      next scheduled update.
+    Pull the latest data from the vendor's servers now, rather than waiting for the
+    next scheduled update.
 
 set_zone_override:
   description: >-
-      Override a zone's setpoint, either indefinitely, or for a specified period of
-      time, after which it will revert to following its schedule.
+    Override a zone's setpoint, either indefinitely, or for a specified period of
+    time, after which it will revert to following its schedule.
   fields:
     entity_id:
       description: The entity_id of the Evohome zone.
@@ -41,8 +41,8 @@ set_zone_override:
       example: 5.0
     duration:
       description: >-
-          The zone will revert to its schedule after this time. If 0 the change is until
-          the next scheduled setpoint.
+        The zone will revert to its schedule after this time. If 0 the change is until
+        the next scheduled setpoint.
       example: '{"minutes": 135}'
 
 clear_zone_override:
diff --git a/homeassistant/components/ezviz/manifest.json b/homeassistant/components/ezviz/manifest.json
index 6b02dd4dbf7..651fd77619c 100644
--- a/homeassistant/components/ezviz/manifest.json
+++ b/homeassistant/components/ezviz/manifest.json
@@ -4,4 +4,4 @@
   "documentation": "https://www.home-assistant.io/integrations/ezviz",
   "codeowners": ["@baqs"],
   "requirements": ["pyezviz==0.1.5"]
-} 
+}
diff --git a/homeassistant/components/facebox/services.yaml b/homeassistant/components/facebox/services.yaml
index c6b686efb85..caa2e7df2c6 100644
--- a/homeassistant/components/facebox/services.yaml
+++ b/homeassistant/components/facebox/services.yaml
@@ -3,10 +3,10 @@ teach_face:
   fields:
     entity_id:
       description: The facebox entity to teach.
-      example: 'image_processing.facebox'
+      example: "image_processing.facebox"
     name:
       description: The name of the face to teach.
-      example: 'my_name'
+      example: "my_name"
     file_path:
       description: The path to the image file.
-      example: '/images/my_image.jpg'
+      example: "/images/my_image.jpg"
diff --git a/homeassistant/components/foscam/services.yaml b/homeassistant/components/foscam/services.yaml
index 64e68dd5bc4..33ba82482f1 100644
--- a/homeassistant/components/foscam/services.yaml
+++ b/homeassistant/components/foscam/services.yaml
@@ -3,10 +3,10 @@ ptz:
   fields:
     entity_id:
       description: Name(s) of entities to move.
-      example: 'camera.living_room_camera'
+      example: "camera.living_room_camera"
     movement:
       description: "Direction of the movement. Allowed values: up, down, left, right, top_left, top_right, bottom_left, bottom_right."
-      example: 'up'
+      example: "up"
     travel_time:
       description: "(Optional) Travel time in seconds. Allowed values: float from 0 to 1. Default: 0.125"
       example: 0.125
diff --git a/homeassistant/components/freebox/strings.json b/homeassistant/components/freebox/strings.json
index 867a497d02f..9f402a7d1e6 100644
--- a/homeassistant/components/freebox/strings.json
+++ b/homeassistant/components/freebox/strings.json
@@ -1,26 +1,26 @@
 {
-    "config": {
+  "config": {
+    "title": "Freebox",
+    "step": {
+      "user": {
         "title": "Freebox",
-        "step": {
-            "user": {
-                "title": "Freebox",
-                "data": {
-                    "host": "Host",
-                    "port": "Port"
-                }
-            },
-            "link": {
-                "title": "Link Freebox router",
-                "description": "Click \"Submit\", then touch the right arrow on the router to register Freebox with Home Assistant.\n\n![Location of button on the router](/static/images/config_freebox.png)"
-            }
-        },
-        "error":{
-            "register_failed": "Failed to register, please try again",
-            "connection_failed": "Failed to connect, please try again",
-            "unknown": "Unknown error: please retry later"
-        },
-        "abort":{
-            "already_configured": "Host already configured"
+        "data": {
+          "host": "Host",
+          "port": "Port"
         }
+      },
+      "link": {
+        "title": "Link Freebox router",
+        "description": "Click \"Submit\", then touch the right arrow on the router to register Freebox with Home Assistant.\n\n![Location of button on the router](/static/images/config_freebox.png)"
+      }
+    },
+    "error": {
+      "register_failed": "Failed to register, please try again",
+      "connection_failed": "Failed to connect, please try again",
+      "unknown": "Unknown error: please retry later"
+    },
+    "abort": {
+      "already_configured": "Host already configured"
     }
+  }
 }
diff --git a/homeassistant/components/frontend/manifest.json b/homeassistant/components/frontend/manifest.json
index d9f114777ac..3059a0fa71c 100644
--- a/homeassistant/components/frontend/manifest.json
+++ b/homeassistant/components/frontend/manifest.json
@@ -2,9 +2,7 @@
   "domain": "frontend",
   "name": "Home Assistant Frontend",
   "documentation": "https://www.home-assistant.io/integrations/frontend",
-  "requirements": [
-    "home-assistant-frontend==20200403.0"
-  ],
+  "requirements": ["home-assistant-frontend==20200403.0"],
   "dependencies": [
     "api",
     "auth",
@@ -16,8 +14,6 @@
     "system_log",
     "websocket_api"
   ],
-  "codeowners": [
-    "@home-assistant/frontend"
-  ],
+  "codeowners": ["@home-assistant/frontend"],
   "quality_scale": "internal"
 }
diff --git a/homeassistant/components/frontend/services.yaml b/homeassistant/components/frontend/services.yaml
index dc1fb40be48..489164ce7bd 100644
--- a/homeassistant/components/frontend/services.yaml
+++ b/homeassistant/components/frontend/services.yaml
@@ -5,7 +5,7 @@ set_theme:
   fields:
     name:
       description: Name of a predefined theme or 'default'.
-      example: 'light'
+      example: "light"
 
 reload_themes:
   description: Reload themes from yaml configuration.
diff --git a/homeassistant/components/gdacs/manifest.json b/homeassistant/components/gdacs/manifest.json
index 3af46cc8067..630ed0a4a06 100644
--- a/homeassistant/components/gdacs/manifest.json
+++ b/homeassistant/components/gdacs/manifest.json
@@ -3,11 +3,7 @@
   "name": "Global Disaster Alert and Coordination System (GDACS)",
   "config_flow": true,
   "documentation": "https://www.home-assistant.io/integrations/gdacs",
-  "requirements": [
-    "aio_georss_gdacs==0.3"
-  ],
-  "codeowners": [
-    "@exxamalte"
-  ],
+  "requirements": ["aio_georss_gdacs==0.3"],
+  "codeowners": ["@exxamalte"],
   "quality_scale": "platinum"
 }
diff --git a/homeassistant/components/geniushub/services.yaml b/homeassistant/components/geniushub/services.yaml
index d7522ac2995..50cd8d7d01e 100644
--- a/homeassistant/components/geniushub/services.yaml
+++ b/homeassistant/components/geniushub/services.yaml
@@ -3,18 +3,18 @@
 
 set_zone_mode:
   description: >-
-      Set the zone to an operating mode.
+    Set the zone to an operating mode.
   fields:
     entity_id:
       description: The zone's entity_id.
       example: climate.kitchen
     mode:
-      description: 'One of: off, timer or footprint.'
+      description: "One of: off, timer or footprint."
       example: timer
 
 set_zone_override:
   description: >-
-      Override the zone's setpoint for a given duration.
+    Override the zone's setpoint for a given duration.
   fields:
     entity_id:
       description: The zone's entity_id.
@@ -24,6 +24,5 @@ set_zone_override:
       example: 19.2
     duration:
       description: >-
-          The duration of the override. Optional, default 1 hour, maximum 24 hours.
+        The duration of the override. Optional, default 1 hour, maximum 24 hours.
       example: '{"minutes": 135}'
-
diff --git a/homeassistant/components/geofency/strings.json b/homeassistant/components/geofency/strings.json
index e67af592c16..7951df50e5e 100644
--- a/homeassistant/components/geofency/strings.json
+++ b/homeassistant/components/geofency/strings.json
@@ -15,4 +15,4 @@
       "default": "To send events to Home Assistant, you will need to setup the webhook feature in Geofency.\n\nFill in the following info:\n\n- URL: `{webhook_url}`\n- Method: POST\n\nSee [the documentation]({docs_url}) for further details."
     }
   }
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/glances/strings.json b/homeassistant/components/glances/strings.json
index 1bd7275daef..3ec324f9cd6 100644
--- a/homeassistant/components/glances/strings.json
+++ b/homeassistant/components/glances/strings.json
@@ -1,37 +1,37 @@
 {
-    "config": {
-        "title": "Glances",
-        "step": {
-            "user": {
-                "title": "Setup Glances",
-                "data": {
-                    "name": "Name",
-                    "host": "Host",
-                    "username": "Username",
-                    "password": "Password",
-                    "port": "Port",
-                    "version": "Glances API Version (2 or 3)",
-                    "ssl": "Use SSL/TLS to connect to the Glances system",
-                    "verify_ssl": "Verify the certification of the system"
-                }
-            }
-        },
-        "error": {
-            "cannot_connect": "Unable to connect to host",
-            "wrong_version": "Version not supported (2 or 3 only)"
-        },
-        "abort": {
-            "already_configured": "Host is already configured."
+  "config": {
+    "title": "Glances",
+    "step": {
+      "user": {
+        "title": "Setup Glances",
+        "data": {
+          "name": "Name",
+          "host": "Host",
+          "username": "Username",
+          "password": "Password",
+          "port": "Port",
+          "version": "Glances API Version (2 or 3)",
+          "ssl": "Use SSL/TLS to connect to the Glances system",
+          "verify_ssl": "Verify the certification of the system"
         }
+      }
     },
-    "options": {
-        "step": {
-            "init": {
-                "description": "Configure options for Glances",
-                "data": {
-                    "scan_interval": "Update frequency"
-                }
-            }
+    "error": {
+      "cannot_connect": "Unable to connect to host",
+      "wrong_version": "Version not supported (2 or 3 only)"
+    },
+    "abort": {
+      "already_configured": "Host is already configured."
+    }
+  },
+  "options": {
+    "step": {
+      "init": {
+        "description": "Configure options for Glances",
+        "data": {
+          "scan_interval": "Update frequency"
         }
+      }
     }
-}
\ No newline at end of file
+  }
+}
diff --git a/homeassistant/components/gpslogger/strings.json b/homeassistant/components/gpslogger/strings.json
index d5641ef5db8..add0ad31cbb 100644
--- a/homeassistant/components/gpslogger/strings.json
+++ b/homeassistant/components/gpslogger/strings.json
@@ -15,4 +15,4 @@
       "default": "To send events to Home Assistant, you will need to setup the webhook feature in GPSLogger.\n\nFill in the following info:\n\n- URL: `{webhook_url}`\n- Method: POST\n\nSee [the documentation]({docs_url}) for further details."
     }
   }
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/griddy/strings.json b/homeassistant/components/griddy/strings.json
index bedd85e7508..ee4df700f79 100644
--- a/homeassistant/components/griddy/strings.json
+++ b/homeassistant/components/griddy/strings.json
@@ -1,21 +1,21 @@
 {
-   "config" : {
-      "error" : {
-         "cannot_connect" : "Failed to connect, please try again",
-         "unknown" : "Unexpected error"
-      },
-      "title" : "Griddy",
-      "step" : {
-         "user" : {
-            "description" : "Your Load Zone is in your Griddy account under “Account > Meter > Load Zone.”",
-            "data" : {
-               "loadzone" : "Load Zone (Settlement Point)"
-            },
-            "title" : "Setup your Griddy Load Zone"
-         }
-      },
-      "abort" : {
-         "already_configured" : "This Load Zone is already configured"
+  "config": {
+    "error": {
+      "cannot_connect": "Failed to connect, please try again",
+      "unknown": "Unexpected error"
+    },
+    "title": "Griddy",
+    "step": {
+      "user": {
+        "description": "Your Load Zone is in your Griddy account under “Account > Meter > Load Zone.”",
+        "data": {
+          "loadzone": "Load Zone (Settlement Point)"
+        },
+        "title": "Setup your Griddy Load Zone"
       }
-   }
+    },
+    "abort": {
+      "already_configured": "This Load Zone is already configured"
+    }
+  }
 }
diff --git a/homeassistant/components/hangouts/strings.json b/homeassistant/components/hangouts/strings.json
index 8c155784ebe..7bd67a7a2c8 100644
--- a/homeassistant/components/hangouts/strings.json
+++ b/homeassistant/components/hangouts/strings.json
@@ -1,30 +1,30 @@
 {
-    "config": {
-        "abort": {
-            "already_configured": "Google Hangouts is already configured",
-            "unknown": "Unknown error occurred."
+  "config": {
+    "abort": {
+      "already_configured": "Google Hangouts is already configured",
+      "unknown": "Unknown error occurred."
+    },
+    "error": {
+      "invalid_login": "Invalid Login, please try again.",
+      "invalid_2fa": "Invalid 2 Factor Authentication, please try again.",
+      "invalid_2fa_method": "Invalid 2FA Method (Verify on Phone)."
+    },
+    "step": {
+      "user": {
+        "data": {
+          "email": "E-Mail Address",
+          "password": "Password",
+          "authorization_code": "Authorization Code (required for manual authentication)"
         },
-        "error": {
-            "invalid_login": "Invalid Login, please try again.",
-            "invalid_2fa": "Invalid 2 Factor Authentication, please try again.",
-            "invalid_2fa_method": "Invalid 2FA Method (Verify on Phone)."
+        "title": "Google Hangouts Login"
+      },
+      "2fa": {
+        "data": {
+          "2fa": "2FA Pin"
         },
-        "step": {
-            "user": {
-                "data": {
-                    "email": "E-Mail Address",
-                    "password": "Password",
-                    "authorization_code":  "Authorization Code (required for manual authentication)"
-                },
-                "title": "Google Hangouts Login"
-            },
-            "2fa": {
-                "data": {
-                  "2fa": "2FA Pin"
-                },
-                "title": "2-Factor-Authentication"
-            }
-        },
-        "title": "Google Hangouts"
-    }
+        "title": "2-Factor-Authentication"
+      }
+    },
+    "title": "Google Hangouts"
+  }
 }
diff --git a/homeassistant/components/harmony/manifest.json b/homeassistant/components/harmony/manifest.json
index f3ed2328291..154fd211aa8 100644
--- a/homeassistant/components/harmony/manifest.json
+++ b/homeassistant/components/harmony/manifest.json
@@ -3,7 +3,7 @@
   "name": "Logitech Harmony Hub",
   "documentation": "https://www.home-assistant.io/integrations/harmony",
   "requirements": ["aioharmony==0.1.13"],
-  "codeowners": ["@ehendrix23","@bramkragten","@bdraco"],
+  "codeowners": ["@ehendrix23", "@bramkragten", "@bdraco"],
   "ssdp": [
     {
       "manufacturer": "Logitech",
diff --git a/homeassistant/components/hdmi_cec/services.yaml b/homeassistant/components/hdmi_cec/services.yaml
index 256b26c00c7..aa85ffb0214 100644
--- a/homeassistant/components/hdmi_cec/services.yaml
+++ b/homeassistant/components/hdmi_cec/services.yaml
@@ -1,4 +1,5 @@
-power_on: { description: Power on all devices which supports it. }
+power_on:
+  description: Power on all devices which supports it.
 select_device:
   description: Select HDMI device.
   fields:
diff --git a/homeassistant/components/heos/strings.json b/homeassistant/components/heos/strings.json
index 9a00ac6a4bd..28b404acdbd 100644
--- a/homeassistant/components/heos/strings.json
+++ b/homeassistant/components/heos/strings.json
@@ -1,21 +1,21 @@
 {
-    "config": {
-        "title": "HEOS",
-        "step": {
-            "user": {
-                "title": "Connect to Heos",
-                "description": "Please enter the host name or IP address of a Heos device (preferably one connected via wire to the network).",
-                "data": {
-                    "access_token": "Host",
-                    "host": "Host"
-                }
-            }
-        },
-        "error": {
-            "connection_failure": "Unable to connect to the specified host."
-        },
-        "abort": {
-            "already_setup": "You can only configure a single Heos connection as it will support all devices on the network."
+  "config": {
+    "title": "HEOS",
+    "step": {
+      "user": {
+        "title": "Connect to Heos",
+        "description": "Please enter the host name or IP address of a Heos device (preferably one connected via wire to the network).",
+        "data": {
+          "access_token": "Host",
+          "host": "Host"
         }
+      }
+    },
+    "error": {
+      "connection_failure": "Unable to connect to the specified host."
+    },
+    "abort": {
+      "already_setup": "You can only configure a single Heos connection as it will support all devices on the network."
     }
-}
\ No newline at end of file
+  }
+}
diff --git a/homeassistant/components/homekit_controller/strings.json b/homeassistant/components/homekit_controller/strings.json
index 80370717183..40295c74e0a 100644
--- a/homeassistant/components/homekit_controller/strings.json
+++ b/homeassistant/components/homekit_controller/strings.json
@@ -1,40 +1,40 @@
 {
-    "config": {
-        "title": "HomeKit Accessory",
-        "flow_title": "HomeKit Accessory: {name}",
-        "step": {
-            "user": {
-                "title": "Pair with HomeKit Accessory",
-                "description": "Select the device you want to pair with",
-                "data": {
-                    "device": "Device"
-                }
-            },
-            "pair": {
-                "title": "Pair with HomeKit Accessory",
-                "description": "Enter your HomeKit pairing code (in the format XXX-XX-XXX) to use this accessory",
-                "data": {
-                    "pairing_code": "Pairing Code"
-                }
-            }
-        },
-        "error": {
-            "unable_to_pair": "Unable to pair, please try again.",
-            "unknown_error": "Device reported an unknown error. Pairing failed.",
-            "authentication_error": "Incorrect HomeKit code. Please check it and try again.",
-            "max_peers_error": "Device refused to add pairing as it has no free pairing storage.",
-            "busy_error": "Device refused to add pairing as it is already pairing with another controller.",
-            "max_tries_error": "Device refused to add pairing as it has received more than 100 unsuccessful authentication attempts.",
-            "pairing_failed": "An unhandled error occurred while attempting to pair with this device. This may be a temporary failure or your device may not be supported currently."
-        },
-        "abort": {
-            "no_devices": "No unpaired devices could be found",
-            "already_paired": "This accessory is already paired to another device. Please reset the accessory and try again.",
-            "ignored_model": "HomeKit support for this model is blocked as a more feature complete native integration is available.",
-            "already_configured": "Accessory is already configured with this controller.",
-            "invalid_config_entry": "This device is showing as ready to pair but there is already a conflicting configuration entry for it in Home Assistant that must first be removed.",
-            "accessory_not_found_error": "Cannot add pairing as device can no longer be found.",
-            "already_in_progress": "Config flow for device is already in progress."
+  "config": {
+    "title": "HomeKit Accessory",
+    "flow_title": "HomeKit Accessory: {name}",
+    "step": {
+      "user": {
+        "title": "Pair with HomeKit Accessory",
+        "description": "Select the device you want to pair with",
+        "data": {
+          "device": "Device"
         }
+      },
+      "pair": {
+        "title": "Pair with HomeKit Accessory",
+        "description": "Enter your HomeKit pairing code (in the format XXX-XX-XXX) to use this accessory",
+        "data": {
+          "pairing_code": "Pairing Code"
+        }
+      }
+    },
+    "error": {
+      "unable_to_pair": "Unable to pair, please try again.",
+      "unknown_error": "Device reported an unknown error. Pairing failed.",
+      "authentication_error": "Incorrect HomeKit code. Please check it and try again.",
+      "max_peers_error": "Device refused to add pairing as it has no free pairing storage.",
+      "busy_error": "Device refused to add pairing as it is already pairing with another controller.",
+      "max_tries_error": "Device refused to add pairing as it has received more than 100 unsuccessful authentication attempts.",
+      "pairing_failed": "An unhandled error occurred while attempting to pair with this device. This may be a temporary failure or your device may not be supported currently."
+    },
+    "abort": {
+      "no_devices": "No unpaired devices could be found",
+      "already_paired": "This accessory is already paired to another device. Please reset the accessory and try again.",
+      "ignored_model": "HomeKit support for this model is blocked as a more feature complete native integration is available.",
+      "already_configured": "Accessory is already configured with this controller.",
+      "invalid_config_entry": "This device is showing as ready to pair but there is already a conflicting configuration entry for it in Home Assistant that must first be removed.",
+      "accessory_not_found_error": "Cannot add pairing as device can no longer be found.",
+      "already_in_progress": "Config flow for device is already in progress."
     }
+  }
 }
diff --git a/homeassistant/components/homematic/services.yaml b/homeassistant/components/homematic/services.yaml
index 044bcfa46ad..5d52f13f39e 100644
--- a/homeassistant/components/homematic/services.yaml
+++ b/homeassistant/components/homematic/services.yaml
@@ -21,10 +21,10 @@ set_variable_value:
   fields:
     entity_id:
       description: Name(s) of homematic central to set value.
-      example: 'homematic.ccu2'
+      example: "homematic.ccu2"
     name:
       description: Name of the variable to set.
-      example: 'testvariable'
+      example: "testvariable"
     value:
       description: New value
       example: 1
@@ -82,4 +82,3 @@ put_paramset:
     paramset:
       description: A paramset dictionary
       example: '{"WEEK_PROGRAM_POINTER": 1}'
-
diff --git a/homeassistant/components/html5/services.yaml b/homeassistant/components/html5/services.yaml
index 5fd068a64dc..f3df4341594 100644
--- a/homeassistant/components/html5/services.yaml
+++ b/homeassistant/components/html5/services.yaml
@@ -3,7 +3,7 @@ dismiss:
   fields:
     target:
       description: An array of targets. Optional.
-      example: ['my_phone', 'my_tablet']
+      example: ["my_phone", "my_tablet"]
     data:
       description: Extended information of notification. Supports tag. Optional.
       example: '{ "tag": "tagname" }'
diff --git a/homeassistant/components/huawei_lte/strings.json b/homeassistant/components/huawei_lte/strings.json
index c5f2b4a2a02..a23c2a9184f 100644
--- a/homeassistant/components/huawei_lte/strings.json
+++ b/homeassistant/components/huawei_lte/strings.json
@@ -1,43 +1,43 @@
 {
-    "config": {
-        "abort": {
-            "already_configured": "This device has already been configured",
-            "already_in_progress": "This device is already being configured",
-            "not_huawei_lte": "Not a Huawei LTE device"
-        },
-        "error": {
-            "connection_failed": "Connection failed",
-            "connection_timeout": "Connection timeout",
-            "incorrect_password": "Incorrect password",
-            "incorrect_username": "Incorrect username",
-            "incorrect_username_or_password": "Incorrect username or password",
-            "invalid_url": "Invalid URL",
-            "login_attempts_exceeded": "Maximum login attempts exceeded, please try again later",
-            "response_error": "Unknown error from device",
-            "unknown_connection_error": "Unknown error connecting to device"
-        },
-        "step": {
-            "user": {
-                "data": {
-                    "password": "Password",
-                    "url": "URL",
-                    "username": "User name"
-                },
-                "description": "Enter device access details. Specifying username and password is optional, but enables support for more integration features. On the other hand, use of an authorized connection may cause problems accessing the device web interface from outside Home Assistant while the integration is active, and the other way around.",
-                "title": "Configure Huawei LTE"
-            }
+  "config": {
+    "abort": {
+      "already_configured": "This device has already been configured",
+      "already_in_progress": "This device is already being configured",
+      "not_huawei_lte": "Not a Huawei LTE device"
+    },
+    "error": {
+      "connection_failed": "Connection failed",
+      "connection_timeout": "Connection timeout",
+      "incorrect_password": "Incorrect password",
+      "incorrect_username": "Incorrect username",
+      "incorrect_username_or_password": "Incorrect username or password",
+      "invalid_url": "Invalid URL",
+      "login_attempts_exceeded": "Maximum login attempts exceeded, please try again later",
+      "response_error": "Unknown error from device",
+      "unknown_connection_error": "Unknown error connecting to device"
+    },
+    "step": {
+      "user": {
+        "data": {
+          "password": "Password",
+          "url": "URL",
+          "username": "User name"
         },
-        "title": "Huawei LTE"
+        "description": "Enter device access details. Specifying username and password is optional, but enables support for more integration features. On the other hand, use of an authorized connection may cause problems accessing the device web interface from outside Home Assistant while the integration is active, and the other way around.",
+        "title": "Configure Huawei LTE"
+      }
     },
-    "options": {
-        "step": {
-            "init": {
-                "data": {
-                    "name": "Notification service name (change requires restart)",
-                    "recipient": "SMS notification recipients",
-                    "track_new_devices": "Track new devices"
-                }
-            }
+    "title": "Huawei LTE"
+  },
+  "options": {
+    "step": {
+      "init": {
+        "data": {
+          "name": "Notification service name (change requires restart)",
+          "recipient": "SMS notification recipients",
+          "track_new_devices": "Track new devices"
         }
+      }
     }
-}
\ No newline at end of file
+  }
+}
diff --git a/homeassistant/components/hue/strings.json b/homeassistant/components/hue/strings.json
index 0f70c49ff2e..9f23f056894 100644
--- a/homeassistant/components/hue/strings.json
+++ b/homeassistant/components/hue/strings.json
@@ -45,4 +45,4 @@
       "remote_button_short_release": "\"{subtype}\" button released"
     }
   }
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/icloud/services.yaml b/homeassistant/components/icloud/services.yaml
index ce239df7564..3013b04943d 100644
--- a/homeassistant/components/icloud/services.yaml
+++ b/homeassistant/components/icloud/services.yaml
@@ -3,47 +3,46 @@ update:
   fields:
     account:
       description: Your iCloud account username (email) or account name.
-      example: 'steve@apple.com'
+      example: "steve@apple.com"
 
 play_sound:
   description: Play sound on an Apple device.
   fields:
     account:
       description: (required) Your iCloud account username (email) or account name.
-      example: 'steve@apple.com'
+      example: "steve@apple.com"
     device_name:
       description: (required) The name of the Apple device to play a sound.
-      example: 'stevesiphone'
+      example: "stevesiphone"
 
 display_message:
   description: Display a message on an Apple device.
   fields:
     account:
       description: (required) Your iCloud account username (email) or account name.
-      example: 'steve@apple.com'
+      example: "steve@apple.com"
     device_name:
       description: (required) The name of the Apple device to display the message.
-      example: 'stevesiphone'
+      example: "stevesiphone"
     message:
       description: (required) The content of your message.
-      example: 'Hey Steve !'
+      example: "Hey Steve !"
     sound:
       description: To make a sound when displaying the message (boolean).
-      example: 'true'
+      example: "true"
 
 lost_device:
   description: Make an Apple device in lost state.
   fields:
     account:
       description: (required) Your iCloud account username (email) or account name.
-      example: 'steve@apple.com'
+      example: "steve@apple.com"
     device_name:
       description: (required) The name of the Apple device to set lost.
-      example: 'stevesiphone'
+      example: "stevesiphone"
     number:
       description: (required) The phone number to call in lost mode (must contain country code).
-      example: '+33450020100'
+      example: "+33450020100"
     message:
       description: (required) The message to display in lost mode.
-      example: 'Call me'
-
+      example: "Call me"
diff --git a/homeassistant/components/icloud/strings.json b/homeassistant/components/icloud/strings.json
index 6cea7dc1175..abf47e5744f 100644
--- a/homeassistant/components/icloud/strings.json
+++ b/homeassistant/components/icloud/strings.json
@@ -1,39 +1,39 @@
 {
-    "config": {
-        "title": "Apple iCloud",
-        "step": {
-            "user": {
-                "title": "iCloud credentials",
-                "description": "Enter your credentials",
-                "data": {
-                    "username": "Email",
-                    "password": "Password",
-                    "with_family": "With family"
-                }
-            },
-            "trusted_device": {
-                "title": "iCloud trusted device",
-                "description": "Select your trusted device",
-                "data": {
-                    "trusted_device": "Trusted device"
-                }
-            },
-            "verification_code": {
-                "title": "iCloud verification code",
-                "description": "Please enter the verification code you just received from iCloud",
-                "data": {
-                    "verification_code": "Verification code"
-                }
-            }
-        },
-        "error": {
-            "login": "Login error: please check your email & password",
-            "send_verification_code": "Failed to send verification code",
-            "validate_verification_code": "Failed to verify your verification code, choose a trust device and start the verification again"
-        },
-        "abort": {
-            "already_configured": "Account already configured",
-            "no_device": "None of your devices have \"Find my iPhone\" activated"
+  "config": {
+    "title": "Apple iCloud",
+    "step": {
+      "user": {
+        "title": "iCloud credentials",
+        "description": "Enter your credentials",
+        "data": {
+          "username": "Email",
+          "password": "Password",
+          "with_family": "With family"
         }
+      },
+      "trusted_device": {
+        "title": "iCloud trusted device",
+        "description": "Select your trusted device",
+        "data": {
+          "trusted_device": "Trusted device"
+        }
+      },
+      "verification_code": {
+        "title": "iCloud verification code",
+        "description": "Please enter the verification code you just received from iCloud",
+        "data": {
+          "verification_code": "Verification code"
+        }
+      }
+    },
+    "error": {
+      "login": "Login error: please check your email & password",
+      "send_verification_code": "Failed to send verification code",
+      "validate_verification_code": "Failed to verify your verification code, choose a trust device and start the verification again"
+    },
+    "abort": {
+      "already_configured": "Account already configured",
+      "no_device": "None of your devices have \"Find my iPhone\" activated"
     }
-}
\ No newline at end of file
+  }
+}
diff --git a/homeassistant/components/ifttt/services.yaml b/homeassistant/components/ifttt/services.yaml
index 693c654f258..80bf72e5290 100644
--- a/homeassistant/components/ifttt/services.yaml
+++ b/homeassistant/components/ifttt/services.yaml
@@ -5,23 +5,23 @@ push_alarm_state:
   fields:
     entity_id:
       description: Name of the alarm control panel which state has to be updated.
-      example: 'alarm_control_panel.downstairs'
+      example: "alarm_control_panel.downstairs"
     state:
       description: The state to which the alarm control panel has to be set.
-      example: 'armed_night'
+      example: "armed_night"
 
 trigger:
   description: Triggers the configured IFTTT Webhook.
   fields:
     event:
       description: The name of the event to sent.
-      example: 'MY_HA_EVENT'
+      example: "MY_HA_EVENT"
     value1:
       description: Generic field to send data via the event.
-      example: 'Hello World'
+      example: "Hello World"
     value2:
       description: Generic field to send data via the event.
-      example: 'some additional data'
+      example: "some additional data"
     value3:
       description: Generic field to send data via the event.
-      example: 'even more data'
+      example: "even more data"
diff --git a/homeassistant/components/ihc/manifest.json b/homeassistant/components/ihc/manifest.json
index 91086a4f875..6403d800a16 100644
--- a/homeassistant/components/ihc/manifest.json
+++ b/homeassistant/components/ihc/manifest.json
@@ -2,9 +2,6 @@
   "domain": "ihc",
   "name": "IHC Controller",
   "documentation": "https://www.home-assistant.io/integrations/ihc",
-  "requirements": [
-    "defusedxml==0.6.0",
-    "ihcsdk==2.6.0"
-  ],
+  "requirements": ["defusedxml==0.6.0", "ihcsdk==2.6.0"],
   "codeowners": []
 }
diff --git a/homeassistant/components/image_processing/services.yaml b/homeassistant/components/image_processing/services.yaml
index 1f1fa347dc9..69e455344b0 100644
--- a/homeassistant/components/image_processing/services.yaml
+++ b/homeassistant/components/image_processing/services.yaml
@@ -5,4 +5,4 @@ scan:
   fields:
     entity_id:
       description: Name(s) of entities to scan immediately.
-      example: 'image_processing.alpr_garage'
+      example: "image_processing.alpr_garage"
diff --git a/homeassistant/components/input_boolean/services.yaml b/homeassistant/components/input_boolean/services.yaml
index e391c15d3a8..5ab5e7a9b82 100644
--- a/homeassistant/components/input_boolean/services.yaml
+++ b/homeassistant/components/input_boolean/services.yaml
@@ -1,15 +1,20 @@
 toggle:
   description: Toggles an input boolean.
   fields:
-    entity_id: {description: Entity id of the input boolean to toggle., example: input_boolean.notify_alerts}
+    entity_id:
+      description: Entity id of the input boolean to toggle.
+      example: input_boolean.notify_alerts
 turn_off:
   description: Turns off an input boolean
   fields:
-    entity_id: {description: Entity id of the input boolean to turn off., example: input_boolean.notify_alerts}
+    entity_id:
+      description: Entity id of the input boolean to turn off.
+      example: input_boolean.notify_alerts
 turn_on:
   description: Turns on an input boolean.
   fields:
-    entity_id: {description: Entity id of the input boolean to turn on., example: input_boolean.notify_alerts}
+    entity_id:
+      description: Entity id of the input boolean to turn on.
+      example: input_boolean.notify_alerts
 reload:
   description: Reload the input_boolean configuration.
-
diff --git a/homeassistant/components/input_select/services.yaml b/homeassistant/components/input_select/services.yaml
index 2cce496d0b6..f4aa44f3de0 100644
--- a/homeassistant/components/input_select/services.yaml
+++ b/homeassistant/components/input_select/services.yaml
@@ -1,24 +1,32 @@
 select_next:
   description: Select the next options of an input select entity.
   fields:
-    entity_id: {description: Entity id of the input select to select the next value
-        for., example: input_select.my_select}
+    entity_id:
+      description: Entity id of the input select to select the next value for.
+      example: input_select.my_select
 select_option:
   description: Select an option of an input select entity.
   fields:
-    entity_id: {description: Entity id of the input select to select the value., example: input_select.my_select}
-    option: {description: Option to be selected., example: '"Item A"'}
+    entity_id:
+      description: Entity id of the input select to select the value.
+      example: input_select.my_select
+    option:
+      description: Option to be selected.
+      example: '"Item A"'
 select_previous:
   description: Select the previous options of an input select entity.
   fields:
-    entity_id: {description: Entity id of the input select to select the previous
-        value for., example: input_select.my_select}
+    entity_id:
+      description: Entity id of the input select to select the previous value for.
+      example: input_select.my_select
 set_options:
   description: Set the options of an input select entity.
   fields:
-    entity_id: {description: Entity id of the input select to set the new options
-        for., example: input_select.my_select}
-    options: {description: Options for the input select entity., example: '["Item
-        A", "Item B", "Item C"]'}
+    entity_id:
+      description: Entity id of the input select to set the new options for.
+      example: input_select.my_select
+    options:
+      description: Options for the input select entity.
+      example: '["Item A", "Item B", "Item C"]'
 reload:
   description: Reload the input_select configuration.
diff --git a/homeassistant/components/input_text/services.yaml b/homeassistant/components/input_text/services.yaml
index e9b709b0c03..0f74cd8940e 100644
--- a/homeassistant/components/input_text/services.yaml
+++ b/homeassistant/components/input_text/services.yaml
@@ -1,8 +1,11 @@
 set_value:
   description: Set the value of an input text entity.
   fields:
-    entity_id: {description: Entity id of the input text to set the new value., example: input_text.text1}
-    value: {description: The target value the entity should be set to., example: This
-        is an example text}
+    entity_id:
+      description: Entity id of the input text to set the new value.
+      example: input_text.text1
+    value:
+      description: The target value the entity should be set to.
+      example: This is an example text
 reload:
   description: Reload the input_text configuration.
diff --git a/homeassistant/components/ipma/strings.json b/homeassistant/components/ipma/strings.json
index ea8b9edcc86..184b7e38946 100644
--- a/homeassistant/components/ipma/strings.json
+++ b/homeassistant/components/ipma/strings.json
@@ -1,20 +1,20 @@
 {
-    "config": {
-        "title": "Portuguese weather service (IPMA)",
-        "step": {
-            "user": {
-                "title": "Location",
-                "description": "Instituto Português do Mar e Atmosfera",
-                "data": {
-                    "name": "Name",
-                    "latitude": "Latitude",
-                    "longitude": "Longitude",
-                    "mode": "Mode"
-                }
-            }
-        },
-        "error": {
-            "name_exists": "Name already exists"
+  "config": {
+    "title": "Portuguese weather service (IPMA)",
+    "step": {
+      "user": {
+        "title": "Location",
+        "description": "Instituto Português do Mar e Atmosfera",
+        "data": {
+          "name": "Name",
+          "latitude": "Latitude",
+          "longitude": "Longitude",
+          "mode": "Mode"
         }
+      }
+    },
+    "error": {
+      "name_exists": "Name already exists"
     }
+  }
 }
diff --git a/homeassistant/components/kodi/services.yaml b/homeassistant/components/kodi/services.yaml
index 01dde6a249c..11287217fa8 100644
--- a/homeassistant/components/kodi/services.yaml
+++ b/homeassistant/components/kodi/services.yaml
@@ -5,7 +5,7 @@ add_to_playlist:
   fields:
     entity_id:
       description: Name(s) of the Kodi entities where to add the media.
-      example: 'media_player.living_room_kodi'
+      example: "media_player.living_room_kodi"
     media_type:
       description: Media type identifier. It must be one of SONG or ALBUM.
       example: ALBUM
@@ -14,17 +14,17 @@ add_to_playlist:
       example: 123456
     media_name:
       description: Optional media name for filtering media. Can be 'ALL' when `media_type` is 'ALBUM' and `artist_name` is specified, to add all songs from one artist.
-      example: 'Highway to Hell'
+      example: "Highway to Hell"
     artist_name:
       description: Optional artist name for filtering media.
-      example: 'AC/DC'
+      example: "AC/DC"
 
 call_method:
-  description: 'Call a Kodi JSONRPC API method with optional parameters. Results of the Kodi API call will be redirected in a Home Assistant event: `kodi_call_method_result`.'
+  description: "Call a Kodi JSONRPC API method with optional parameters. Results of the Kodi API call will be redirected in a Home Assistant event: `kodi_call_method_result`."
   fields:
     entity_id:
       description: Name(s) of the Kodi entities where to run the API method.
-      example: 'media_player.living_room_kodi'
+      example: "media_player.living_room_kodi"
     method:
       description: Name of the Kodi JSONRPC API method to be called.
-      example: 'VideoLibrary.GetRecentlyAddedEpisodes'
+      example: "VideoLibrary.GetRecentlyAddedEpisodes"
diff --git a/homeassistant/components/konnected/manifest.json b/homeassistant/components/konnected/manifest.json
index 3a74e2165df..48f61ece4c4 100644
--- a/homeassistant/components/konnected/manifest.json
+++ b/homeassistant/components/konnected/manifest.json
@@ -3,19 +3,12 @@
   "name": "Konnected",
   "config_flow": true,
   "documentation": "https://www.home-assistant.io/integrations/konnected",
-  "requirements": [
-    "konnected==1.1.0"
-  ],
+  "requirements": ["konnected==1.1.0"],
   "ssdp": [
     {
       "manufacturer": "konnected.io"
     }
   ],
-  "dependencies": [
-    "http"
-  ],
-  "codeowners": [
-    "@heythisisnate",
-    "@kit-klein"
-  ]
+  "dependencies": ["http"],
+  "codeowners": ["@heythisisnate", "@kit-klein"]
 }
diff --git a/homeassistant/components/linky/strings.json b/homeassistant/components/linky/strings.json
index dc4c0bb9651..6d53e4f12a5 100644
--- a/homeassistant/components/linky/strings.json
+++ b/homeassistant/components/linky/strings.json
@@ -1,24 +1,24 @@
 {
-    "config": {
+  "config": {
+    "title": "Linky",
+    "step": {
+      "user": {
         "title": "Linky",
-        "step": {
-            "user": {
-                "title": "Linky",
-                "description": "Enter your credentials",
-                "data": {
-                    "username": "Email",
-                    "password": "Password"
-                }
-            }
-        },
-        "error":{
-            "access": "Could not access to Enedis.fr, please check your internet connection",
-            "enedis": "Enedis.fr answered with an error: please retry later (usually not between 11PM and 2AM)",
-            "wrong_login": "Login error: please check your email & password",
-            "unknown": "Unknown error: please retry later (usually not between 11PM and 2AM)"
-        },
-        "abort":{
-            "already_configured": "Account already configured"
+        "description": "Enter your credentials",
+        "data": {
+          "username": "Email",
+          "password": "Password"
         }
+      }
+    },
+    "error": {
+      "access": "Could not access to Enedis.fr, please check your internet connection",
+      "enedis": "Enedis.fr answered with an error: please retry later (usually not between 11PM and 2AM)",
+      "wrong_login": "Login error: please check your email & password",
+      "unknown": "Unknown error: please retry later (usually not between 11PM and 2AM)"
+    },
+    "abort": {
+      "already_configured": "Account already configured"
     }
+  }
 }
diff --git a/homeassistant/components/local_file/services.yaml b/homeassistant/components/local_file/services.yaml
index b8c615f3335..9430c02c0e6 100644
--- a/homeassistant/components/local_file/services.yaml
+++ b/homeassistant/components/local_file/services.yaml
@@ -3,7 +3,7 @@ update_file_path:
   fields:
     entity_id:
       description: Name of the entity_id of the camera to update.
-      example: 'camera.local_file'
+      example: "camera.local_file"
     file_path:
       description: The full path to the new image file to be displayed.
-      example: '/config/www/images/image.jpg'
+      example: "/config/www/images/image.jpg"
diff --git a/homeassistant/components/locative/strings.json b/homeassistant/components/locative/strings.json
index b2a538a0fa5..4e7bd5729f4 100644
--- a/homeassistant/components/locative/strings.json
+++ b/homeassistant/components/locative/strings.json
@@ -15,4 +15,4 @@
       "default": "To send locations to Home Assistant, you will need to setup the webhook feature in the Locative app.\n\nFill in the following info:\n\n- URL: `{webhook_url}`\n- Method: POST\n\nSee [the documentation]({docs_url}) for further details."
     }
   }
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/lock/services.yaml b/homeassistant/components/lock/services.yaml
index fea02bb025e..d1456f1e68e 100644
--- a/homeassistant/components/lock/services.yaml
+++ b/homeassistant/components/lock/services.yaml
@@ -25,7 +25,7 @@ lock:
   fields:
     entity_id:
       description: Name of lock to lock.
-      example: 'lock.front_door'
+      example: "lock.front_door"
     code:
       description: An optional code to lock the lock with.
       example: 1234
@@ -35,7 +35,7 @@ open:
   fields:
     entity_id:
       description: Name of lock to open.
-      example: 'lock.front_door'
+      example: "lock.front_door"
     code:
       description: An optional code to open the lock with.
       example: 1234
@@ -58,7 +58,7 @@ unlock:
   fields:
     entity_id:
       description: Name of lock to unlock.
-      example: 'lock.front_door'
+      example: "lock.front_door"
     code:
       description: An optional code to unlock the lock with.
       example: 1234
diff --git a/homeassistant/components/luftdaten/strings.json b/homeassistant/components/luftdaten/strings.json
index 2ba15087c48..96d24139c25 100644
--- a/homeassistant/components/luftdaten/strings.json
+++ b/homeassistant/components/luftdaten/strings.json
@@ -7,7 +7,6 @@
         "data": {
           "station_id": "Luftdaten Sensor ID",
           "show_on_map": "Show on map"
-
         }
       }
     },
diff --git a/homeassistant/components/lutron_caseta/strings.json b/homeassistant/components/lutron_caseta/strings.json
index cb7ab8c767e..5d7ddc8b55b 100644
--- a/homeassistant/components/lutron_caseta/strings.json
+++ b/homeassistant/components/lutron_caseta/strings.json
@@ -1,5 +1,5 @@
 {
-    "config": {
-        "title": "Lutron Caséta"
-    }
-}
\ No newline at end of file
+  "config": {
+    "title": "Lutron Caséta"
+  }
+}
diff --git a/homeassistant/components/marytts/manifest.json b/homeassistant/components/marytts/manifest.json
index ba4cea8365f..5152e838fb9 100644
--- a/homeassistant/components/marytts/manifest.json
+++ b/homeassistant/components/marytts/manifest.json
@@ -2,8 +2,6 @@
   "domain": "marytts",
   "name": "MaryTTS",
   "documentation": "https://www.home-assistant.io/integrations/marytts",
-  "requirements": [
-    "speak2mary==1.4.0"
-  ],
+  "requirements": ["speak2mary==1.4.0"],
   "codeowners": []
 }
diff --git a/homeassistant/components/media_player/services.yaml b/homeassistant/components/media_player/services.yaml
index 19ef1cb14c0..99fdb30b5c5 100644
--- a/homeassistant/components/media_player/services.yaml
+++ b/homeassistant/components/media_player/services.yaml
@@ -5,42 +5,42 @@ turn_on:
   fields:
     entity_id:
       description: Name(s) of entities to turn on.
-      example: 'media_player.living_room_chromecast'
+      example: "media_player.living_room_chromecast"
 
 turn_off:
   description: Turn a media player power off.
   fields:
     entity_id:
       description: Name(s) of entities to turn off.
-      example: 'media_player.living_room_chromecast'
+      example: "media_player.living_room_chromecast"
 
 toggle:
   description: Toggles a media player power state.
   fields:
     entity_id:
       description: Name(s) of entities to toggle.
-      example: 'media_player.living_room_chromecast'
+      example: "media_player.living_room_chromecast"
 
 volume_up:
   description: Turn a media player volume up.
   fields:
     entity_id:
       description: Name(s) of entities to turn volume up on.
-      example: 'media_player.living_room_sonos'
+      example: "media_player.living_room_sonos"
 
 volume_down:
   description: Turn a media player volume down.
   fields:
     entity_id:
       description: Name(s) of entities to turn volume down on.
-      example: 'media_player.living_room_sonos'
+      example: "media_player.living_room_sonos"
 
 volume_mute:
   description: Mute a media player's volume.
   fields:
     entity_id:
       description: Name(s) of entities to mute.
-      example: 'media_player.living_room_sonos'
+      example: "media_player.living_room_sonos"
     is_volume_muted:
       description: True/false for mute/unmute.
       example: true
@@ -50,7 +50,7 @@ volume_set:
   fields:
     entity_id:
       description: Name(s) of entities to set volume level on.
-      example: 'media_player.living_room_sonos'
+      example: "media_player.living_room_sonos"
     volume_level:
       description: Volume level to set as float.
       example: 0.6
@@ -60,49 +60,49 @@ media_play_pause:
   fields:
     entity_id:
       description: Name(s) of entities to toggle play/pause state on.
-      example: 'media_player.living_room_sonos'
+      example: "media_player.living_room_sonos"
 
 media_play:
   description: Send the media player the command for play.
   fields:
     entity_id:
       description: Name(s) of entities to play on.
-      example: 'media_player.living_room_sonos'
+      example: "media_player.living_room_sonos"
 
 media_pause:
   description: Send the media player the command for pause.
   fields:
     entity_id:
       description: Name(s) of entities to pause on.
-      example: 'media_player.living_room_sonos'
+      example: "media_player.living_room_sonos"
 
 media_stop:
   description: Send the media player the stop command.
   fields:
     entity_id:
       description: Name(s) of entities to stop on.
-      example: 'media_player.living_room_sonos'
+      example: "media_player.living_room_sonos"
 
 media_next_track:
   description: Send the media player the command for next track.
   fields:
     entity_id:
       description: Name(s) of entities to send next track command to.
-      example: 'media_player.living_room_sonos'
+      example: "media_player.living_room_sonos"
 
 media_previous_track:
   description: Send the media player the command for previous track.
   fields:
     entity_id:
       description: Name(s) of entities to send previous track command to.
-      example: 'media_player.living_room_sonos'
+      example: "media_player.living_room_sonos"
 
 media_seek:
   description: Send the media player the command to seek in current playing media.
   fields:
     entity_id:
       description: Name(s) of entities to seek media on.
-      example: 'media_player.living_room_chromecast'
+      example: "media_player.living_room_chromecast"
     seek_position:
       description: Position to seek to. The format is platform dependent.
       example: 100
@@ -112,47 +112,47 @@ play_media:
   fields:
     entity_id:
       description: Name(s) of entities to seek media on
-      example: 'media_player.living_room_chromecast'
+      example: "media_player.living_room_chromecast"
     media_content_id:
       description: The ID of the content to play. Platform dependent.
-      example: 'https://home-assistant.io/images/cast/splash.png'
+      example: "https://home-assistant.io/images/cast/splash.png"
     media_content_type:
       description: The type of the content to play. Must be one of image, music, tvshow, video, episode, channel or playlist
-      example: 'music'
+      example: "music"
 
 select_source:
   description: Send the media player the command to change input source.
   fields:
     entity_id:
       description: Name(s) of entities to change source on.
-      example: 'media_player.txnr535_0009b0d81f82'
+      example: "media_player.txnr535_0009b0d81f82"
     source:
       description: Name of the source to switch to. Platform dependent.
-      example: 'video1'
+      example: "video1"
 
 select_sound_mode:
   description: Send the media player the command to change sound mode.
   fields:
     entity_id:
       description: Name(s) of entities to change sound mode on.
-      example: 'media_player.marantz'
+      example: "media_player.marantz"
     sound_mode:
       description: Name of the sound mode to switch to.
-      example: 'Music'
+      example: "Music"
 
 clear_playlist:
   description: Send the media player the command to clear players playlist.
   fields:
     entity_id:
       description: Name(s) of entities to change source on.
-      example: 'media_player.living_room_chromecast'
+      example: "media_player.living_room_chromecast"
 
 shuffle_set:
   description: Set shuffling state.
   fields:
     entity_id:
       description: Name(s) of entities to set.
-      example: 'media_player.spotify'
+      example: "media_player.spotify"
     shuffle:
       description: True/false for enabling/disabling shuffle.
       example: true
diff --git a/homeassistant/components/met/strings.json b/homeassistant/components/met/strings.json
index 0c52e624418..cadfd03e9d2 100644
--- a/homeassistant/components/met/strings.json
+++ b/homeassistant/components/met/strings.json
@@ -1,20 +1,20 @@
 {
-    "config": {
-        "title": "Met.no",
-        "step": {
-            "user": {
-                "title": "Location",
-                "description": "Meteorologisk institutt",
-                "data": {
-                    "name": "Name",
-                    "latitude": "Latitude",
-                    "longitude": "Longitude",
-                    "elevation": "Elevation"
-                }
-            }
-        },
-        "error": {
-            "name_exists": "Location already exists"
+  "config": {
+    "title": "Met.no",
+    "step": {
+      "user": {
+        "title": "Location",
+        "description": "Meteorologisk institutt",
+        "data": {
+          "name": "Name",
+          "latitude": "Latitude",
+          "longitude": "Longitude",
+          "elevation": "Elevation"
         }
+      }
+    },
+    "error": {
+      "name_exists": "Location already exists"
     }
+  }
 }
diff --git a/homeassistant/components/meteo_france/strings.json b/homeassistant/components/meteo_france/strings.json
index 8bb02f28bd0..91950f62369 100644
--- a/homeassistant/components/meteo_france/strings.json
+++ b/homeassistant/components/meteo_france/strings.json
@@ -1,18 +1,18 @@
 {
-    "config": {
+  "config": {
+    "title": "Météo-France",
+    "step": {
+      "user": {
         "title": "Météo-France",
-        "step": {
-            "user": {
-                "title": "Météo-France",
-                "description": "Enter the postal code (only for France, recommended) or city name",
-                "data": {
-                    "city": "City"
-                }
-            }
-        },
-        "abort":{
-            "already_configured": "City already configured",
-            "unknown": "Unknown error: please retry later"
+        "description": "Enter the postal code (only for France, recommended) or city name",
+        "data": {
+          "city": "City"
         }
+      }
+    },
+    "abort": {
+      "already_configured": "City already configured",
+      "unknown": "Unknown error: please retry later"
     }
+  }
 }
diff --git a/homeassistant/components/microsoft_face/services.yaml b/homeassistant/components/microsoft_face/services.yaml
index 386f7083f92..4b273286d83 100644
--- a/homeassistant/components/microsoft_face/services.yaml
+++ b/homeassistant/components/microsoft_face/services.yaml
@@ -1,28 +1,48 @@
 create_group:
   description: Create a new person group.
   fields:
-    name: {description: Name of the group., example: family}
+    name:
+      description: Name of the group.
+      example: family
 create_person:
   description: Create a new person in the group.
   fields:
-    group: {description: Name of the group, example: family}
-    name: {description: Name of the person, example: Hans}
+    group:
+      description: Name of the group
+      example: family
+    name:
+      description: Name of the person
+      example: Hans
 delete_group:
   description: Delete a new person group.
   fields:
-    name: {description: Name of the group., example: family}
+    name:
+      description: Name of the group.
+      example: family
 delete_person:
   description: Delete a person in the group.
   fields:
-    group: {description: Name of the group., example: family}
-    name: {description: Name of the person., example: Hans}
+    group:
+      description: Name of the group.
+      example: family
+    name:
+      description: Name of the person.
+      example: Hans
 face_person:
   description: Add a new picture to a person.
   fields:
-    camera_entity: {description: Camera to take a picture., example: camera.door}
-    group: {description: Name of the group., example: family}
-    person: {description: Name of the person., example: Hans}
+    camera_entity:
+      description: Camera to take a picture.
+      example: camera.door
+    group:
+      description: Name of the group.
+      example: family
+    person:
+      description: Name of the person.
+      example: Hans
 train_group:
   description: Train a person group.
   fields:
-    group: {description: Name of the group, example: family}
+    group:
+      description: Name of the group
+      example: family
diff --git a/homeassistant/components/mikrotik/manifest.json b/homeassistant/components/mikrotik/manifest.json
index c87b3768596..41223f97a8e 100644
--- a/homeassistant/components/mikrotik/manifest.json
+++ b/homeassistant/components/mikrotik/manifest.json
@@ -3,10 +3,6 @@
   "name": "Mikrotik",
   "config_flow": true,
   "documentation": "https://www.home-assistant.io/integrations/mikrotik",
-  "requirements": [
-    "librouteros==3.0.0"
-  ],
-  "codeowners": [
-    "@engrbm87"
-  ]
+  "requirements": ["librouteros==3.0.0"],
+  "codeowners": ["@engrbm87"]
 }
diff --git a/homeassistant/components/mikrotik/strings.json b/homeassistant/components/mikrotik/strings.json
index 590563993d6..0d6fc42d1a3 100644
--- a/homeassistant/components/mikrotik/strings.json
+++ b/homeassistant/components/mikrotik/strings.json
@@ -1,37 +1,37 @@
 {
-    "config": {
-        "title": "Mikrotik",
-        "step": {
-            "user": {
-                "title": "Set up Mikrotik Router",
-                "data": {
-                    "name": "Name",
-                    "host": "Host",
-                    "username": "Username",
-                    "password": "Password",
-                    "port": "Port",
-                    "verify_ssl": "Use ssl"
-                }
-            }
-        },
-        "error": {
-            "name_exists": "Name exists",
-            "cannot_connect": "Connection Unsuccessful",
-            "wrong_credentials": "Wrong Credentials"
-        },
-        "abort": {
-            "already_configured": "Mikrotik is already configured"
+  "config": {
+    "title": "Mikrotik",
+    "step": {
+      "user": {
+        "title": "Set up Mikrotik Router",
+        "data": {
+          "name": "Name",
+          "host": "Host",
+          "username": "Username",
+          "password": "Password",
+          "port": "Port",
+          "verify_ssl": "Use ssl"
         }
+      }
     },
-    "options": {
-        "step": {
-            "device_tracker": {
-                "data": {
-                    "arp_ping": "Enable ARP ping",
-                    "force_dhcp": "Force scanning using DHCP",
-                    "detection_time": "Consider home interval"
-                }
-            }
+    "error": {
+      "name_exists": "Name exists",
+      "cannot_connect": "Connection Unsuccessful",
+      "wrong_credentials": "Wrong Credentials"
+    },
+    "abort": {
+      "already_configured": "Mikrotik is already configured"
+    }
+  },
+  "options": {
+    "step": {
+      "device_tracker": {
+        "data": {
+          "arp_ping": "Enable ARP ping",
+          "force_dhcp": "Force scanning using DHCP",
+          "detection_time": "Consider home interval"
         }
+      }
     }
-}
\ No newline at end of file
+  }
+}
diff --git a/homeassistant/components/minecraft_server/strings.json b/homeassistant/components/minecraft_server/strings.json
index 3a2408694ad..39dc17e66d5 100644
--- a/homeassistant/components/minecraft_server/strings.json
+++ b/homeassistant/components/minecraft_server/strings.json
@@ -1,23 +1,23 @@
 {
-    "config": {
-        "title": "Minecraft Server",
-        "step": {
-            "user": {
-                "title": "Link your Minecraft Server",
-                "description": "Set up your Minecraft Server instance to allow monitoring.",
-                "data": {
-                    "name": "Name",
-                    "host": "Host"
-                }
-            }
-        },
-        "error": {
-            "invalid_port": "Port must be in range from 1024 to 65535. Please correct it and try again.",
-            "cannot_connect": "Failed to connect to server. Please check the host and port and try again. Also ensure that you are running at least Minecraft version 1.7 on your server.",
-            "invalid_ip": "IP address is invalid (MAC address could not be determined). Please correct it and try again."
-          },
-        "abort": {
-            "already_configured": "Host is already configured."
+  "config": {
+    "title": "Minecraft Server",
+    "step": {
+      "user": {
+        "title": "Link your Minecraft Server",
+        "description": "Set up your Minecraft Server instance to allow monitoring.",
+        "data": {
+          "name": "Name",
+          "host": "Host"
         }
+      }
+    },
+    "error": {
+      "invalid_port": "Port must be in range from 1024 to 65535. Please correct it and try again.",
+      "cannot_connect": "Failed to connect to server. Please check the host and port and try again. Also ensure that you are running at least Minecraft version 1.7 on your server.",
+      "invalid_ip": "IP address is invalid (MAC address could not be determined). Please correct it and try again."
+    },
+    "abort": {
+      "already_configured": "Host is already configured."
     }
-}
\ No newline at end of file
+  }
+}
diff --git a/homeassistant/components/modbus/services.yaml b/homeassistant/components/modbus/services.yaml
index 8c11209570b..ba3113db5e0 100644
--- a/homeassistant/components/modbus/services.yaml
+++ b/homeassistant/components/modbus/services.yaml
@@ -1,14 +1,30 @@
 write_coil:
   description: Write to a modbus coil.
   fields:
-    address: {description: Address of the register to write to., example: 0}
-    state: {description: State to write., example: false}
-    unit: {description: Address of the modbus unit., example: 21}
-    hub: {description: Optional Modbus hub name. A hub with the name 'default' is used if not specified., example: "hub1"}
+    address:
+      description: Address of the register to write to.
+      example: 0
+    state:
+      description: State to write.
+      example: false
+    unit:
+      description: Address of the modbus unit.
+      example: 21
+    hub:
+      description: Optional Modbus hub name. A hub with the name 'default' is used if not specified.
+      example: "hub1"
 write_register:
   description: Write to a modbus holding register.
   fields:
-    address: {description: Address of the holding register to write to., example: 0}
-    unit: {description: Address of the modbus unit., example: 21}
-    value: {description: Value (single value or array) to write., example: "0 or [4,0]"}
-    hub: {description: Optional Modbus hub name. A hub with the name 'default' is used if not specified., example: "hub1"}
+    address:
+      description: Address of the holding register to write to.
+      example: 0
+    unit:
+      description: Address of the modbus unit.
+      example: 21
+    value:
+      description: Value (single value or array) to write.
+      example: "0 or [4,0]"
+    hub:
+      description: Optional Modbus hub name. A hub with the name 'default' is used if not specified.
+      example: "hub1"
diff --git a/homeassistant/components/monoprice/services.yaml b/homeassistant/components/monoprice/services.yaml
index 420270e10ac..a271d704768 100644
--- a/homeassistant/components/monoprice/services.yaml
+++ b/homeassistant/components/monoprice/services.yaml
@@ -3,11 +3,11 @@ snapshot:
   fields:
     entity_id:
       description: Name(s) of entities that will be snapshot. Platform dependent.
-      example: 'media_player.living_room'
+      example: "media_player.living_room"
 
 restore:
   description: Restore a snapshot of the media player zone.
   fields:
     entity_id:
       description: Name(s) of entities that will be restored. Platform dependent.
-      example: 'media_player.living_room'
+      example: "media_player.living_room"
diff --git a/homeassistant/components/monoprice/strings.json b/homeassistant/components/monoprice/strings.json
index 32332c7369a..7842f858fd8 100644
--- a/homeassistant/components/monoprice/strings.json
+++ b/homeassistant/components/monoprice/strings.json
@@ -38,4 +38,4 @@
       }
     }
   }
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/myq/manifest.json b/homeassistant/components/myq/manifest.json
index 460b6f50bd4..940c59c9979 100644
--- a/homeassistant/components/myq/manifest.json
+++ b/homeassistant/components/myq/manifest.json
@@ -2,14 +2,10 @@
   "domain": "myq",
   "name": "MyQ",
   "documentation": "https://www.home-assistant.io/integrations/myq",
-  "requirements": [
-    "pymyq==2.0.1"
-  ],
+  "requirements": ["pymyq==2.0.1"],
   "codeowners": ["@bdraco"],
   "config_flow": true,
   "homekit": {
-    "models": [
-      "819LMB"
-    ]
+    "models": ["819LMB"]
   }
 }
diff --git a/homeassistant/components/neato/strings.json b/homeassistant/components/neato/strings.json
index 69cdb48a560..9e6a0cb2709 100644
--- a/homeassistant/components/neato/strings.json
+++ b/homeassistant/components/neato/strings.json
@@ -1,27 +1,27 @@
 {
-    "config": {
-        "title": "Neato",
-        "step": {
-            "user": {
-                "title": "Neato Account Info",
-                "data": {
-                    "username": "Username",
-                    "password": "Password",
-                    "vendor": "Vendor"
-                },
-                "description": "See [Neato documentation]({docs_url})."
-            }
+  "config": {
+    "title": "Neato",
+    "step": {
+      "user": {
+        "title": "Neato Account Info",
+        "data": {
+          "username": "Username",
+          "password": "Password",
+          "vendor": "Vendor"
         },
-        "error": {
-            "invalid_credentials": "Invalid credentials",
-            "unexpected_error": "Unexpected error"
-        },
-        "create_entry": {
-            "default": "See [Neato documentation]({docs_url})."
-        },
-        "abort": {
-            "already_configured": "Already configured",
-            "invalid_credentials": "Invalid credentials"
-        }
+        "description": "See [Neato documentation]({docs_url})."
+      }
+    },
+    "error": {
+      "invalid_credentials": "Invalid credentials",
+      "unexpected_error": "Unexpected error"
+    },
+    "create_entry": {
+      "default": "See [Neato documentation]({docs_url})."
+    },
+    "abort": {
+      "already_configured": "Already configured",
+      "invalid_credentials": "Invalid credentials"
     }
-}
\ No newline at end of file
+  }
+}
diff --git a/homeassistant/components/nest/strings.json b/homeassistant/components/nest/strings.json
index 5a70e3fd48d..1e6700267f8 100644
--- a/homeassistant/components/nest/strings.json
+++ b/homeassistant/components/nest/strings.json
@@ -30,4 +30,4 @@
       "authorize_url_fail": "Unknown error generating an authorize url."
     }
   }
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/netatmo/manifest.json b/homeassistant/components/netatmo/manifest.json
index 4efefd061da..ff92fd93554 100644
--- a/homeassistant/components/netatmo/manifest.json
+++ b/homeassistant/components/netatmo/manifest.json
@@ -2,25 +2,12 @@
   "domain": "netatmo",
   "name": "Netatmo",
   "documentation": "https://www.home-assistant.io/integrations/netatmo",
-  "requirements": [
-    "pyatmo==3.3.0"
-  ],
-  "after_dependencies": [
-    "cloud"
-  ],
-  "dependencies": [
-    "webhook"
-  ],
-  "codeowners": [
-    "@cgtobi"
-  ],
+  "requirements": ["pyatmo==3.3.0"],
+  "after_dependencies": ["cloud"],
+  "dependencies": ["webhook"],
+  "codeowners": ["@cgtobi"],
   "config_flow": true,
   "homekit": {
-    "models": [
-      "Healty Home Coach",
-      "Netatmo Relay",
-      "Presence",
-      "Welcome"
-    ]
+    "models": ["Healty Home Coach", "Netatmo Relay", "Presence", "Welcome"]
   }
 }
diff --git a/homeassistant/components/netatmo/strings.json b/homeassistant/components/netatmo/strings.json
index 8cd4f51aee2..5ba3fff7fe2 100644
--- a/homeassistant/components/netatmo/strings.json
+++ b/homeassistant/components/netatmo/strings.json
@@ -15,4 +15,4 @@
       "default": "Successfully authenticated with Netatmo."
     }
   }
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/nexia/manifest.json b/homeassistant/components/nexia/manifest.json
index 5fb38f9b71d..80f66c51f99 100644
--- a/homeassistant/components/nexia/manifest.json
+++ b/homeassistant/components/nexia/manifest.json
@@ -1,12 +1,8 @@
 {
   "domain": "nexia",
   "name": "Nexia",
-  "requirements": [
-    "nexia==0.7.3"
-  ],
-  "codeowners": [
-    "@ryannazaretian", "@bdraco"
-  ],
+  "requirements": ["nexia==0.7.3"],
+  "codeowners": ["@ryannazaretian", "@bdraco"],
   "documentation": "https://www.home-assistant.io/integrations/nexia",
   "config_flow": true
 }
diff --git a/homeassistant/components/nexia/strings.json b/homeassistant/components/nexia/strings.json
index d3fabfb0b4d..8bdb3ea90b9 100644
--- a/homeassistant/components/nexia/strings.json
+++ b/homeassistant/components/nexia/strings.json
@@ -19,4 +19,4 @@
       "already_configured": "This nexia home is already configured"
     }
   }
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/nextcloud/manifest.json b/homeassistant/components/nextcloud/manifest.json
index 414d65fc3cc..73ec2a138b3 100644
--- a/homeassistant/components/nextcloud/manifest.json
+++ b/homeassistant/components/nextcloud/manifest.json
@@ -2,10 +2,6 @@
   "domain": "nextcloud",
   "name": "Nextcloud",
   "documentation": "https://www.home-assistant.io/integrations/nextcloud",
-  "requirements": [
-    "nextcloudmonitor==1.1.0"
-  ],
-  "codeowners": [
-    "@meichthys"
-  ]
+  "requirements": ["nextcloudmonitor==1.1.0"],
+  "codeowners": ["@meichthys"]
 }
diff --git a/homeassistant/components/nissan_leaf/services.yaml b/homeassistant/components/nissan_leaf/services.yaml
index ef60dfb4a65..096f4f5b8b4 100644
--- a/homeassistant/components/nissan_leaf/services.yaml
+++ b/homeassistant/components/nissan_leaf/services.yaml
@@ -18,4 +18,3 @@ update:
       description: >
         The vehicle identification number (VIN) of the vehicle, 17 characters
       example: WBANXXXXXX1234567
-
diff --git a/homeassistant/components/notify/services.yaml b/homeassistant/components/notify/services.yaml
index 23b1c968c4a..e80c7c85677 100644
--- a/homeassistant/components/notify/services.yaml
+++ b/homeassistant/components/notify/services.yaml
@@ -8,7 +8,7 @@ notify:
       example: The garage door has been open for 10 minutes.
     title:
       description: Optional title for your notification.
-      example: 'Your Garage Door Friend'
+      example: "Your Garage Door Friend"
     target:
       description: An array of targets to send the notification to. Optional depending on the platform.
       example: platform specific
@@ -21,7 +21,7 @@ apns_register:
   fields:
     push_id:
       description: The device token, a 64 character hex string (256 bits). The device token is provided to you by your client app, which receives the token after registering itself with the remote notification service.
-      example: '72f2a8633655c5ce574fdc9b2b34ff8abdfc3b739b6ceb7a9ff06c1cbbf99f62'
+      example: "72f2a8633655c5ce574fdc9b2b34ff8abdfc3b739b6ceb7a9ff06c1cbbf99f62"
     name:
       description: A friendly name for the device (optional).
-      example: 'Sam''s iPhone'
+      example: "Sam's iPhone"
diff --git a/homeassistant/components/nuheat/manifest.json b/homeassistant/components/nuheat/manifest.json
index 7ca81862ca7..d479f570d60 100644
--- a/homeassistant/components/nuheat/manifest.json
+++ b/homeassistant/components/nuheat/manifest.json
@@ -1,8 +1,8 @@
 {
-    "domain": "nuheat",
-    "name": "NuHeat",
-    "documentation": "https://www.home-assistant.io/integrations/nuheat",
-    "requirements": ["nuheat==0.3.0"],
-    "codeowners": ["@bdraco"],
-    "config_flow": true
+  "domain": "nuheat",
+  "name": "NuHeat",
+  "documentation": "https://www.home-assistant.io/integrations/nuheat",
+  "requirements": ["nuheat==0.3.0"],
+  "codeowners": ["@bdraco"],
+  "config_flow": true
 }
diff --git a/homeassistant/components/nuheat/strings.json b/homeassistant/components/nuheat/strings.json
index 4bfbb8ef62a..3effdbc60d6 100644
--- a/homeassistant/components/nuheat/strings.json
+++ b/homeassistant/components/nuheat/strings.json
@@ -1,25 +1,25 @@
 {
-   "config" : {
-      "error" : {
-         "unknown" : "Unexpected error",
-         "cannot_connect" : "Failed to connect, please try again",
-         "invalid_auth" : "Invalid authentication",
-         "invalid_thermostat" : "The thermostat serial number is invalid."
-      },
-      "title" : "NuHeat",
-      "abort" : {
-         "already_configured" : "The thermostat is already configured"
-      },
-      "step" : {
-         "user" : {
-            "title" : "Connect to the NuHeat",
-            "description": "You will need to obtain your thermostat’s numeric serial number or ID by logging into https://MyNuHeat.com and selecting your thermostat(s).",
-            "data" : {
-               "username" : "Username",
-               "password" : "Password",
-               "serial_number" : "Serial number of the thermostat."
-            }
-         }
+  "config": {
+    "error": {
+      "unknown": "Unexpected error",
+      "cannot_connect": "Failed to connect, please try again",
+      "invalid_auth": "Invalid authentication",
+      "invalid_thermostat": "The thermostat serial number is invalid."
+    },
+    "title": "NuHeat",
+    "abort": {
+      "already_configured": "The thermostat is already configured"
+    },
+    "step": {
+      "user": {
+        "title": "Connect to the NuHeat",
+        "description": "You will need to obtain your thermostat’s numeric serial number or ID by logging into https://MyNuHeat.com and selecting your thermostat(s).",
+        "data": {
+          "username": "Username",
+          "password": "Password",
+          "serial_number": "Serial number of the thermostat."
+        }
       }
-   }
+    }
+  }
 }
diff --git a/homeassistant/components/nuki/services.yaml b/homeassistant/components/nuki/services.yaml
index 1300b48e0dd..9e3be794cb7 100644
--- a/homeassistant/components/nuki/services.yaml
+++ b/homeassistant/components/nuki/services.yaml
@@ -3,8 +3,7 @@ lock_n_go:
   fields:
     entity_id:
       description: Entity id of the Nuki lock.
-      example: 'lock.front_door'
+      example: "lock.front_door"
     unlatch:
       description: Whether to unlatch the lock.
       example: false
-
diff --git a/homeassistant/components/nut/manifest.json b/homeassistant/components/nut/manifest.json
index ddd200dfa04..226250b9a52 100644
--- a/homeassistant/components/nut/manifest.json
+++ b/homeassistant/components/nut/manifest.json
@@ -2,9 +2,7 @@
   "domain": "nut",
   "name": "Network UPS Tools (NUT)",
   "documentation": "https://www.home-assistant.io/integrations/nut",
-  "requirements": [
-    "pynut2==2.1.2"
-  ],
+  "requirements": ["pynut2==2.1.2"],
   "codeowners": ["@bdraco"],
   "config_flow": true
 }
diff --git a/homeassistant/components/nut/strings.json b/homeassistant/components/nut/strings.json
index e37a019af78..8e5f5ee2fcb 100644
--- a/homeassistant/components/nut/strings.json
+++ b/homeassistant/components/nut/strings.json
@@ -34,5 +34,4 @@
       }
     }
   }
-
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/opencv/manifest.json b/homeassistant/components/opencv/manifest.json
index fd7f2b4064a..95b0431a32f 100644
--- a/homeassistant/components/opencv/manifest.json
+++ b/homeassistant/components/opencv/manifest.json
@@ -2,9 +2,6 @@
   "domain": "opencv",
   "name": "OpenCV",
   "documentation": "https://www.home-assistant.io/integrations/opencv",
-  "requirements": [
-    "numpy==1.18.1",
-    "opencv-python-headless==4.2.0.32"
-  ],
+  "requirements": ["numpy==1.18.1", "opencv-python-headless==4.2.0.32"],
   "codeowners": []
 }
diff --git a/homeassistant/components/openerz/manifest.json b/homeassistant/components/openerz/manifest.json
index 19bb17ea390..7f56e2b8c55 100644
--- a/homeassistant/components/openerz/manifest.json
+++ b/homeassistant/components/openerz/manifest.json
@@ -3,10 +3,6 @@
   "name": "Open ERZ",
   "documentation": "https://www.home-assistant.io/integrations/openerz",
   "dependencies": [],
-  "codeowners": [
-    "@misialq"
-  ],
-  "requirements": [
-    "openerz-api==0.1.0"
-  ]
-}
\ No newline at end of file
+  "codeowners": ["@misialq"],
+  "requirements": ["openerz-api==0.1.0"]
+}
diff --git a/homeassistant/components/opentherm_gw/services.yaml b/homeassistant/components/opentherm_gw/services.yaml
index 29ad2ecdbe7..227c6d423bc 100644
--- a/homeassistant/components/opentherm_gw/services.yaml
+++ b/homeassistant/components/opentherm_gw/services.yaml
@@ -5,20 +5,20 @@ reset_gateway:
   fields:
     gateway_id:
       description: The gateway_id of the OpenTherm Gateway.
-      example: 'opentherm_gateway'
+      example: "opentherm_gateway"
 
 set_clock:
   description: Set the clock and day of the week on the connected thermostat.
   fields:
     gateway_id:
       description: The gateway_id of the OpenTherm Gateway.
-      example: 'opentherm_gateway'
+      example: "opentherm_gateway"
     date:
       description: Optional date from which the day of the week will be extracted. Defaults to today.
-      example: '2018-10-23'
+      example: "2018-10-23"
     time:
       description: Optional time in 24h format which will be provided to the thermostat. Defaults to the current time.
-      example: '19:34'
+      example: "19:34"
 
 set_control_setpoint:
   description: >
@@ -27,13 +27,13 @@ set_control_setpoint:
   fields:
     gateway_id:
       description: The gateway_id of the OpenTherm Gateway.
-      example: 'opentherm_gateway'
+      example: "opentherm_gateway"
     temperature:
       description: >
         The central heating setpoint to set on the gateway.
         Values between 0 and 90 are accepted, but not all boilers support this range.
         A value of 0 disables the central heating setpoint override.
-      example: '37.5'
+      example: "37.5"
 
 set_hot_water_ovrd:
   description: >
@@ -41,7 +41,7 @@ set_hot_water_ovrd:
   fields:
     gateway_id:
       description: The gateway_id of the OpenTherm Gateway.
-      example: 'opentherm_gateway'
+      example: "opentherm_gateway"
     dhw_override:
       description: >
         Control the domestic hot water enable option. If the boiler has
@@ -50,37 +50,37 @@ set_hot_water_ovrd:
         that.
         Value should be 0 or 1 to enable the override in off or on
         state, or "A" to disable the override.
-      example: '1'
+      example: "1"
 
 set_gpio_mode:
   description: Change the function of the GPIO pins of the gateway.
   fields:
     gateway_id:
       description: The gateway_id of the OpenTherm Gateway.
-      example: 'opentherm_gateway'
+      example: "opentherm_gateway"
     id:
       description: The ID of the GPIO pin. Either "A" or "B".
-      example: 'B'
+      example: "B"
     mode:
       description: >
         Mode to set on the GPIO pin. Values 0 through 6 are accepted for both GPIOs, 7 is only accepted for GPIO "B".
         See https://www.home-assistant.io/integrations/opentherm_gw/#gpio-modes for an explanation of the values.
-      example: '5'
+      example: "5"
 
 set_led_mode:
   description: Change the function of the LEDs of the gateway.
   fields:
     gateway_id:
       description: The gateway_id of the OpenTherm Gateway.
-      example: 'opentherm_gateway'
+      example: "opentherm_gateway"
     id:
       description: The ID of the LED. Possible values are "A" through "F".
-      example: 'C'
+      example: "C"
     mode:
       description: >
         The function to assign to the LED. One of "R", "X", "T", "B", "O", "F", "H", "W", "C", "E", "M" or "P".
         See https://www.home-assistant.io/integrations/opentherm_gw/#led-modes for an explanation of the values.
-      example: 'F'
+      example: "F"
 
 set_max_modulation:
   description: >
@@ -89,13 +89,13 @@ set_max_modulation:
   fields:
     gateway_id:
       description: The gateway_id of the OpenTherm Gateway.
-      example: 'opentherm_gateway'
+      example: "opentherm_gateway"
     level:
       description: >
         The modulation level to provide to the gateway.
         Values between 0 and 100 will set the modulation level.
         Provide a value of -1 to clear the override and forward the value from the thermostat again.
-      example: '42'
+      example: "42"
 
 set_outside_temperature:
   description: >
@@ -104,20 +104,20 @@ set_outside_temperature:
   fields:
     gateway_id:
       description: The gateway_id of the OpenTherm Gateway.
-      example: 'opentherm_gateway'
+      example: "opentherm_gateway"
     temperature:
       description: >
         The temperature to provide to the thermostat.
         Values between -40.0 and 64.0 will be accepted, but not all thermostats can display the full range.
         Any value above 64.0 will clear a previously configured value (suggestion: 99)
-      example: '-2.3'
+      example: "-2.3"
 
 set_setback_temperature:
   description: Configure the setback temperature to be used with the GPIO away mode function.
   fields:
     gateway_id:
       description: The gateway_id of the OpenTherm Gateway.
-      example: 'opentherm_gateway'
+      example: "opentherm_gateway"
     temperature:
       description: The setback temperature to configure on the gateway. Values between 0.0 and 30.0 are accepted.
-      example: '16.0'
+      example: "16.0"
diff --git a/homeassistant/components/opentherm_gw/strings.json b/homeassistant/components/opentherm_gw/strings.json
index 1c246432fb1..7bc25726f27 100644
--- a/homeassistant/components/opentherm_gw/strings.json
+++ b/homeassistant/components/opentherm_gw/strings.json
@@ -16,7 +16,7 @@
       "id_exists": "Gateway id already exists",
       "serial_error": "Error connecting to device",
       "timeout": "Connection attempt timed out"
-	}
+    }
   },
   "options": {
     "step": {
@@ -29,4 +29,4 @@
       }
     }
   }
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/opnsense/manifest.json b/homeassistant/components/opnsense/manifest.json
index 8cc77da7cfa..129ca0108a5 100644
--- a/homeassistant/components/opnsense/manifest.json
+++ b/homeassistant/components/opnsense/manifest.json
@@ -2,8 +2,6 @@
   "domain": "opnsense",
   "name": "OPNSense",
   "documentation": "https://www.home-assistant.io/integrations/opnsense",
-  "requirements": [
-    "pyopnsense==0.2.0"
-  ],
+  "requirements": ["pyopnsense==0.2.0"],
   "codeowners": ["@mtreinish"]
 }
diff --git a/homeassistant/components/pilight/services.yaml b/homeassistant/components/pilight/services.yaml
index cc6141fdd91..9faa8908efb 100644
--- a/homeassistant/components/pilight/services.yaml
+++ b/homeassistant/components/pilight/services.yaml
@@ -2,5 +2,5 @@ send:
   description: Send RF code to Pilight device
   fields:
     protocol:
-      description: 'Protocol that Pilight recognizes. See https://manual.pilight.org/protocols/index.html for supported protocols and additional parameters that each protocol supports'
-      example: 'lirc'
+      description: "Protocol that Pilight recognizes. See https://manual.pilight.org/protocols/index.html for supported protocols and additional parameters that each protocol supports"
+      example: "lirc"
diff --git a/homeassistant/components/plaato/strings.json b/homeassistant/components/plaato/strings.json
index ee99da0c8b1..2fde2782f46 100644
--- a/homeassistant/components/plaato/strings.json
+++ b/homeassistant/components/plaato/strings.json
@@ -15,4 +15,4 @@
       "default": "To send events to Home Assistant, you will need to setup the webhook feature in Plaato Airlock.\n\nFill in the following info:\n\n- URL: `{webhook_url}`\n- Method: POST\n\nSee [the documentation]({docs_url}) for further details."
     }
   }
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/plex/strings.json b/homeassistant/components/plex/strings.json
index 43dc47bec10..83466327da3 100644
--- a/homeassistant/components/plex/strings.json
+++ b/homeassistant/components/plex/strings.json
@@ -1,44 +1,44 @@
 {
-    "config": {
-        "title": "Plex",
-        "step": {
-            "select_server": {
-                "title": "Select Plex server",
-                "description": "Multiple servers available, select one:",
-                "data": {
-                    "server": "Server"
-                }
-            },
-            "start_website_auth": {
-                "title": "Connect Plex server",
-                "description": "Continue to authorize at plex.tv."
-            }
-        },
-        "error": {
-            "faulty_credentials": "Authorization failed",
-            "no_servers": "No servers linked to account",
-            "not_found": "Plex server not found"
-        },
-        "abort": {
-            "all_configured": "All linked servers already configured",
-            "already_configured": "This Plex server is already configured",
-            "already_in_progress": "Plex is being configured",
-            "invalid_import": "Imported configuration is invalid",
-            "non-interactive": "Non-interactive import",
-            "token_request_timeout": "Timed out obtaining token",
-            "unknown": "Failed for unknown reason"
+  "config": {
+    "title": "Plex",
+    "step": {
+      "select_server": {
+        "title": "Select Plex server",
+        "description": "Multiple servers available, select one:",
+        "data": {
+          "server": "Server"
         }
+      },
+      "start_website_auth": {
+        "title": "Connect Plex server",
+        "description": "Continue to authorize at plex.tv."
+      }
     },
-    "options": {
-        "step": {
-            "plex_mp_settings": {
-                "description": "Options for Plex Media Players",
-                "data": {
-                    "use_episode_art": "Use episode art",
-                    "ignore_new_shared_users": "Ignore new managed/shared users",
-                    "monitored_users": "Monitored users"
-                }
-            }
+    "error": {
+      "faulty_credentials": "Authorization failed",
+      "no_servers": "No servers linked to account",
+      "not_found": "Plex server not found"
+    },
+    "abort": {
+      "all_configured": "All linked servers already configured",
+      "already_configured": "This Plex server is already configured",
+      "already_in_progress": "Plex is being configured",
+      "invalid_import": "Imported configuration is invalid",
+      "non-interactive": "Non-interactive import",
+      "token_request_timeout": "Timed out obtaining token",
+      "unknown": "Failed for unknown reason"
+    }
+  },
+  "options": {
+    "step": {
+      "plex_mp_settings": {
+        "description": "Options for Plex Media Players",
+        "data": {
+          "use_episode_art": "Use episode art",
+          "ignore_new_shared_users": "Ignore new managed/shared users",
+          "monitored_users": "Monitored users"
         }
+      }
     }
+  }
 }
diff --git a/homeassistant/components/proxy/manifest.json b/homeassistant/components/proxy/manifest.json
index 246eb856bdc..a704e5ffa66 100644
--- a/homeassistant/components/proxy/manifest.json
+++ b/homeassistant/components/proxy/manifest.json
@@ -2,8 +2,6 @@
   "domain": "proxy",
   "name": "Camera Proxy",
   "documentation": "https://www.home-assistant.io/integrations/proxy",
-  "requirements": [
-    "pillow==7.0.0"
-  ],
+  "requirements": ["pillow==7.0.0"],
   "codeowners": []
 }
diff --git a/homeassistant/components/ps4/services.yaml b/homeassistant/components/ps4/services.yaml
index b7d1e8df96f..e1af6543a65 100644
--- a/homeassistant/components/ps4/services.yaml
+++ b/homeassistant/components/ps4/services.yaml
@@ -3,7 +3,7 @@ send_command:
   fields:
     entity_id:
       description: Name(s) of entities to send command.
-      example: 'media_player.playstation_4'
+      example: "media_player.playstation_4"
     command:
       description: Button to press.
-      example: 'ps'
+      example: "ps"
diff --git a/homeassistant/components/qrcode/manifest.json b/homeassistant/components/qrcode/manifest.json
index f51f7150868..615fa1f7552 100644
--- a/homeassistant/components/qrcode/manifest.json
+++ b/homeassistant/components/qrcode/manifest.json
@@ -2,9 +2,6 @@
   "domain": "qrcode",
   "name": "QR Code",
   "documentation": "https://www.home-assistant.io/integrations/qrcode",
-  "requirements": [
-    "pillow==7.0.0",
-    "pyzbar==0.1.7"
-  ],
+  "requirements": ["pillow==7.0.0", "pyzbar==0.1.7"],
   "codeowners": []
 }
diff --git a/homeassistant/components/rachio/manifest.json b/homeassistant/components/rachio/manifest.json
index 9b293ee5df2..b8c141f52ab 100644
--- a/homeassistant/components/rachio/manifest.json
+++ b/homeassistant/components/rachio/manifest.json
@@ -2,17 +2,11 @@
   "domain": "rachio",
   "name": "Rachio",
   "documentation": "https://www.home-assistant.io/integrations/rachio",
-  "requirements": [
-    "rachiopy==0.1.3"
-  ],
-  "dependencies": [
-    "http"
-  ],
+  "requirements": ["rachiopy==0.1.3"],
+  "dependencies": ["http"],
   "codeowners": ["@bdraco"],
   "config_flow": true,
   "homekit": {
-    "models": [
-      "Rachio"
-    ]
+    "models": ["Rachio"]
   }
 }
diff --git a/homeassistant/components/rachio/strings.json b/homeassistant/components/rachio/strings.json
index 391320289db..1f05a1c7a5f 100644
--- a/homeassistant/components/rachio/strings.json
+++ b/homeassistant/components/rachio/strings.json
@@ -4,7 +4,7 @@
     "step": {
       "user": {
         "title": "Connect to your Rachio device",
-        "description" : "You will need the API Key from https://app.rach.io/. Select 'Account Settings, and then click on 'GET API KEY'.",
+        "description": "You will need the API Key from https://app.rach.io/. Select 'Account Settings, and then click on 'GET API KEY'.",
         "data": {
           "api_key": "The API key for the Rachio account."
         }
diff --git a/homeassistant/components/rainbird/services.yaml b/homeassistant/components/rainbird/services.yaml
index cdac7171a25..ed1ec8b62df 100644
--- a/homeassistant/components/rainbird/services.yaml
+++ b/homeassistant/components/rainbird/services.yaml
@@ -3,7 +3,7 @@ start_irrigation:
   fields:
     entity_id:
       description: Name of a single irrigation to turn on
-      example: 'switch.sprinkler_1'
+      example: "switch.sprinkler_1"
     duration:
       description: Duration for this sprinkler to be turned on
       example: 1
diff --git a/homeassistant/components/rainforest_eagle/manifest.json b/homeassistant/components/rainforest_eagle/manifest.json
index b6db35347bc..bae9cbe4ccb 100644
--- a/homeassistant/components/rainforest_eagle/manifest.json
+++ b/homeassistant/components/rainforest_eagle/manifest.json
@@ -2,10 +2,6 @@
   "domain": "rainforest_eagle",
   "name": "Rainforest Eagle-200",
   "documentation": "https://www.home-assistant.io/integrations/rainforest_eagle",
-  "requirements": [
-    "eagle200_reader==0.2.4",
-    "uEagle==0.0.1"
-  ],
-  "codeowners": ["@gtdiehl",
-                 "@jcalbert"]
+  "requirements": ["eagle200_reader==0.2.4", "uEagle==0.0.1"],
+  "codeowners": ["@gtdiehl", "@jcalbert"]
 }
diff --git a/homeassistant/components/remote/services.yaml b/homeassistant/components/remote/services.yaml
index 1d712a8f285..fc9d170726e 100644
--- a/homeassistant/components/remote/services.yaml
+++ b/homeassistant/components/remote/services.yaml
@@ -5,62 +5,62 @@ turn_on:
   fields:
     entity_id:
       description: Name(s) of entities to turn on.
-      example: 'remote.family_room'
+      example: "remote.family_room"
     activity:
       description: Activity ID or Activity Name to start.
-      example: 'BedroomTV'
+      example: "BedroomTV"
 
 toggle:
   description: Toggles a device.
   fields:
     entity_id:
       description: Name(s) of entities to toggle.
-      example: 'remote.family_room'
+      example: "remote.family_room"
 
 turn_off:
   description: Sends the Power Off Command.
   fields:
     entity_id:
       description: Name(s) of entities to turn off.
-      example: 'remote.family_room'
+      example: "remote.family_room"
 
 send_command:
   description: Sends a command or a list of commands to a device.
   fields:
     entity_id:
       description: Name(s) of entities to send command from.
-      example: 'remote.family_room'
+      example: "remote.family_room"
     device:
       description: Device ID to send command to.
-      example: '32756745'
+      example: "32756745"
     command:
       description: A single command or a list of commands to send.
-      example: 'Play'
+      example: "Play"
     num_repeats:
       description: An optional value that specifies the number of times you want to repeat the command(s). If not specified, the command(s) will not be repeated.
-      example: '5'
+      example: "5"
     delay_secs:
       description: An optional value that specifies that number of seconds you want to wait in between repeated commands. If not specified, the default of 0.4 seconds will be used.
-      example: '0.75'
+      example: "0.75"
     hold_secs:
       description: An optional value that specifies that number of seconds you want to have it held before the release is send. If not specified, the release will be send immediately after the press.
-      example: '2.5'
+      example: "2.5"
 
 learn_command:
   description: Learns a command or a list of commands from a device.
   fields:
     entity_id:
       description: Name(s) of entities to learn command from.
-      example: 'remote.bedroom'
+      example: "remote.bedroom"
     device:
       description: Device ID to learn command from.
-      example: 'television'
+      example: "television"
     command:
       description: A single command or a list of commands to learn.
-      example: 'Turn on'
+      example: "Turn on"
     alternative:
       description: If code must be stored as alternative (useful for discrete remotes).
-      example: 'True'
+      example: "True"
     timeout:
       description: Timeout, in seconds, for the command to be learned.
-      example: '30'
+      example: "30"
diff --git a/homeassistant/components/rflink/services.yaml b/homeassistant/components/rflink/services.yaml
index 9269326ece6..3a44d04f75d 100644
--- a/homeassistant/components/rflink/services.yaml
+++ b/homeassistant/components/rflink/services.yaml
@@ -1,5 +1,9 @@
 send_command:
   description: Send device command through RFLink.
   fields:
-    command: {description: The command to be sent., example: 'on'}
-    device_id: {description: RFLink device ID., example: newkaku_0000c6c2_1}
+    command:
+      description: The command to be sent.
+      example: "on"
+    device_id:
+      description: RFLink device ID.
+      example: newkaku_0000c6c2_1
diff --git a/homeassistant/components/roomba/manifest.json b/homeassistant/components/roomba/manifest.json
index c66cd3ecbdf..942ebd08426 100644
--- a/homeassistant/components/roomba/manifest.json
+++ b/homeassistant/components/roomba/manifest.json
@@ -2,10 +2,6 @@
   "domain": "roomba",
   "name": "iRobot Roomba",
   "documentation": "https://www.home-assistant.io/integrations/roomba",
-  "requirements": [
-    "roombapy==1.4.3"
-  ],
-  "codeowners": [
-    "@pschmitt"
-  ]
+  "requirements": ["roombapy==1.4.3"],
+  "codeowners": ["@pschmitt"]
 }
diff --git a/homeassistant/components/salt/manifest.json b/homeassistant/components/salt/manifest.json
index eefe901d296..cad9b6d3661 100644
--- a/homeassistant/components/salt/manifest.json
+++ b/homeassistant/components/salt/manifest.json
@@ -1,7 +1,7 @@
 {
-    "domain": "salt",
-    "name": "Salt Fiber Box",
-    "documentation": "https://www.home-assistant.io/integrations/salt",
-    "requirements": ["saltbox==0.1.3"],
-    "codeowners": ["@bjornorri"]
+  "domain": "salt",
+  "name": "Salt Fiber Box",
+  "documentation": "https://www.home-assistant.io/integrations/salt",
+  "requirements": ["saltbox==0.1.3"],
+  "codeowners": ["@bjornorri"]
 }
diff --git a/homeassistant/components/samsungtv/manifest.json b/homeassistant/components/samsungtv/manifest.json
index ea91fee481a..efcb9064208 100644
--- a/homeassistant/components/samsungtv/manifest.json
+++ b/homeassistant/components/samsungtv/manifest.json
@@ -11,8 +11,6 @@
       "st": "urn:samsung.com:device:RemoteControlReceiver:1"
     }
   ],
-  "codeowners": [
-    "@escoand"
-  ],
+  "codeowners": ["@escoand"],
   "config_flow": true
 }
diff --git a/homeassistant/components/samsungtv/strings.json b/homeassistant/components/samsungtv/strings.json
index 2e36062669f..71de0764789 100644
--- a/homeassistant/components/samsungtv/strings.json
+++ b/homeassistant/components/samsungtv/strings.json
@@ -7,8 +7,8 @@
         "title": "Samsung TV",
         "description": "Enter your Samsung TV information. If you never connected Home Assistant before you should see a popup on your TV asking for authorization.",
         "data": {
-            "host": "Host or IP address",
-            "name": "Name"
+          "host": "Host or IP address",
+          "name": "Name"
         }
       },
       "confirm": {
diff --git a/homeassistant/components/script/services.yaml b/homeassistant/components/script/services.yaml
index 736b0ec71c3..1347f760b54 100644
--- a/homeassistant/components/script/services.yaml
+++ b/homeassistant/components/script/services.yaml
@@ -8,18 +8,18 @@ turn_on:
   fields:
     entity_id:
       description: Name(s) of script to be turned on.
-      example: 'script.arrive_home'
+      example: "script.arrive_home"
 
 turn_off:
   description: Turn off script
   fields:
     entity_id:
       description: Name(s) of script to be turned off.
-      example: 'script.arrive_home'
+      example: "script.arrive_home"
 
 toggle:
   description: Toggle script
   fields:
     entity_id:
       description: Name(s) of script to be toggled.
-      example: 'script.arrive_home'
+      example: "script.arrive_home"
diff --git a/homeassistant/components/sense/manifest.json b/homeassistant/components/sense/manifest.json
index d4ec8ab8a1e..d0bed826734 100644
--- a/homeassistant/components/sense/manifest.json
+++ b/homeassistant/components/sense/manifest.json
@@ -2,11 +2,7 @@
   "domain": "sense",
   "name": "Sense",
   "documentation": "https://www.home-assistant.io/integrations/sense",
-  "requirements": [
-    "sense_energy==0.7.1"
-  ],
-  "codeowners": [
-    "@kbickar"
-  ],
+  "requirements": ["sense_energy==0.7.1"],
+  "codeowners": ["@kbickar"],
   "config_flow": true
 }
diff --git a/homeassistant/components/sensibo/services.yaml b/homeassistant/components/sensibo/services.yaml
index d2e5e39c7d8..f981ef7fd32 100644
--- a/homeassistant/components/sensibo/services.yaml
+++ b/homeassistant/components/sensibo/services.yaml
@@ -3,7 +3,7 @@ assume_state:
   fields:
     entity_id:
       description: Name(s) of entities to change.
-      example: 'climate.kitchen'
+      example: "climate.kitchen"
     state:
       description: State to set.
-      example: 'idle'
+      example: "idle"
diff --git a/homeassistant/components/seven_segments/manifest.json b/homeassistant/components/seven_segments/manifest.json
index 2bee5379a1b..1eb60e9154a 100644
--- a/homeassistant/components/seven_segments/manifest.json
+++ b/homeassistant/components/seven_segments/manifest.json
@@ -2,8 +2,6 @@
   "domain": "seven_segments",
   "name": "Seven Segments OCR",
   "documentation": "https://www.home-assistant.io/integrations/seven_segments",
-  "requirements": [
-    "pillow==7.0.0"
-  ],
+  "requirements": ["pillow==7.0.0"],
   "codeowners": []
 }
diff --git a/homeassistant/components/shopping_list/services.yaml b/homeassistant/components/shopping_list/services.yaml
index 1d667e43fa6..04457e2abec 100644
--- a/homeassistant/components/shopping_list/services.yaml
+++ b/homeassistant/components/shopping_list/services.yaml
@@ -1,9 +1,12 @@
 add_item:
   description: Adds an item to the shopping list.
   fields:
-    name: {description: The name of the item to add., example: Beer}
+    name:
+      description: The name of the item to add.
+      example: Beer
 complete_item:
-  description: Marks an item as completed in the shopping list. It does not remove
-    the item.
+  description: Marks an item as completed in the shopping list. It does not remove the item.
   fields:
-    name: {description: The name of the item to mark as completed., example: Beer}
+    name:
+      description: The name of the item to mark as completed.
+      example: Beer
diff --git a/homeassistant/components/shopping_list/strings.json b/homeassistant/components/shopping_list/strings.json
index 9e56dd7eaa4..537bed16a78 100644
--- a/homeassistant/components/shopping_list/strings.json
+++ b/homeassistant/components/shopping_list/strings.json
@@ -1,14 +1,14 @@
 {
-    "config": {
+  "config": {
+    "title": "Shopping List",
+    "step": {
+      "user": {
         "title": "Shopping List",
-        "step": {
-          "user": {
-            "title": "Shopping List",
-            "description": "Do you want to configure the shopping list?"
-          }
-        },
-        "abort": {
-          "already_configured": "The shopping list is already configured."
-        }
+        "description": "Do you want to configure the shopping list?"
+      }
+    },
+    "abort": {
+      "already_configured": "The shopping list is already configured."
     }
+  }
 }
diff --git a/homeassistant/components/sighthound/manifest.json b/homeassistant/components/sighthound/manifest.json
index b4e80884484..3efe31d5a87 100644
--- a/homeassistant/components/sighthound/manifest.json
+++ b/homeassistant/components/sighthound/manifest.json
@@ -1,12 +1,7 @@
 {
-        "domain": "sighthound",
-        "name": "Sighthound",
-        "documentation": "https://www.home-assistant.io/integrations/sighthound",
-        "requirements": [
-                "pillow==7.0.0",
-                "simplehound==0.3"
-        ],
-        "codeowners": [
-                "@robmarkcole"
-        ]
+  "domain": "sighthound",
+  "name": "Sighthound",
+  "documentation": "https://www.home-assistant.io/integrations/sighthound",
+  "requirements": ["pillow==7.0.0", "simplehound==0.3"],
+  "codeowners": ["@robmarkcole"]
 }
diff --git a/homeassistant/components/smartthings/strings.json b/homeassistant/components/smartthings/strings.json
index 3578bcd5138..99173c830a0 100644
--- a/homeassistant/components/smartthings/strings.json
+++ b/homeassistant/components/smartthings/strings.json
@@ -15,14 +15,14 @@
       }
     },
     "error": {
-        "token_invalid_format": "The token must be in the UID/GUID format",
-        "token_unauthorized": "The token is invalid or no longer authorized.",
-        "token_forbidden": "The token does not have the required OAuth scopes.",
-        "token_already_setup": "The token has already been setup.",
-        "app_setup_error": "Unable to setup the SmartApp.  Please try again.",
-        "app_not_installed": "Please ensure you have installed and authorized the Home Assistant SmartApp and try again.",
-        "base_url_not_https": "The `base_url` for the `http` component must be configured and start with `https://`.",
-        "webhook_error": "SmartThings could not validate the endpoint configured in `base_url`. Please review the component requirements."
+      "token_invalid_format": "The token must be in the UID/GUID format",
+      "token_unauthorized": "The token is invalid or no longer authorized.",
+      "token_forbidden": "The token does not have the required OAuth scopes.",
+      "token_already_setup": "The token has already been setup.",
+      "app_setup_error": "Unable to setup the SmartApp.  Please try again.",
+      "app_not_installed": "Please ensure you have installed and authorized the Home Assistant SmartApp and try again.",
+      "base_url_not_https": "The `base_url` for the `http` component must be configured and start with `https://`.",
+      "webhook_error": "SmartThings could not validate the endpoint configured in `base_url`. Please review the component requirements."
     }
   }
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/smhi/strings.json b/homeassistant/components/smhi/strings.json
index dbf1172b7d6..2db9e0f94eb 100644
--- a/homeassistant/components/smhi/strings.json
+++ b/homeassistant/components/smhi/strings.json
@@ -1,19 +1,19 @@
 {
-    "config": {
-        "title": "Swedish weather service (SMHI)",
-        "step": {
-            "user": {
-                "title": "Location in Sweden",
-                "data": {
-                    "name": "Name",
-                    "latitude": "Latitude",
-                    "longitude": "Longitude"
-                }
-            }
-        },
-        "error": {
-            "name_exists": "Name already exists",
-            "wrong_location": "Location Sweden only"
+  "config": {
+    "title": "Swedish weather service (SMHI)",
+    "step": {
+      "user": {
+        "title": "Location in Sweden",
+        "data": {
+          "name": "Name",
+          "latitude": "Latitude",
+          "longitude": "Longitude"
         }
+      }
+    },
+    "error": {
+      "name_exists": "Name already exists",
+      "wrong_location": "Location Sweden only"
     }
-}
\ No newline at end of file
+  }
+}
diff --git a/homeassistant/components/snapcast/services.yaml b/homeassistant/components/snapcast/services.yaml
index 3e5dadbf5c1..1517f12f52d 100644
--- a/homeassistant/components/snapcast/services.yaml
+++ b/homeassistant/components/snapcast/services.yaml
@@ -3,28 +3,28 @@ join:
   fields:
     master:
       description: Entity ID of the player to synchronize to.
-      example: 'media_player.living_room'
+      example: "media_player.living_room"
     entity_id:
       description: Entity ID of the players to join to the "master".
-      example: 'media_player.bedroom'
+      example: "media_player.bedroom"
 
 unjoin:
   description: Unjoin the player from a group.
   fields:
     entity_id:
       description: Entity ID of the player to unjoin.
-      example: 'media_player.living_room'
+      example: "media_player.living_room"
 
 snapshot:
   description: Take a snapshot of the media player.
   fields:
     entity_id:
       description: Name(s) of entities that will be snapshotted. Platform dependent.
-      example: 'media_player.living_room'
+      example: "media_player.living_room"
 
 restore:
   description: Restore a snapshot of the media player.
   fields:
     entity_id:
       description: Name(s) of entities that will be restored. Platform dependent.
-      example: 'media_player.living_room'
+      example: "media_player.living_room"
diff --git a/homeassistant/components/solaredge/strings.json b/homeassistant/components/solaredge/strings.json
index 3265e3bb1b0..650ae3edd4f 100644
--- a/homeassistant/components/solaredge/strings.json
+++ b/homeassistant/components/solaredge/strings.json
@@ -1,21 +1,21 @@
 {
-    "config": {
-        "title": "SolarEdge",
-        "step": {
-            "user": {
-                "title": "Define the API parameters for this installation",
-                "data": {
-                    "name": "The name of this installation",
-                    "site_id": "The SolarEdge site-id",
-                    "api_key": "The API key for this site"
-                }
-            }
-        },
-        "error": {
-            "site_exists": "This site_id is already configured"
-        },
-        "abort": {
-            "site_exists": "This site_id is already configured"
+  "config": {
+    "title": "SolarEdge",
+    "step": {
+      "user": {
+        "title": "Define the API parameters for this installation",
+        "data": {
+          "name": "The name of this installation",
+          "site_id": "The SolarEdge site-id",
+          "api_key": "The API key for this site"
         }
+      }
+    },
+    "error": {
+      "site_exists": "This site_id is already configured"
+    },
+    "abort": {
+      "site_exists": "This site_id is already configured"
     }
+  }
 }
diff --git a/homeassistant/components/soma/strings.json b/homeassistant/components/soma/strings.json
index 67f1f6b7d46..74a72fdd976 100644
--- a/homeassistant/components/soma/strings.json
+++ b/homeassistant/components/soma/strings.json
@@ -1,25 +1,25 @@
 {
-    "config": {
-        "abort": {
-            "already_setup": "You can only configure one Soma account.",
-            "authorize_url_timeout": "Timeout generating authorize url.",
-            "missing_configuration": "The Soma component is not configured. Please follow the documentation.",
-            "result_error": "SOMA Connect responded with error status.",
-            "connection_error": "Failed to connect to SOMA Connect."
+  "config": {
+    "abort": {
+      "already_setup": "You can only configure one Soma account.",
+      "authorize_url_timeout": "Timeout generating authorize url.",
+      "missing_configuration": "The Soma component is not configured. Please follow the documentation.",
+      "result_error": "SOMA Connect responded with error status.",
+      "connection_error": "Failed to connect to SOMA Connect."
+    },
+    "create_entry": {
+      "default": "Successfully authenticated with Soma."
+    },
+    "step": {
+      "user": {
+        "data": {
+          "host": "Host",
+          "port": "Port"
         },
-        "create_entry": {
-            "default": "Successfully authenticated with Soma."
-        },
-        "step": {
-            "user": {
-                "data": {
-                    "host": "Host",
-                    "port": "Port"
-                },
-                "description": "Please enter connection settings of your SOMA Connect.",
-                "title": "SOMA Connect"
-            }
-        },
-        "title": "Soma"
-    }
+        "description": "Please enter connection settings of your SOMA Connect.",
+        "title": "SOMA Connect"
+      }
+    },
+    "title": "Soma"
+  }
 }
diff --git a/homeassistant/components/songpal/services.yaml b/homeassistant/components/songpal/services.yaml
index 8cf1a664276..e08ae2098fe 100644
--- a/homeassistant/components/songpal/services.yaml
+++ b/homeassistant/components/songpal/services.yaml
@@ -4,10 +4,10 @@ set_sound_setting:
   fields:
     entity_id:
       description: Target device.
-      example: 'media_player.my_soundbar'
+      example: "media_player.my_soundbar"
     name:
       description: Name of the setting.
-      example: 'nightMode'
+      example: "nightMode"
     value:
       description: Value to set.
-      example: 'on'
+      example: "on"
diff --git a/homeassistant/components/sonos/services.yaml b/homeassistant/components/sonos/services.yaml
index 480eeeeba9f..37effe7d6ab 100644
--- a/homeassistant/components/sonos/services.yaml
+++ b/homeassistant/components/sonos/services.yaml
@@ -3,74 +3,74 @@ join:
   fields:
     master:
       description: Entity ID of the player that should become the coordinator of the group.
-      example: 'media_player.living_room_sonos'
+      example: "media_player.living_room_sonos"
     entity_id:
       description: Name(s) of entities that will join the master.
-      example: 'media_player.living_room_sonos'
+      example: "media_player.living_room_sonos"
 
 unjoin:
   description: Unjoin the player from a group.
   fields:
     entity_id:
       description: Name(s) of entities that will be unjoined from their group.
-      example: 'media_player.living_room_sonos'
+      example: "media_player.living_room_sonos"
 
 snapshot:
   description: Take a snapshot of the media player.
   fields:
     entity_id:
       description: Name(s) of entities that will be snapshot.
-      example: 'media_player.living_room_sonos'
+      example: "media_player.living_room_sonos"
     with_group:
       description: True (default) or False. Also snapshot the group layout.
-      example: 'true'
+      example: "true"
 
 restore:
   description: Restore a snapshot of the media player.
   fields:
     entity_id:
       description: Name(s) of entities that will be restored.
-      example: 'media_player.living_room_sonos'
+      example: "media_player.living_room_sonos"
     with_group:
       description: True (default) or False. Also restore the group layout.
-      example: 'true'
+      example: "true"
 
 set_sleep_timer:
   description: Set a Sonos timer.
   fields:
     entity_id:
       description: Name(s) of entities that will have a timer set.
-      example: 'media_player.living_room_sonos'
+      example: "media_player.living_room_sonos"
     sleep_time:
       description: Number of seconds to set the timer.
-      example: '900'
+      example: "900"
 
 clear_sleep_timer:
   description: Clear a Sonos timer.
   fields:
     entity_id:
       description: Name(s) of entities that will have the timer cleared.
-      example: 'media_player.living_room_sonos'
+      example: "media_player.living_room_sonos"
 
 set_option:
   description: Set Sonos sound options.
   fields:
     entity_id:
       description: Name(s) of entities that will have options set.
-      example: 'media_player.living_room_sonos'
+      example: "media_player.living_room_sonos"
     night_sound:
       description: Enable Night Sound mode
-      example: 'true'
+      example: "true"
     speech_enhance:
       description: Enable Speech Enhancement mode
-      example: 'true'
+      example: "true"
 
 play_queue:
   description: Starts playing the queue from the first item.
   fields:
     entity_id:
       description: Name(s) of entities that will start playing.
-      example: 'media_player.living_room_sonos'
+      example: "media_player.living_room_sonos"
     queue_position:
       description: Position of the song in the queue to start playing from.
-      example: '0'
+      example: "0"
diff --git a/homeassistant/components/soundtouch/services.yaml b/homeassistant/components/soundtouch/services.yaml
index fd848b76b2d..79fd1d41665 100644
--- a/homeassistant/components/soundtouch/services.yaml
+++ b/homeassistant/components/soundtouch/services.yaml
@@ -3,34 +3,34 @@ play_everywhere:
   fields:
     master:
       description: Name of the master entity that will coordinate the grouping. Platform dependent. It is a shortcut for creating a multi-room zone with all devices
-      example: 'media_player.soundtouch_home'
+      example: "media_player.soundtouch_home"
 
 create_zone:
   description: Create a Sountouch multi-room zone.
   fields:
     master:
       description: Name of the master entity that will coordinate the multi-room zone. Platform dependent.
-      example: 'media_player.soundtouch_home'
+      example: "media_player.soundtouch_home"
     slaves:
       description: Name of slaves entities to add to the new zone.
-      example: 'media_player.soundtouch_bedroom'
+      example: "media_player.soundtouch_bedroom"
 
 add_zone_slave:
   description: Add a slave to a Sountouch multi-room zone.
   fields:
     master:
       description: Name of the master entity that is coordinating the multi-room zone. Platform dependent.
-      example: 'media_player.soundtouch_home'
+      example: "media_player.soundtouch_home"
     slaves:
       description: Name of slaves entities to add to the existing zone.
-      example: 'media_player.soundtouch_bedroom'
+      example: "media_player.soundtouch_bedroom"
 
 remove_zone_slave:
   description: Remove a slave from the Sounttouch multi-room zone.
   fields:
     master:
       description: Name of the master entity that is coordinating the multi-room zone. Platform dependent.
-      example: 'media_player.soundtouch_home'
+      example: "media_player.soundtouch_home"
     slaves:
       description: Name of slaves entities to remove from the existing zone.
-      example: 'media_player.soundtouch_bedroom'
+      example: "media_player.soundtouch_bedroom"
diff --git a/homeassistant/components/squeezebox/services.yaml b/homeassistant/components/squeezebox/services.yaml
index 0c81c369e73..b1768949258 100644
--- a/homeassistant/components/squeezebox/services.yaml
+++ b/homeassistant/components/squeezebox/services.yaml
@@ -3,10 +3,10 @@ call_method:
   fields:
     entity_id:
       description: Name(s) of the Squeezebox entities where to run the API method.
-      example: 'media_player.squeezebox_radio'
+      example: "media_player.squeezebox_radio"
     command:
       description: Command to pass to Logitech Media Server (p0 in the CLI documentation).
-      example: 'playlist'
+      example: "playlist"
     parameters:
       description: Array of additional parameters to pass to Logitech Media Server (p1, ..., pN in the CLI documentation).
       example: ["loadtracks", "album.titlesearch="]
diff --git a/homeassistant/components/starline/strings.json b/homeassistant/components/starline/strings.json
index bf83f652c3c..673fc6f54bd 100644
--- a/homeassistant/components/starline/strings.json
+++ b/homeassistant/components/starline/strings.json
@@ -1,42 +1,42 @@
 {
-    "config": {
-        "title": "StarLine",
-        "step": {
-            "auth_app": {
-                "title": "Application credentials",
-                "description": "Application ID and secret code from <a href=\"https://my.starline.ru/developer\" target=\"_blank\">StarLine developer account</a>",
-                "data": {
-                    "app_id": "App ID",
-                    "app_secret": "Secret"
-                }
-            },
-            "auth_user": {
-                "title": "User credentials",
-                "description": "StarLine account email and password",
-                "data": {
-                    "username": "Username",
-                    "password": "Password"
-                }
-            },
-            "auth_mfa": {
-                "title": "Two-factor authorization",
-                "description": "Enter the code sent to phone {phone_number}",
-                "data": {
-                    "mfa_code": "SMS code"
-                }
-            },
-            "auth_captcha": {
-                "title": "Captcha",
-                "description": "{captcha_img}",
-                "data": {
-                    "captcha_code": "Code from image"
-                }
-            }
-        },
-        "error": {
-            "error_auth_app": "Incorrect application id or secret",
-            "error_auth_user": "Incorrect username or password",
-            "error_auth_mfa": "Incorrect code"
+  "config": {
+    "title": "StarLine",
+    "step": {
+      "auth_app": {
+        "title": "Application credentials",
+        "description": "Application ID and secret code from <a href=\"https://my.starline.ru/developer\" target=\"_blank\">StarLine developer account</a>",
+        "data": {
+          "app_id": "App ID",
+          "app_secret": "Secret"
         }
+      },
+      "auth_user": {
+        "title": "User credentials",
+        "description": "StarLine account email and password",
+        "data": {
+          "username": "Username",
+          "password": "Password"
+        }
+      },
+      "auth_mfa": {
+        "title": "Two-factor authorization",
+        "description": "Enter the code sent to phone {phone_number}",
+        "data": {
+          "mfa_code": "SMS code"
+        }
+      },
+      "auth_captcha": {
+        "title": "Captcha",
+        "description": "{captcha_img}",
+        "data": {
+          "captcha_code": "Code from image"
+        }
+      }
+    },
+    "error": {
+      "error_auth_app": "Incorrect application id or secret",
+      "error_auth_user": "Incorrect username or password",
+      "error_auth_mfa": "Incorrect code"
     }
+  }
 }
diff --git a/homeassistant/components/switch/services.yaml b/homeassistant/components/switch/services.yaml
index 352ffb6feec..74dda2ddf4f 100644
--- a/homeassistant/components/switch/services.yaml
+++ b/homeassistant/components/switch/services.yaml
@@ -5,18 +5,18 @@ turn_on:
   fields:
     entity_id:
       description: Name(s) of entities to turn on
-      example: 'switch.living_room'
+      example: "switch.living_room"
 
 turn_off:
   description: Turn a switch off.
   fields:
     entity_id:
       description: Name(s) of entities to turn off.
-      example: 'switch.living_room'
+      example: "switch.living_room"
 
 toggle:
   description: Toggles a switch state.
   fields:
     entity_id:
       description: Name(s) of entities to toggle.
-      example: 'switch.living_room'
+      example: "switch.living_room"
diff --git a/homeassistant/components/switcher_kis/services.yaml b/homeassistant/components/switcher_kis/services.yaml
index 5408a204990..39691752445 100644
--- a/homeassistant/components/switcher_kis/services.yaml
+++ b/homeassistant/components/switcher_kis/services.yaml
@@ -1,9 +1,9 @@
 set_auto_off:
-  description: 'Update Switcher device auto off setting.'
+  description: "Update Switcher device auto off setting."
   fields:
     entity_id:
       description: "Name of the entity id associated with the integration, used for permission validation."
       example: "switch.switcher_kis_boiler"
     auto_off:
-      description: 'Time period string containing hours and minutes.'
+      description: "Time period string containing hours and minutes."
       example: '"02:30"'
diff --git a/homeassistant/components/tado/manifest.json b/homeassistant/components/tado/manifest.json
index f0aa605f164..741612b6b4b 100644
--- a/homeassistant/components/tado/manifest.json
+++ b/homeassistant/components/tado/manifest.json
@@ -2,10 +2,6 @@
   "domain": "tado",
   "name": "Tado",
   "documentation": "https://www.home-assistant.io/integrations/tado",
-  "requirements": [
-    "python-tado==0.6.0"
-  ],
-  "codeowners": [
-    "@michaelarnauts", "@bdraco"
-  ]
+  "requirements": ["python-tado==0.6.0"],
+  "codeowners": ["@michaelarnauts", "@bdraco"]
 }
diff --git a/homeassistant/components/tankerkoenig/manifest.json b/homeassistant/components/tankerkoenig/manifest.json
index ee0c573b3cd..d9a63037a8f 100755
--- a/homeassistant/components/tankerkoenig/manifest.json
+++ b/homeassistant/components/tankerkoenig/manifest.json
@@ -3,7 +3,5 @@
   "name": "Tankerkoenig",
   "documentation": "https://www.home-assistant.io/integrations/tankerkoenig",
   "requirements": ["pytankerkoenig==0.0.6"],
-  "codeowners": [
-    "@guillempages"
-  ]
+  "codeowners": ["@guillempages"]
 }
diff --git a/homeassistant/components/telegram_bot/services.yaml b/homeassistant/components/telegram_bot/services.yaml
index e3d303a2c52..8e42b25c0ca 100644
--- a/homeassistant/components/telegram_bot/services.yaml
+++ b/homeassistant/components/telegram_bot/services.yaml
@@ -8,13 +8,13 @@ send_message:
       example: The garage door has been open for 10 minutes.
     title:
       description: Optional title for your notification. Will be composed as '%title\n%message'
-      example: 'Your Garage Door Friend'
+      example: "Your Garage Door Friend"
     target:
       description: An array of pre-authorized chat_ids to send the notification to. If not present, first allowed chat_id is the default.
-      example: '[12345, 67890] or 12345'
+      example: "[12345, 67890] or 12345"
     parse_mode:
       description: "Parser for the message text: `html` or `markdown`."
-      example: 'html'
+      example: "html"
     disable_notification:
       description: Sends the message silently. iOS users and Web users will not receive a notification, Android users will receive a notification with no sound.
       example: true
@@ -23,7 +23,7 @@ send_message:
       example: true
     timeout:
       description: Timeout for send message. Will help with timeout errors (poor internet connection, etc)
-      example: '1000'
+      example: "1000"
     keyboard:
       description: List of rows of commands, comma-separated, to make a custom keyboard. Empty list clears a previously set keyboard.
       example: '["/command1, /command2", "/command3"]'
@@ -36,13 +36,13 @@ send_photo:
   fields:
     url:
       description: Remote path to an image.
-      example: 'http://example.org/path/to/the/image.png'
+      example: "http://example.org/path/to/the/image.png"
     file:
       description: Local path to an image.
-      example: '/path/to/the/image.png'
+      example: "/path/to/the/image.png"
     caption:
       description: The title of the image.
-      example: 'My image'
+      example: "My image"
     username:
       description: Username for a URL which require HTTP basic authentication.
       example: myuser
@@ -51,7 +51,7 @@ send_photo:
       example: myuser_pwd
     target:
       description: An array of pre-authorized chat_ids to send the document to. If not present, first allowed chat_id is the default.
-      example: '[12345, 67890] or 12345'
+      example: "[12345, 67890] or 12345"
     disable_notification:
       description: Sends the message silently. iOS users and Web users will not receive a notification, Android users will receive a notification with no sound.
       example: true
@@ -60,7 +60,7 @@ send_photo:
       example: false
     timeout:
       description: Timeout for send photo. Will help with timeout errors (poor internet connection, etc)
-      example: '1000'
+      example: "1000"
     keyboard:
       description: List of rows of commands, comma-separated, to make a custom keyboard.
       example: '["/command1, /command2", "/command3"]'
@@ -73,10 +73,10 @@ send_sticker:
   fields:
     url:
       description: Remote path to an webp sticker.
-      example: 'http://example.org/path/to/the/sticker.webp'
+      example: "http://example.org/path/to/the/sticker.webp"
     file:
       description: Local path to an webp sticker.
-      example: '/path/to/the/sticker.webp'
+      example: "/path/to/the/sticker.webp"
     username:
       description: Username for a URL which require HTTP basic authentication.
       example: myuser
@@ -85,7 +85,7 @@ send_sticker:
       example: myuser_pwd
     target:
       description: An array of pre-authorized chat_ids to send the document to. If not present, first allowed chat_id is the default.
-      example: '[12345, 67890] or 12345'
+      example: "[12345, 67890] or 12345"
     disable_notification:
       description: Sends the message silently. iOS users and Web users will not receive a notification, Android users will receive a notification with no sound.
       example: true
@@ -94,7 +94,7 @@ send_sticker:
       example: false
     timeout:
       description: Timeout for send sticker. Will help with timeout errors (poor internet connection, etc)
-      example: '1000'
+      example: "1000"
     keyboard:
       description: List of rows of commands, comma-separated, to make a custom keyboard.
       example: '["/command1, /command2", "/command3"]'
@@ -107,13 +107,13 @@ send_video:
   fields:
     url:
       description: Remote path to a video.
-      example: 'http://example.org/path/to/the/video.mp4'
+      example: "http://example.org/path/to/the/video.mp4"
     file:
       description: Local path to an image.
-      example: '/path/to/the/video.mp4'
+      example: "/path/to/the/video.mp4"
     caption:
       description: The title of the video.
-      example: 'My video'
+      example: "My video"
     username:
       description: Username for a URL which require HTTP basic authentication.
       example: myuser
@@ -122,7 +122,7 @@ send_video:
       example: myuser_pwd
     target:
       description: An array of pre-authorized chat_ids to send the document to. If not present, first allowed chat_id is the default.
-      example: '[12345, 67890] or 12345'
+      example: "[12345, 67890] or 12345"
     disable_notification:
       description: Sends the message silently. iOS users and Web users will not receive a notification, Android users will receive a notification with no sound.
       example: true
@@ -131,7 +131,7 @@ send_video:
       example: false
     timeout:
       description: Timeout for send video. Will help with timeout errors (poor internet connection, etc)
-      example: '1000'
+      example: "1000"
     keyboard:
       description: List of rows of commands, comma-separated, to make a custom keyboard.
       example: '["/command1, /command2", "/command3"]'
@@ -144,10 +144,10 @@ send_document:
   fields:
     url:
       description: Remote path to a document.
-      example: 'http://example.org/path/to/the/document.odf'
+      example: "http://example.org/path/to/the/document.odf"
     file:
       description: Local path to a document.
-      example: '/tmp/whatever.odf'
+      example: "/tmp/whatever.odf"
     caption:
       description: The title of the document.
       example: Document Title xy
@@ -159,7 +159,7 @@ send_document:
       example: myuser_pwd
     target:
       description: An array of pre-authorized chat_ids to send the document to. If not present, first allowed chat_id is the default.
-      example: '[12345, 67890] or 12345'
+      example: "[12345, 67890] or 12345"
     disable_notification:
       description: Sends the message silently. iOS users and Web users will not receive a notification, Android users will receive a notification with no sound.
       example: true
@@ -168,7 +168,7 @@ send_document:
       example: false
     timeout:
       description: Timeout for send document. Will help with timeout errors (poor internet connection, etc)
-      example: '1000'
+      example: "1000"
     keyboard:
       description: List of rows of commands, comma-separated, to make a custom keyboard.
       example: '["/command1, /command2", "/command3"]'
@@ -187,13 +187,13 @@ send_location:
       example: 38.123
     target:
       description: An array of pre-authorized chat_ids to send the location to. If not present, first allowed chat_id is the default.
-      example: '[12345, 67890] or 12345'
+      example: "[12345, 67890] or 12345"
     disable_notification:
       description: Sends the message silently. iOS users and Web users will not receive a notification, Android users will receive a notification with no sound.
       example: true
     timeout:
       description: Timeout for send photo. Will help with timeout errors (poor internet connection, etc)
-      example: '1000'
+      example: "1000"
     keyboard:
       description: List of rows of commands, comma-separated, to make a custom keyboard.
       example: '["/command1, /command2", "/command3"]'
@@ -206,7 +206,7 @@ edit_message:
   fields:
     message_id:
       description: id of the message to edit.
-      example: '{{ trigger.event.data.message.message_id }}'
+      example: "{{ trigger.event.data.message.message_id }}"
     chat_id:
       description: The chat_id where to edit the message.
       example: 12345
@@ -215,10 +215,10 @@ edit_message:
       example: The garage door has been open for 10 minutes.
     title:
       description: Optional title for your notification. Will be composed as '%title\n%message'
-      example: 'Your Garage Door Friend'
+      example: "Your Garage Door Friend"
     parse_mode:
       description: "Parser for the message text: `html` or `markdown`."
-      example: 'html'
+      example: "html"
     disable_web_page_preview:
       description: Disables link previews for links in the message.
       example: true
@@ -231,7 +231,7 @@ edit_caption:
   fields:
     message_id:
       description: id of the message to edit.
-      example: '{{ trigger.event.data.message.message_id }}'
+      example: "{{ trigger.event.data.message.message_id }}"
     chat_id:
       description: The chat_id where to edit the caption.
       example: 12345
@@ -247,7 +247,7 @@ edit_replymarkup:
   fields:
     message_id:
       description: id of the message to edit.
-      example: '{{ trigger.event.data.message.message_id }}'
+      example: "{{ trigger.event.data.message.message_id }}"
     chat_id:
       description: The chat_id where to edit the reply_markup.
       example: 12345
@@ -263,17 +263,17 @@ answer_callback_query:
       example: "OK, I'm listening"
     callback_query_id:
       description: Unique id of the callback response.
-      example: '{{ trigger.event.data.id }}'
+      example: "{{ trigger.event.data.id }}"
     show_alert:
       description: Show a permanent notification.
       example: true
 
 delete_message:
-  description: Delete a previously sent message.


+  description: Delete a previously sent message.
   fields:
     message_id:
       description: id of the message to delete.
-      example: '{{ trigger.event.data.message.message_id }}'


+      example: "{{ trigger.event.data.message.message_id }}"
     chat_id:
       description: The chat_id where to delete the message.
       example: 12345
diff --git a/homeassistant/components/tellduslive/strings.json b/homeassistant/components/tellduslive/strings.json
index bb62889085b..53a32812f60 100644
--- a/homeassistant/components/tellduslive/strings.json
+++ b/homeassistant/components/tellduslive/strings.json
@@ -1,26 +1,26 @@
 {
   "config": {
-      "abort": {
-          "already_setup": "TelldusLive is already configured",
-          "authorize_url_fail": "Unknown error generating an authorize url.",
-          "authorize_url_timeout": "Timeout generating authorize url.",
-          "unknown": "Unknown error occurred"
+    "abort": {
+      "already_setup": "TelldusLive is already configured",
+      "authorize_url_fail": "Unknown error generating an authorize url.",
+      "authorize_url_timeout": "Timeout generating authorize url.",
+      "unknown": "Unknown error occurred"
+    },
+    "error": {
+      "auth_error": "Authentication error, please try again"
+    },
+    "step": {
+      "auth": {
+        "description": "To link your TelldusLive account:\n 1. Click the link below\n 2. Login to Telldus Live\n 3. Authorize **{app_name}** (click **Yes**).\n 4. Come back here and click **SUBMIT**.\n\n [Link TelldusLive account]({auth_url})",
+        "title": "Authenticate against TelldusLive"
       },
-      "error": {
-          "auth_error": "Authentication error, please try again"
-      },
-      "step": {
-          "auth": {
-              "description": "To link your TelldusLive account:\n 1. Click the link below\n 2. Login to Telldus Live\n 3. Authorize **{app_name}** (click **Yes**).\n 4. Come back here and click **SUBMIT**.\n\n [Link TelldusLive account]({auth_url})",
-              "title": "Authenticate against TelldusLive"
-          },
-          "user": {
-              "data": {
-                  "host": "Host"
-              },
-              "title": "Pick endpoint."
-          }
-      },
-      "title": "Telldus Live"
+      "user": {
+        "data": {
+          "host": "Host"
+        },
+        "title": "Pick endpoint."
+      }
+    },
+    "title": "Telldus Live"
   }
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/tesla/manifest.json b/homeassistant/components/tesla/manifest.json
index b6c7f4658e9..d977e24bfec 100644
--- a/homeassistant/components/tesla/manifest.json
+++ b/homeassistant/components/tesla/manifest.json
@@ -3,11 +3,6 @@
   "name": "Tesla",
   "config_flow": true,
   "documentation": "https://www.home-assistant.io/integrations/tesla",
-  "requirements": [
-    "teslajsonpy==0.6.0"
-  ],
-  "codeowners": [
-    "@zabuldon",
-    "@alandtse"
-  ]
+  "requirements": ["teslajsonpy==0.6.0"],
+  "codeowners": ["@zabuldon", "@alandtse"]
 }
diff --git a/homeassistant/components/tesla/strings.json b/homeassistant/components/tesla/strings.json
index 3c8017a7d76..61cf5a2fcb2 100644
--- a/homeassistant/components/tesla/strings.json
+++ b/homeassistant/components/tesla/strings.json
@@ -28,4 +28,4 @@
       }
     }
   }
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/tmb/manifest.json b/homeassistant/components/tmb/manifest.json
index e35c266b696..fb4270f641d 100644
--- a/homeassistant/components/tmb/manifest.json
+++ b/homeassistant/components/tmb/manifest.json
@@ -2,10 +2,6 @@
   "domain": "tmb",
   "name": "Transports Metropolitans de Barcelona",
   "documentation": "https://www.home-assistant.io/integrations/tmb",
-  "requirements": [
-    "tmb==0.0.4"
-  ],
-  "codeowners": [
-    "@alemuro"
-  ]
+  "requirements": ["tmb==0.0.4"],
+  "codeowners": ["@alemuro"]
 }
diff --git a/homeassistant/components/todoist/services.yaml b/homeassistant/components/todoist/services.yaml
index 3382e27693d..186b15a18a9 100644
--- a/homeassistant/components/todoist/services.yaml
+++ b/homeassistant/components/todoist/services.yaml
@@ -22,4 +22,3 @@ new_task:
     due_date:
       description: The day this task is due, in format YYYY-MM-DD.
       example: "2019-10-22"
-
diff --git a/homeassistant/components/toon/strings.json b/homeassistant/components/toon/strings.json
index 20d6ba3d72c..a12fce67ffd 100644
--- a/homeassistant/components/toon/strings.json
+++ b/homeassistant/components/toon/strings.json
@@ -31,4 +31,4 @@
       "no_app": "You need to configure Toon before being able to authenticate with it. [Please read the instructions](https://www.home-assistant.io/components/toon/)."
     }
   }
-}
\ No newline at end of file
+}
diff --git a/homeassistant/components/transmission/strings.json b/homeassistant/components/transmission/strings.json
index 45c16be36e2..a239de65b6e 100644
--- a/homeassistant/components/transmission/strings.json
+++ b/homeassistant/components/transmission/strings.json
@@ -1,35 +1,35 @@
 {
-    "config": {
-        "title": "Transmission",
-        "step": {
-            "user": {
-                "title": "Setup Transmission Client",
-                "data": {
-                    "name": "Name",
-                    "host": "Host",
-                    "username": "Username",
-                    "password": "Password",
-                    "port": "Port"
-                }
-            }
-        },
-        "error": {
-            "name_exists": "Name already exists",
-            "wrong_credentials": "Wrong username or password",
-            "cannot_connect": "Unable to Connect to host"
-        },
-        "abort": {
-            "already_configured": "Host is already configured."
+  "config": {
+    "title": "Transmission",
+    "step": {
+      "user": {
+        "title": "Setup Transmission Client",
+        "data": {
+          "name": "Name",
+          "host": "Host",
+          "username": "Username",
+          "password": "Password",
+          "port": "Port"
         }
+      }
     },
-    "options": {
-        "step": {
-            "init": {
-                "title": "Configure options for Transmission",
-                "data": {
-                    "scan_interval": "Update frequency"
-                }
-            }
+    "error": {
+      "name_exists": "Name already exists",
+      "wrong_credentials": "Wrong username or password",
+      "cannot_connect": "Unable to Connect to host"
+    },
+    "abort": {
+      "already_configured": "Host is already configured."
+    }
+  },
+  "options": {
+    "step": {
+      "init": {
+        "title": "Configure options for Transmission",
+        "data": {
+          "scan_interval": "Update frequency"
         }
+      }
     }
-}
\ No newline at end of file
+  }
+}
diff --git a/homeassistant/components/tts/services.yaml b/homeassistant/components/tts/services.yaml
index 823eef632f3..7d1bf95572b 100644
--- a/homeassistant/components/tts/services.yaml
+++ b/homeassistant/components/tts/services.yaml
@@ -5,16 +5,16 @@ say:
   fields:
     entity_id:
       description: Name(s) of media player entities.
-      example: 'media_player.floor'
+      example: "media_player.floor"
     message:
       description: Text to speak on devices.
-      example: 'My name is hanna'
+      example: "My name is hanna"
     cache:
       description: Control file cache of this message.
-      example: 'true'
+      example: "true"
     language:
       description: Language to use for speech generation.
-      example: 'ru'
+      example: "ru"
     options:
       description: A dictionary containing platform-specific options. Optional depending on the platform.
       example: platform specific
diff --git a/homeassistant/components/twentemilieu/strings.json b/homeassistant/components/twentemilieu/strings.json
index 811ecdbfa6e..3ef76a5d20b 100644
--- a/homeassistant/components/twentemilieu/strings.json
+++ b/homeassistant/components/twentemilieu/strings.json
@@ -1,23 +1,23 @@
 {
-    "config": {
+  "config": {
+    "title": "Twente Milieu",
+    "step": {
+      "user": {
         "title": "Twente Milieu",
-        "step": {
-            "user": {
-                "title": "Twente Milieu",
-                "description": "Set up Twente Milieu providing waste collection information on your address.",
-                "data": {
-                    "post_code": "Postal code",
-                    "house_number": "House number",
-                    "house_letter": "House letter/additional"
-                }
-            }
-        },
-        "error": {
-            "connection_error": "Failed to connect.",
-            "invalid_address": "Address not found in Twente Milieu service area."
-        },
-        "abort": {
-            "address_exists": "Address already set up."
+        "description": "Set up Twente Milieu providing waste collection information on your address.",
+        "data": {
+          "post_code": "Postal code",
+          "house_number": "House number",
+          "house_letter": "House letter/additional"
         }
+      }
+    },
+    "error": {
+      "connection_error": "Failed to connect.",
+      "invalid_address": "Address not found in Twente Milieu service area."
+    },
+    "abort": {
+      "address_exists": "Address already set up."
     }
-}
\ No newline at end of file
+  }
+}
diff --git a/homeassistant/components/unifi/manifest.json b/homeassistant/components/unifi/manifest.json
index e0f07d8d7cc..54b474e95cc 100644
--- a/homeassistant/components/unifi/manifest.json
+++ b/homeassistant/components/unifi/manifest.json
@@ -3,11 +3,7 @@
   "name": "Ubiquiti UniFi",
   "config_flow": true,
   "documentation": "https://www.home-assistant.io/integrations/unifi",
-  "requirements": [
-    "aiounifi==15"
-  ],
-  "codeowners": [
-    "@kane610"
-  ],
+  "requirements": ["aiounifi==15"],
+  "codeowners": ["@kane610"],
   "quality_scale": "platinum"
 }
diff --git a/homeassistant/components/unifi/strings.json b/homeassistant/components/unifi/strings.json
index 61116adfb60..881e97bc9ca 100644
--- a/homeassistant/components/unifi/strings.json
+++ b/homeassistant/components/unifi/strings.json
@@ -1,64 +1,64 @@
 {
-    "config": {
-        "title": "UniFi Controller",
-        "step": {
-            "user": {
-                "title": "Set up UniFi Controller",
-                "data": {
-                    "host": "Host",
-                    "username": "User name",
-                    "password": "Password",
-                    "port": "Port",
-                    "site": "Site ID",
-                    "verify_ssl": "Controller using proper certificate"
-                }
-            }
-        },
-        "error": {
-            "faulty_credentials": "Bad user credentials",
-            "service_unavailable": "No service available",
-            "unknown_client_mac": "No client available on that MAC address"
-        },
-        "abort": {
-            "already_configured": "Controller site is already configured",
-            "user_privilege": "User needs to be administrator"
-        }
-    },
-    "options": {
-        "step": {
-            "init": {
-                "data": {}
-            },
-            "device_tracker": {
-                "data": {
-                    "detection_time": "Time in seconds from last seen until considered away",
-                    "ssid_filter": "Select SSIDs to track wireless clients on",
-                    "track_clients": "Track network clients",
-                    "track_devices": "Track network devices (Ubiquiti devices)",
-                    "track_wired_clients": "Include wired network clients"
-                },
-                "description": "Configure device tracking",
-                "title": "UniFi options 1/3"
-            },
-            "client_control": {
-                "data": {
-                    "block_client": "Network access controlled clients",
-                    "new_client": "Add new client for network access control",
-                    "poe_clients": "Allow POE control of clients"
-                },
-                "description": "Configure client controls\n\nCreate switches for serial numbers you want to control network access for.",
-                "title": "UniFi options 2/3"
-            },
-            "statistics_sensors": {
-                "data": {
-                    "allow_bandwidth_sensors": "Bandwidth usage sensors for network clients"
-                },
-                "description": "Configure statistics sensors",
-                "title": "UniFi options 3/3"
-            }
+  "config": {
+    "title": "UniFi Controller",
+    "step": {
+      "user": {
+        "title": "Set up UniFi Controller",
+        "data": {
+          "host": "Host",
+          "username": "User name",
+          "password": "Password",
+          "port": "Port",
+          "site": "Site ID",
+          "verify_ssl": "Controller using proper certificate"
         }
+      }
     },
     "error": {
-        "unknown_client_mac": "No client available in UniFi on that MAC address"
+      "faulty_credentials": "Bad user credentials",
+      "service_unavailable": "No service available",
+      "unknown_client_mac": "No client available on that MAC address"
+    },
+    "abort": {
+      "already_configured": "Controller site is already configured",
+      "user_privilege": "User needs to be administrator"
+    }
+  },
+  "options": {
+    "step": {
+      "init": {
+        "data": {}
+      },
+      "device_tracker": {
+        "data": {
+          "detection_time": "Time in seconds from last seen until considered away",
+          "ssid_filter": "Select SSIDs to track wireless clients on",
+          "track_clients": "Track network clients",
+          "track_devices": "Track network devices (Ubiquiti devices)",
+          "track_wired_clients": "Include wired network clients"
+        },
+        "description": "Configure device tracking",
+        "title": "UniFi options 1/3"
+      },
+      "client_control": {
+        "data": {
+          "block_client": "Network access controlled clients",
+          "new_client": "Add new client for network access control",
+          "poe_clients": "Allow POE control of clients"
+        },
+        "description": "Configure client controls\n\nCreate switches for serial numbers you want to control network access for.",
+        "title": "UniFi options 2/3"
+      },
+      "statistics_sensors": {
+        "data": {
+          "allow_bandwidth_sensors": "Bandwidth usage sensors for network clients"
+        },
+        "description": "Configure statistics sensors",
+        "title": "UniFi options 3/3"
+      }
     }
-}
\ No newline at end of file
+  },
+  "error": {
+    "unknown_client_mac": "No client available in UniFi on that MAC address"
+  }
+}
diff --git a/homeassistant/components/upnp/strings.json b/homeassistant/components/upnp/strings.json
index 6c5b2fb2bb2..628c0ea5a00 100644
--- a/homeassistant/components/upnp/strings.json
+++ b/homeassistant/components/upnp/strings.json
@@ -1,30 +1,30 @@
 {
-    "config": {
+  "config": {
+    "title": "UPnP/IGD",
+    "step": {
+      "init": {
+        "title": "UPnP/IGD"
+      },
+      "confirm": {
         "title": "UPnP/IGD",
-        "step": {
-            "init": {
-                "title": "UPnP/IGD"
-            },
-            "confirm": {
-                "title": "UPnP/IGD",
-                "description": "Do you want to set up UPnP/IGD?"
-            },
-            "user": {
-                "title": "Configuration options for the UPnP/IGD",
-                "data": {
-                    "enable_port_mapping": "Enable port mapping for Home Assistant",
-                    "enable_sensors": "Add traffic sensors",
-                    "igd": "UPnP/IGD"
-                }
-            }
-        },
-        "abort": {
-            "already_configured": "UPnP/IGD is already configured",
-            "incomplete_device": "Ignoring incomplete UPnP device",
-            "no_devices_discovered": "No UPnP/IGDs discovered",
-            "no_devices_found": "No UPnP/IGD devices found on the network.",
-            "no_sensors_or_port_mapping": "Enable at least sensors or port mapping",
-            "single_instance_allowed": "Only a single configuration of UPnP/IGD is necessary."
+        "description": "Do you want to set up UPnP/IGD?"
+      },
+      "user": {
+        "title": "Configuration options for the UPnP/IGD",
+        "data": {
+          "enable_port_mapping": "Enable port mapping for Home Assistant",
+          "enable_sensors": "Add traffic sensors",
+          "igd": "UPnP/IGD"
         }
+      }
+    },
+    "abort": {
+      "already_configured": "UPnP/IGD is already configured",
+      "incomplete_device": "Ignoring incomplete UPnP device",
+      "no_devices_discovered": "No UPnP/IGDs discovered",
+      "no_devices_found": "No UPnP/IGD devices found on the network.",
+      "no_sensors_or_port_mapping": "Enable at least sensors or port mapping",
+      "single_instance_allowed": "Only a single configuration of UPnP/IGD is necessary."
     }
-}
\ No newline at end of file
+  }
+}
diff --git a/homeassistant/components/vacuum/services.yaml b/homeassistant/components/vacuum/services.yaml
index 7db70c5cd51..3287eafe7f2 100644
--- a/homeassistant/components/vacuum/services.yaml
+++ b/homeassistant/components/vacuum/services.yaml
@@ -5,73 +5,73 @@ turn_on:
   fields:
     entity_id:
       description: Name of the vacuum entity.
-      example: 'vacuum.xiaomi_vacuum_cleaner'
+      example: "vacuum.xiaomi_vacuum_cleaner"
 
 turn_off:
   description: Stop the current cleaning task and return to home.
   fields:
     entity_id:
       description: Name of the vacuum entity.
-      example: 'vacuum.xiaomi_vacuum_cleaner'
+      example: "vacuum.xiaomi_vacuum_cleaner"
 
 stop:
   description: Stop the current cleaning task.
   fields:
     entity_id:
       description: Name of the vacuum entity.
-      example: 'vacuum.xiaomi_vacuum_cleaner'
+      example: "vacuum.xiaomi_vacuum_cleaner"
 
 locate:
   description: Locate the vacuum cleaner robot.
   fields:
     entity_id:
       description: Name of the vacuum entity.
-      example: 'vacuum.xiaomi_vacuum_cleaner'
+      example: "vacuum.xiaomi_vacuum_cleaner"
 
 start_pause:
   description: Start, pause, or resume the cleaning task.
   fields:
     entity_id:
       description: Name of the vacuum entity.
-      example: 'vacuum.xiaomi_vacuum_cleaner'
+      example: "vacuum.xiaomi_vacuum_cleaner"
 
 start:
   description: Start or resume the cleaning task.
   fields:
     entity_id:
       description: Name of the vacuum entity.
-      example: 'vacuum.xiaomi_vacuum_cleaner'
+      example: "vacuum.xiaomi_vacuum_cleaner"
 
 pause:
   description: Pause the cleaning task.
   fields:
     entity_id:
       description: Name of the vacuum entity.
-      example: 'vacuum.xiaomi_vacuum_cleaner'
+      example: "vacuum.xiaomi_vacuum_cleaner"
 
 return_to_base:
   description: Tell the vacuum cleaner to return to its dock.
   fields:
     entity_id:
       description: Name of the vacuum entity.
-      example: 'vacuum.xiaomi_vacuum_cleaner'
+      example: "vacuum.xiaomi_vacuum_cleaner"
 
 clean_spot:
   description: Tell the vacuum cleaner to do a spot clean-up.
   fields:
     entity_id:
       description: Name of the vacuum entity.
-      example: 'vacuum.xiaomi_vacuum_cleaner'
+      example: "vacuum.xiaomi_vacuum_cleaner"
 
 send_command:
   description: Send a raw command to the vacuum cleaner.
   fields:
     entity_id:
       description: Name of the vacuum entity.
-      example: 'vacuum.xiaomi_vacuum_cleaner'
+      example: "vacuum.xiaomi_vacuum_cleaner"
     command:
       description: Command to execute.
-      example: 'set_dnd_timer'
+      example: "set_dnd_timer"
     params:
       description: Parameters for the command.
       example: '{ "key": "value" }'
@@ -81,7 +81,7 @@ set_fan_speed:
   fields:
     entity_id:
       description: Name of the vacuum entity.
-      example: 'vacuum.xiaomi_vacuum_cleaner'
+      example: "vacuum.xiaomi_vacuum_cleaner"
     fan_speed:
       description: Platform dependent vacuum cleaner fan speed, with speed steps, like 'medium' or by percentage, between 0 and 100.
-      example: 'low'
+      example: "low"
diff --git a/homeassistant/components/vera/manifest.json b/homeassistant/components/vera/manifest.json
index 90f208ba915..22a5da19d8c 100644
--- a/homeassistant/components/vera/manifest.json
+++ b/homeassistant/components/vera/manifest.json
@@ -4,7 +4,5 @@
   "config_flow": true,
   "documentation": "https://www.home-assistant.io/integrations/vera",
   "requirements": ["pyvera==0.3.7"],
-  "codeowners": [
-    "@vangorra"
-  ]
+  "codeowners": ["@vangorra"]
 }
diff --git a/homeassistant/components/verisure/services.yaml b/homeassistant/components/verisure/services.yaml
index 405f0c5d57d..885b8597549 100644
--- a/homeassistant/components/verisure/services.yaml
+++ b/homeassistant/components/verisure/services.yaml
@@ -1,5 +1,6 @@
 capture_smartcam:
   description: Capture a new image from a smartcam.
   fields:
-    device_serial: {description: The serial number of the smartcam you want to capture
-        an image from., example: 2DEU AT5Z}
+    device_serial:
+      description: The serial number of the smartcam you want to capture an image from.
+      example: 2DEU AT5Z
diff --git a/homeassistant/components/vesync/strings.json b/homeassistant/components/vesync/strings.json
index 2d808e85bea..4e656d35563 100644
--- a/homeassistant/components/vesync/strings.json
+++ b/homeassistant/components/vesync/strings.json
@@ -1,20 +1,20 @@
 {
-    "config": {
-        "title": "VeSync",
-        "step": {
-            "user": {
-                "title": "Enter Username and Password",
-                "data": {
-                    "username": "Email Address",
-                    "password": "Password"
-                }
-            }
-        },
-        "error": {
-            "invalid_login": "Invalid username or password"
-        },
-        "abort": {
-            "already_setup": "Only one Vesync instance is allowed"
+  "config": {
+    "title": "VeSync",
+    "step": {
+      "user": {
+        "title": "Enter Username and Password",
+        "data": {
+          "username": "Email Address",
+          "password": "Password"
         }
+      }
+    },
+    "error": {
+      "invalid_login": "Invalid username or password"
+    },
+    "abort": {
+      "already_setup": "Only one Vesync instance is allowed"
     }
-}
\ No newline at end of file
+  }
+}
diff --git a/homeassistant/components/vizio/strings.json b/homeassistant/components/vizio/strings.json
index b6f6f53cf79..1ddcadb4390 100644
--- a/homeassistant/components/vizio/strings.json
+++ b/homeassistant/components/vizio/strings.json
@@ -1,56 +1,56 @@
 {
-    "config": {
-        "title": "Vizio SmartCast",
-        "step": {
-            "user": {
-                "title": "Setup Vizio SmartCast Device",
-                "description": "An Access Token is only needed for TVs. If you are configuring a TV and do not have an Access Token yet, leave it blank to go through a pairing process.",
-                "data": {
-                    "name": "Name",
-                    "host": "<Host/IP>:<Port>",
-                    "device_class": "Device Type",
-                    "access_token": "Access Token"
-                }
-            },
-            "pair_tv": {
-                "title": "Complete Pairing Process",
-                "description": "Your TV should be displaying a code. Enter that code into the form and then continue to the next step to complete the pairing.",
-                "data": {
-                    "pin": "PIN"
-                }
-            },
-            "pairing_complete": {
-                "title": "Pairing Complete",
-                "description": "Your Vizio SmartCast device is now connected to Home Assistant."
-            },
-            "pairing_complete_import": {
-                "title": "Pairing Complete",
-                "description": "Your Vizio SmartCast TV is now connected to Home Assistant.\n\nYour Access Token is '**{access_token}**'."
-            }
-        },
-        "error": {
-            "host_exists": "Vizio device with specified host already configured.",
-            "name_exists": "Vizio device with specified name already configured.",
-            "complete_pairing failed": "Unable to complete pairing. Ensure the PIN you provided is correct and the TV is still powered and connected to the network before resubmitting.",
-            "cant_connect": "Could not connect to the device. [Review the docs](https://www.home-assistant.io/integrations/vizio/) and re-verify that:\n- The device is powered on\n- The device is connected to the network\n- The values you filled in are accurate\nbefore attempting to resubmit."
-        },
-        "abort": {
-            "already_setup": "This entry has already been setup.",
-            "updated_entry": "This entry has already been setup but the name, apps, and/or options defined in the configuration do not match the previously imported configuration, so the configuration entry has been updated accordingly."
+  "config": {
+    "title": "Vizio SmartCast",
+    "step": {
+      "user": {
+        "title": "Setup Vizio SmartCast Device",
+        "description": "An Access Token is only needed for TVs. If you are configuring a TV and do not have an Access Token yet, leave it blank to go through a pairing process.",
+        "data": {
+          "name": "Name",
+          "host": "<Host/IP>:<Port>",
+          "device_class": "Device Type",
+          "access_token": "Access Token"
         }
+      },
+      "pair_tv": {
+        "title": "Complete Pairing Process",
+        "description": "Your TV should be displaying a code. Enter that code into the form and then continue to the next step to complete the pairing.",
+        "data": {
+          "pin": "PIN"
+        }
+      },
+      "pairing_complete": {
+        "title": "Pairing Complete",
+        "description": "Your Vizio SmartCast device is now connected to Home Assistant."
+      },
+      "pairing_complete_import": {
+        "title": "Pairing Complete",
+        "description": "Your Vizio SmartCast TV is now connected to Home Assistant.\n\nYour Access Token is '**{access_token}**'."
+      }
+    },
+    "error": {
+      "host_exists": "Vizio device with specified host already configured.",
+      "name_exists": "Vizio device with specified name already configured.",
+      "complete_pairing failed": "Unable to complete pairing. Ensure the PIN you provided is correct and the TV is still powered and connected to the network before resubmitting.",
+      "cant_connect": "Could not connect to the device. [Review the docs](https://www.home-assistant.io/integrations/vizio/) and re-verify that:\n- The device is powered on\n- The device is connected to the network\n- The values you filled in are accurate\nbefore attempting to resubmit."
     },
-    "options": {
+    "abort": {
+      "already_setup": "This entry has already been setup.",
+      "updated_entry": "This entry has already been setup but the name, apps, and/or options defined in the configuration do not match the previously imported configuration, so the configuration entry has been updated accordingly."
+    }
+  },
+  "options": {
+    "title": "Update Vizo SmartCast Options",
+    "step": {
+      "init": {
         "title": "Update Vizo SmartCast Options",
-        "step": {
-            "init": {
-                "title": "Update Vizo SmartCast Options",
-                "description": "If you have a Smart TV, you can optionally filter your source list by choosing which apps to include or exclude in your source list.",
-                "data": {
-                    "volume_step": "Volume Step Size",
-                    "include_or_exclude": "Include or Exclude Apps?",
-                    "apps_to_include_or_exclude": "Apps to Include or Exclude"
-                }
-            }
+        "description": "If you have a Smart TV, you can optionally filter your source list by choosing which apps to include or exclude in your source list.",
+        "data": {
+          "volume_step": "Volume Step Size",
+          "include_or_exclude": "Include or Exclude Apps?",
+          "apps_to_include_or_exclude": "Apps to Include or Exclude"
         }
+      }
     }
+  }
 }
diff --git a/homeassistant/components/wake_on_lan/services.yaml b/homeassistant/components/wake_on_lan/services.yaml
index e20dd64396f..915dd2bce96 100644
--- a/homeassistant/components/wake_on_lan/services.yaml
+++ b/homeassistant/components/wake_on_lan/services.yaml
@@ -1,6 +1,9 @@
 send_magic_packet:
   description: Send a 'magic packet' to wake up a device with 'Wake-On-LAN' capabilities.
   fields:
-    broadcast_address: {description: Optional broadcast IP where to send the magic
-        packet., example: 192.168.255.255}
-    mac: {description: MAC address of the device to wake up., example: 'aa:bb:cc:dd:ee:ff'}
+    broadcast_address:
+      description: Optional broadcast IP where to send the magic packet.
+      example: 192.168.255.255
+    mac:
+      description: MAC address of the device to wake up.
+      example: "aa:bb:cc:dd:ee:ff"
diff --git a/homeassistant/components/water_heater/services.yaml b/homeassistant/components/water_heater/services.yaml
index 7a26e5bc0d4..8aee796b9cb 100644
--- a/homeassistant/components/water_heater/services.yaml
+++ b/homeassistant/components/water_heater/services.yaml
@@ -5,7 +5,7 @@ set_away_mode:
   fields:
     entity_id:
       description: Name(s) of entities to change.
-      example: 'water_heater.water_heater'
+      example: "water_heater.water_heater"
     away_mode:
       description: New value of away mode.
       example: true
@@ -15,7 +15,7 @@ set_temperature:
   fields:
     entity_id:
       description: Name(s) of entities to change.
-      example: 'water_heater.water_heater'
+      example: "water_heater.water_heater"
     temperature:
       description: New target temperature for water heater.
       example: 25
@@ -25,7 +25,7 @@ set_operation_mode:
   fields:
     entity_id:
       description: Name(s) of entities to change.
-      example: 'water_heater.water_heater'
+      example: "water_heater.water_heater"
     operation_mode:
       description: New value of operation mode.
       example: eco
diff --git a/homeassistant/components/wemo/services.yaml b/homeassistant/components/wemo/services.yaml
index c2415265c62..c47d666f5c1 100644
--- a/homeassistant/components/wemo/services.yaml
+++ b/homeassistant/components/wemo/services.yaml
@@ -3,7 +3,7 @@ set_humidity:
   fields:
     entity_id:
       description: Names of the WeMo humidifier entities (1 or more entity_ids are required).
-      example: 'fan.wemo_humidifier'
+      example: "fan.wemo_humidifier"
     target_humidity:
       description: Target humidity. This is a float value between 0 and 100, but will be mapped to the humidity levels that WeMo humidifiers support (45, 50, 55, 60, and 100/Max) by rounding the value down to the nearest supported value.
       example: 56.5
@@ -13,4 +13,4 @@ reset_filter_life:
   fields:
     entity_id:
       description: Names of the WeMo humidifier entities (1 or more entity_ids are required).
-      example: 'fan.wemo_humidifier'
+      example: "fan.wemo_humidifier"
diff --git a/homeassistant/components/wunderlist/services.yaml b/homeassistant/components/wunderlist/services.yaml
index a3b097c5d35..1b824e43843 100644
--- a/homeassistant/components/wunderlist/services.yaml
+++ b/homeassistant/components/wunderlist/services.yaml
@@ -6,10 +6,10 @@ create_task:
   fields:
     list_name:
       description: name of the new list where the task will be created
-      example: 'Shopping list'
+      example: "Shopping list"
     name:
       description: name of the new task
-      example: 'Buy 5 bottles of beer'
+      example: "Buy 5 bottles of beer"
     starred:
       description: Create the task as starred [Optional]
       example: true
diff --git a/homeassistant/components/xiaomi_aqara/services.yaml b/homeassistant/components/xiaomi_aqara/services.yaml
index 0c5b89dc2cb..9d8c87e5863 100644
--- a/homeassistant/components/xiaomi_aqara/services.yaml
+++ b/homeassistant/components/xiaomi_aqara/services.yaml
@@ -1,22 +1,39 @@
 add_device:
-  description: Enables the join permission of the Xiaomi Aqara Gateway for 30 seconds.
+  description:
+    Enables the join permission of the Xiaomi Aqara Gateway for 30 seconds.
     A new device can be added afterwards by pressing the pairing button once.
   fields:
-    gw_mac: {description: MAC address of the Xiaomi Aqara Gateway., example: 34ce00880088}
+    gw_mac:
+      description: MAC address of the Xiaomi Aqara Gateway.
+      example: 34ce00880088
 play_ringtone:
-  description: Play a specific ringtone. The version of the gateway firmware must
+  description:
+    Play a specific ringtone. The version of the gateway firmware must
     be 1.4.1_145 at least.
   fields:
-    gw_mac: {description: MAC address of the Xiaomi Aqara Gateway., example: 34ce00880088}
-    ringtone_id: {description: One of the allowed ringtone ids., example: 8}
-    ringtone_vol: {description: The volume in percent., example: 30}
+    gw_mac:
+      description: MAC address of the Xiaomi Aqara Gateway.
+      example: 34ce00880088
+    ringtone_id:
+      description: One of the allowed ringtone ids.
+      example: 8
+    ringtone_vol:
+      description: The volume in percent.
+      example: 30
 remove_device:
-  description: Removes a specific device. The removal is required if a device shall
+  description:
+    Removes a specific device. The removal is required if a device shall
     be paired with another gateway.
   fields:
-    device_id: {description: Hardware address of the device to remove., example: 158d0000000000}
-    gw_mac: {description: MAC address of the Xiaomi Aqara Gateway., example: 34ce00880088}
+    device_id:
+      description: Hardware address of the device to remove.
+      example: 158d0000000000
+    gw_mac:
+      description: MAC address of the Xiaomi Aqara Gateway.
+      example: 34ce00880088
 stop_ringtone:
   description: Stops a playing ringtone immediately.
   fields:
-    gw_mac: {description: MAC address of the Xiaomi Aqara Gateway., example: 34ce00880088}
+    gw_mac:
+      description: MAC address of the Xiaomi Aqara Gateway.
+      example: 34ce00880088
diff --git a/homeassistant/components/yeelight/services.yaml b/homeassistant/components/yeelight/services.yaml
index 52106a42063..5e7f2419f16 100644
--- a/homeassistant/components/yeelight/services.yaml
+++ b/homeassistant/components/yeelight/services.yaml
@@ -3,19 +3,19 @@ set_mode:
   fields:
     entity_id:
       description: Name of the light entity.
-      example: 'light.yeelight'
+      example: "light.yeelight"
     mode:
       description: Operation mode. Valid values are 'last', 'normal', 'rgb', 'hsv', 'color_flow', 'moonlight'.
-      example: 'moonlight'
+      example: "moonlight"
 set_color_scene:
   description: Changes the light to the specified RGB color and brightness. If the light is off, it will be turned on.
   fields:
     entity_id:
       description: Name of the light entity.
-      example: 'light.yeelight'
+      example: "light.yeelight"
     rgb_color:
       description: Color for the light in RGB-format.
-      example: '[255, 100, 100]'
+      example: "[255, 100, 100]"
     brightness:
       description: The brightness value to set (1-100).
       example: 50
@@ -24,10 +24,10 @@ set_hsv_scene:
   fields:
     entity_id:
       description: Name of the light entity.
-      example: 'light.yeelight'
+      example: "light.yeelight"
     hs_color:
       description: Color for the light in hue/sat format. Hue is 0-359 and Sat is 0-100.
-      example: '[300, 70]'
+      example: "[300, 70]"
     brightness:
       description: The brightness value to set (1-100).
       example: 50
@@ -36,7 +36,7 @@ set_color_temp_scene:
   fields:
     entity_id:
       description: Name of the light entity.
-      example: 'light.yeelight'
+      example: "light.yeelight"
     kelvin:
       description: Color temperature for the light in Kelvin.
       example: 4000
@@ -48,13 +48,13 @@ set_color_flow_scene:
   fields:
     entity_id:
       description: Name of the light entity.
-      example: 'light.yeelight'
+      example: "light.yeelight"
     count:
       description: The number of times to run this flow (0 to run forever).
       example: 0
     action:
       description: The action to take after the flow stops. Can be 'recover', 'stay', 'off'. (default 'recover')
-      example: 'stay'
+      example: "stay"
     transitions:
       description: Array of transitions, for desired effect. Examples https://yeelight.readthedocs.io/en/stable/flow.html
       example: '[{ "TemperatureTransition": [1900, 1000, 80] }, { "TemperatureTransition": [1900, 1000, 10] }]'
@@ -63,7 +63,7 @@ set_auto_delay_off_scene:
   fields:
     entity_id:
       description: Name of the light entity.
-      example: 'light.yeelight'
+      example: "light.yeelight"
     minutes:
       description: The minutes to wait before automatically turning the light off.
       example: 5
@@ -75,13 +75,13 @@ start_flow:
   fields:
     entity_id:
       description: Name of the light entity.
-      example: 'light.yeelight'
+      example: "light.yeelight"
     count:
       description: The number of times to run this flow (0 to run forever).
       example: 0
     action:
       description: The action to take after the flow stops. Can be 'recover', 'stay', 'off'. (default 'recover')
-      example: 'stay'
+      example: "stay"
     transitions:
       description: Array of transitions, for desired effect. Examples https://yeelight.readthedocs.io/en/stable/flow.html
       example: '[{ "TemperatureTransition": [1900, 1000, 80] }, { "TemperatureTransition": [1900, 1000, 10] }]'
diff --git a/homeassistant/components/zha/services.yaml b/homeassistant/components/zha/services.yaml
index 3e38d6982f0..971321fbfd2 100644
--- a/homeassistant/components/zha/services.yaml
+++ b/homeassistant/components/zha/services.yaml
@@ -78,7 +78,7 @@ issue_zigbee_cluster_command:
       example: "server"
     args:
       description: args to pass to the command
-      example: '[arg1, arg2, argN]'
+      example: "[arg1, arg2, argN]"
     manufacturer:
       description: manufacturer code
       example: 0x00FC
@@ -98,7 +98,7 @@ issue_zigbee_group_command:
       example: 0
     args:
       description: args to pass to the command
-      example: '[arg1, arg2, argN]'
+      example: "[arg1, arg2, argN]"
     manufacturer:
       description: manufacturer code
       example: 0x00FC
diff --git a/homeassistant/components/zwave/strings.json b/homeassistant/components/zwave/strings.json
index 0ac55e46791..ddb03a135b9 100644
--- a/homeassistant/components/zwave/strings.json
+++ b/homeassistant/components/zwave/strings.json
@@ -1,22 +1,22 @@
 {
-    "config": {
-        "title": "Z-Wave",
-        "step": {
-            "user": {
-                "title": "Set up Z-Wave",
-                "description": "See https://www.home-assistant.io/docs/z-wave/installation/ for information on the configuration variables",
-                "data": {
-                    "usb_path": "USB Path",
-                    "network_key": "Network Key (leave blank to auto-generate)"
-                }
-            }
-        },
-        "error": {
-            "option_error": "Z-Wave validation failed. Is the path to the USB stick correct?"
-        },
-        "abort": {
-            "already_configured": "Z-Wave is already configured",
-            "one_instance_only": "Component only supports one Z-Wave instance"
+  "config": {
+    "title": "Z-Wave",
+    "step": {
+      "user": {
+        "title": "Set up Z-Wave",
+        "description": "See https://www.home-assistant.io/docs/z-wave/installation/ for information on the configuration variables",
+        "data": {
+          "usb_path": "USB Path",
+          "network_key": "Network Key (leave blank to auto-generate)"
         }
+      }
+    },
+    "error": {
+      "option_error": "Z-Wave validation failed. Is the path to the USB stick correct?"
+    },
+    "abort": {
+      "already_configured": "Z-Wave is already configured",
+      "one_instance_only": "Component only supports one Z-Wave instance"
     }
-}
\ No newline at end of file
+  }
+}
diff --git a/script/gen_requirements_all.py b/script/gen_requirements_all.py
index 40fb1ad8b49..b6f357d4cda 100755
--- a/script/gen_requirements_all.py
+++ b/script/gen_requirements_all.py
@@ -68,7 +68,7 @@ enum34==1000000000.0.0
 pycrypto==1000000000.0.0
 """
 
-IGNORE_PRE_COMMIT_HOOK_ID = ("check-json", "no-commit-to-branch")
+IGNORE_PRE_COMMIT_HOOK_ID = ("check-json", "no-commit-to-branch", "prettier")
 
 
 def has_tests(module: str):
-- 
GitLab