Skip to content

Commit

Permalink
doc: Update README (configuration/package/appdaemon/architecture)
Browse files Browse the repository at this point in the history
  • Loading branch information
XavierBerger committed Sep 19, 2023
1 parent 1629122 commit 0de6ac2
Show file tree
Hide file tree
Showing 5 changed files with 99 additions and 35 deletions.
47 changes: 12 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,22 @@
<a href="LICENSE">![](images/license.svg)</a>
<a href="https://xavierberger.github.io/homeassistant-config/">![](https://xavierberger.github.io/homeassistant-config/pylint.svg)</a>
<a href="https://xavierberger.github.io/homeassistant-config/">![](https://xavierberger.github.io/homeassistant-config/pytest.svg)</a>
<a href="https://xavierberger.github.io/homeassistant-config/">![](https://xavierberger.github.io/homeassistant-config/coverage.svg)</a>

# Home Assistant Config

This repository is gathering the part of home assistant configuration and appdaemon script I want to share with the community.


## Appdaemon applications

[apps.yaml](appdaemon/apps.yaml) is showing how I configure the application listed bellow.

### Multiple shopping list manager

[Shopping list](https://www.home-assistant.io/integrations/shopping_list/) integration is only able to mange one shopping list. This application add teh capability the manage multiple shopping lists. Shopping list can be selected and updated indpendently and notification can be send when entering in a shop zone. One list can be associated to multiple zone.
This repository is gathering the part of home assistant configuration and appdaemon script I want to share with the community. The code available in this directory is under MIT License. <a href="LICENSE">![](images/license.svg)</a>

![demo](images/MultipleShoppingList_demo2.gif)
## Home automation architecture

Comment on the to of the script and [post on HomeAssitant forum](https://community.home-assistant.io/t/an-appdaemon-solution-for-multiple-shopping-list/608858?u=xavb) is explaining how to install and configure it.
My installation is composed by, solar panels, a weather station, an automover, ... all managed by Home Assistant.
The architecture of my installation is detailed into [**Architecture page**](architecture/README.md).

Pour les francophones, un [sujet sur le forum HACF](https://forum.hacf.fr/t/liste-de-courses-multiples-multiple-shopping-lists/27450) explique comment configurer cette application.

### Garage Door

This application is designed to raise and alarm is the garage door remain open when the night is coming or if door has been open by night and not closed within 15 minutes.

This automation required a sensor telling the open state of the door. In my case, I use a ZigBee sensor.

### Automower

This application is designed to perform and advanced management of a Husqvarna Automower.
My weather station is able to detect rain. When rain occurs, this automation will ask automower to park. When rain as stop and lawn can be considered as dry, the application sends the order to restart mowing.
Thsi application is also managing the end of mowing session to ensure that session will not end into the next hour
## Appdaemon applications

### Notifier
<a href="https://xavierberger.github.io/homeassistant-config/">![](https://xavierberger.github.io/homeassistant-config/pylint.svg)</a>
<a href="https://xavierberger.github.io/homeassistant-config/">![](https://xavierberger.github.io/homeassistant-config/pytest.svg)</a>
<a href="https://xavierberger.github.io/homeassistant-config/">![](https://xavierberger.github.io/homeassistant-config/coverage.svg)</a>

[Notifier](https://github.com/jlpouffier/home-assistant-config/blob/master/appdaemon/apps/notifier.py) is a script originally written by jlpouffier. The version provided in this directory has been slightly updated for optimisation. I also created a test script to be sure that modification I add doesn't change to original behavior.
AppDaemon directory is gathering the application I use to manage automower, garage door, shopping list, ... All details of theses applications are available into a [**Appdaemon** page](appdaemon/README.md).

### Appdaemon testing
A specific effort has been made on test. Detail of tests are explained into [**Appdaemon Test** page](appdaemon/test/README.md). The result of tests are listed in badges bellow:

[Appdaemon-testing](https://github.com/nickw444/appdaemon-testing) is a framework designed to create unit test of appdaemon scripts. Even if the original version doesn't provides all the tools I need to fully test my scripts, I dicide to use it since it is easy to understand and easy to update.
## Configuration

The version provided into this repository is an improved version with additionnal tests functions.
Configuration is organized into packages. Detail of tests are explained into [**Packages** page](packages/README.md).
43 changes: 43 additions & 0 deletions appdaemon/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<a href="LICENSE">![](images/license.svg)</a>
<a href="https://xavierberger.github.io/homeassistant-config/">![](https://xavierberger.github.io/homeassistant-config/pylint.svg)</a>
<a href="https://xavierberger.github.io/homeassistant-config/">![](https://xavierberger.github.io/homeassistant-config/pytest.svg)</a>
<a href="https://xavierberger.github.io/homeassistant-config/">![](https://xavierberger.github.io/homeassistant-config/coverage.svg)</a>

# Appdaemon applications

[apps.yaml](appdaemon/apps.yaml) is showing how I configure the application listed bellow.

## Multiple shopping list manager

[Shopping list](https://www.home-assistant.io/integrations/shopping_list/) integration is only able to mange one shopping list. This application add the capability the manage multiple shopping lists. Shopping list can be selected and updated independently and notification can be send when entering in a shop zone. One list can be associated to multiple zone.

![demo](../images/MultipleShoppingList_demo2.gif)

Comment on the to of the script and [post on HomeAssitant forum](https://community.home-assistant.io/t/an-appdaemon-solution-for-multiple-shopping-list/608858?u=xavb) is explaining how to install and configure it.

Pour les francophones, un [sujet sur le forum HACF](https://forum.hacf.fr/t/liste-de-courses-multiples-multiple-shopping-lists/27450) explique comment configurer cette application.

## Garage Door

This application is designed to raise and alarm is the garage door remain open when the night is coming or if door has been open by night and not closed within 15 minutes.

This automation required a sensor telling the open state of the door. In my case, I use a ZigBee sensor.

## Automower

This application is designed to perform and advanced management of a Husqvarna Automower.
My weather station is able to detect rain. When rain occurs, this automation will ask automower to park. When rain as stop and lawn can be considered as dry, the application sends the order to restart mowing.
This application is also managing the end of mowing session to ensure that session will not end into the next hour.
When importat actions are performed (Ex: Application starts, Park because of rain, Application activated or deactivated due to a command 'Park until further notice...'), a notification is send to telegram. Telegram conversation allow to easily follow the history of mowing.

This application is required a binary sensor the store park reason. See [this page](../packages/README.md#nonoyaml) for detail of configuration.

## Notifier

[Notifier](https://github.com/jlpouffier/home-assistant-config/blob/master/appdaemon/apps/notifier.py) is a script originally written by jlpouffier. The version provided in this directory has been slightly updated for optimisation. I also created a test script to be sure that modification I add doesn't change to original behavior.

## Appdaemon testing

[Appdaemon-testing](https://github.com/nickw444/appdaemon-testing) is a framework designed to create unit test of appdaemon scripts. Even if the original version doesn't provides all the tools I need to fully test my scripts, I dicide to use it since it is easy to understand and easy to update.

The version provided into this repository is an improved version with additionnal tests functions.
4 changes: 4 additions & 0 deletions architecture/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Home automation architecture

![](../images/install.drawio.png)

Binary file added images/install.drawio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
40 changes: 40 additions & 0 deletions packages/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Package configuration
```
config
├── addons
│ ├── proximity.yaml
│ ├── sun.yaml
│ └── telegram.yaml
└── sensors
├── home_occupation.yaml
├── meteo.yaml
└── nono.yaml
```

## Addons

### proximity.yaml

[Proximity](https://www.home-assistant.io/integrations/proximity/) configuration used by [Notifier](../appdaemon/README.md#notifier).

### sun.yaml

Activate [Sun](https://www.home-assistant.io/integrations/sun/) integration used by [Automower](../appdaemon/README.md#automower) and [Garage Door](../appdaemon/README.md#garage-door) appdaemon applications to have information about sun.

### telegram.yaml

[Telegram](https://www.home-assistant.io/integrations/telegram/) configuration used by [Automower](../appdaemon/README.md#automower) appdaemon application to send notifications.

## Sensors

### home_occupation.yaml

Binary sensor `home_occupied` defining if home is currently occupied or not. This sensor is used by [Notifier](../appdaemon/README.md#notifier).

### meteo.yaml

Add various sensor to have history of rain. Some of these sensors are uses by [Automower](../appdaemon/README.md#automower) appdaemon application to determine is lawn has to be considered as dry or not.

### nono.yaml

Binary sensor `parked_because_of_rain` used by [Automower](../appdaemon/README.md#automower) appdaemon application to make state of park reason persistent.

0 comments on commit 0de6ac2

Please sign in to comment.