From 9e5c5c827cf2ef67c76bdc2a02019cb286c768e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patryk=20Ga=C5=82czy=C5=84ski?= Date: Wed, 4 Apr 2018 09:21:02 +0200 Subject: [PATCH] Extend development 101 (#5099) * extend development 101 with configuration.yaml entry and runtime example. * being more descriptive, change quote marks to follow standards * Minor changes --- source/developers/development_101.markdown | 19 ++++++++++++++++++ .../screenshots/hello-world-state-card.png | Bin 0 -> 22208 bytes 2 files changed, 19 insertions(+) create mode 100644 source/images/screenshots/hello-world-state-card.png diff --git a/source/developers/development_101.markdown b/source/developers/development_101.markdown index 851888479f2..5db0cdf1287 100644 --- a/source/developers/development_101.markdown +++ b/source/developers/development_101.markdown @@ -35,4 +35,23 @@ def setup(hass, config): return True ``` +Last step is to add `hello_world:` entry to your `configuration.yaml` file. + +```yaml +# Hello World component +hello_world: +``` + +After running `hass`, we should see log entries stating that `hello_world` component was loaded. What is more, additional state card shall appear within main panel. + +```log +2018-04-03 21:44:20 INFO (MainThread) [homeassistant.loader] Loaded hello_world from custom_components.hello_world +2018-04-03 21:44:20 INFO (MainThread) [homeassistant.setup] Setting up hello_world +``` + +

+ +State card showing that Hello World component is working as intended. +

+ [architecture]: /developers/architecture/ diff --git a/source/images/screenshots/hello-world-state-card.png b/source/images/screenshots/hello-world-state-card.png new file mode 100644 index 0000000000000000000000000000000000000000..9b1f5cbc0ab4830d57d502a38dba68b1c43adc7e GIT binary patch literal 22208 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 literal 0 HcmV?d00001