My Garden Irrigation

You need to create it as a package. See the these docs on how to setup packages

Thanks for the reply!

So to elaborate a little, I have a single packages folder as per the docs already
(packages: !include_dir_named packages) as I am currently using a few packages… Do i just copy the yaml’s from “garden_v2” to the packages folders?

OR

Do I have to have the packages subfolder setup
( packages: !include_dir_merge_named packages/), and copy the folder “garden_v2” to the packages folder?

Thanks in advance

Sorry, just saw it was answered higher up :slight_smile:

@klogg: you did an amazing work on this - much appreciated! Since days I am fiddling around to get it working, and localized it to German. Still some grey hairs not being able to set the name of irrigation cycle 3 though. Cycles 1-2 have a starttime which also acts as a button to set the name of the cycle. Cycle 3 does not have it… how would I set it?


Any hints on how to do it would be great! :slight_smile:

Excellent point!!

That is a complete oversight on my part, sorry. I will make some changes later today. In the meantime the cycle name is stored in input_text.irrigation_cycle3_name so you can just change it through the Dev Tools, States page.

I plan to upload an amended version today. It is mostly containing a few small cosmetic tweaks and some slight refinements to the Lovelace code. Plus of course a fix for the omission found by @Schimmelreiter!

It also reorganises some of the Lovelace files into folders to make it more easy to see what is going on (IMO :slight_smile: ). So if you have already taken a copy of the package as it is now and want the latest version please bear that in mind if you have made any of your own customisations.

1 Like

Excellent! Thanks for the tip - I am still a newbie to HA and was not aware of being able to change input_text in the dev tools… :wink:

1 Like

I have just uploaded a the latest version of Version 2 (still considered a preview).
Its new home is https://github.com/kloggy/HA-Irrigation-Version2

For anyone interested in Version 1 I have uploaded the version I am currently using which includes all fixes and updates I have made. Its new home is: https://github.com/kloggy/HA-Irrigation-Version1

The old repository is still there but should be considered an archive and at some point in the future I will probably delete it.

@klogg: one more thing to add: for configuring the user 1 and user 2 to obtain notifications, there are two steps missing in the config files: in the package “garden_v2” the file garden_globals.yaml has to get extended at the end of the section by the following lines…:

#================
#=== Input Texts
#================
input_text:
.
.
.
  notifications_user1_name:
    name: User Name1
    min: 0
    max: 10

  notifications_user2_name:
    name: User Name2
    min: 0
    max: 10

I hope this is of any help for others?! Then it is possible to set those settings in the UI. Otherwise it shows “entities missing”…

Yes you’re (half) right. This needs to be added to the readme file. I can’t won’t add this to the package as it is something I use throughout my config so whilst as you say those input texts do need to be defined somewhere, they are strictly speaking not part of the irrigation system.

But yes, I should add it to the readme.

@klogg This is some really amazing work. I’m currently on 108.8 and having a real hard time getting lovelace to work properly. This is how i specified to include the custom card modules

lovelace:
  mode: yaml
#
# Add-On for lovelace
#
  resources:
    - url: /hacsfiles/stack-in-card/stack-in-card.js
      type: module
    - url: /hacsfiles/lovelace-card-mod/card-mod.js
      type: module
    - url: /hacsfiles/button-card/button-card.js
      type: module
    - url: /hacsfiles/config-template-card/config-template-card.js
      type: module
    - url: /hacsfiles/lovelace-fold-entity-row/fold-entity-row.js
      type: module
    - url: /hacsfiles/mini-graph-card/mini-graph-card-bundle.js
      type: module
    - url: /hacsfiles/lovelace-multiple-entity-row/multiple-entity-row.js
      type: module
    - url: /hacsfiles/vertical-stack-in-card/vertical-stack-in-card.js
      type: module

I’ve created a ui-lovelace.yaml file and the only information i specified was

views:
  - !include lovelace/view_garden_version2.yaml

image

Packages, i’ve only copied garden_v2 and have defined this to be used in config.yaml

image
image

Reloading HA results to this. I had a look through the directories you’ve uploaded but can’t find the section_status_header.yaml file

Ooopss… My bad.
I must have forgotten to press the Commit button.

All the files are in the folder lovelace/includes_garden/status now.
Really sorry about that. I’m blaming lockdown…

@klogg this lockdown is horse crap!!! Thanks bud. Am i on the right track with the implementation??
I’m not asking spoon feed me but i’d REAAALLLY like to get this going. Any help would be amazing!

Yeah, I think so :slight_smile:

The stumbling block seems to be getting the files in the right folder structure. They need to mirror how I have them on github. (Unless of course you go through and change all the !include statements to reflect how you want to set it up) .

There are a few other things that need to be configured to suit you such as weather sources.

I’m Happy to help if you have any specific issues.

@klogg haven’t changed a single line. Just trying to get lovelace to actually display the picture you added on Github.Thanks man i really appreciate it.

@klogg Ok here’s what i have on a brand new HA install. I used the folder structure as is and haven’t edited any of the files. All i’m hoping to achieve is only to at least get LoveLace to load up.

108.8

  • Installed hacs and added the custom integration and cards you mentioned. After adding each one i’m being presented to add them to lovelace

Here’s my full config.yaml file

homeassistant:
  packages: !include_dir_named packages
default_config:
frontend:
  themes: !include_dir_named themes
lovelace:
  mode: yaml

tts:
  - platform: google_translate

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

I copied the lovelace directory as is
image
I copied the package directory to packages

image
I created a ui-lovelace.yaml file to include view_garden_version2.yaml

image

When reloading HA - System goes into recovery mode. Also Loading error log doesn’t load any logs

Looking at the log file from File Editor

2020-04-24 01:07:13 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
2020-04-24 01:07:14 ERROR (MainThread) [homeassistant.setup] Error during setup of component lovelace
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/setup.py", line 171, in _async_setup_component
    hass, processed_config
  File "/usr/src/homeassistant/homeassistant/components/lovelace/__init__.py", line 97, in async_setup
    resource_collection = await create_yaml_resource_col(hass, yaml_resources)
  File "/usr/src/homeassistant/homeassistant/components/lovelace/__init__.py", line 222, in create_yaml_resource_col
    ll_conf = await default_config.async_load(False)
  File "/usr/src/homeassistant/homeassistant/components/lovelace/dashboard.py", line 186, in async_load
    self._load_config, force
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/homeassistant/homeassistant/components/lovelace/dashboard.py", line 204, in _load_config
    config = load_yaml(self.path)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 61, in load_yaml
    return yaml.load(conf_file, Loader=SafeLineLoader) or OrderedDict()
  File "/usr/local/lib/python3.7/site-packages/yaml/__init__.py", line 114, in load
    return loader.get_single_data()
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 51, in get_single_data
    return self.construct_document(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 55, in construct_document
    data = self.construct_object(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 195, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 155, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 226, in _construct_seq
    (obj,) = loader.construct_yaml_seq(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 408, in construct_yaml_seq
    data.extend(self.construct_sequence(node))
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 130, in construct_sequence
    for child in node.value]
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 130, in <listcomp>
    for child in node.value]
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 116, in _include_yaml
    return _add_reference(load_yaml(fname), loader, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 61, in load_yaml
    return yaml.load(conf_file, Loader=SafeLineLoader) or OrderedDict()
  File "/usr/local/lib/python3.7/site-packages/yaml/__init__.py", line 114, in load
    return loader.get_single_data()
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 51, in get_single_data
    return self.construct_document(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 55, in construct_document
    data = self.construct_object(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 195, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 155, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 226, in _construct_seq
    (obj,) = loader.construct_yaml_seq(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 408, in construct_yaml_seq
    data.extend(self.construct_sequence(node))
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 130, in construct_sequence
    for child in node.value]
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 130, in <listcomp>
    for child in node.value]
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 195, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 155, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 226, in _construct_seq
    (obj,) = loader.construct_yaml_seq(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 408, in construct_yaml_seq
    data.extend(self.construct_sequence(node))
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 130, in construct_sequence
    for child in node.value]
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 130, in <listcomp>
    for child in node.value]
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 195, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 155, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 116, in _include_yaml
    return _add_reference(load_yaml(fname), loader, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 61, in load_yaml
    return yaml.load(conf_file, Loader=SafeLineLoader) or OrderedDict()
  File "/usr/local/lib/python3.7/site-packages/yaml/__init__.py", line 114, in load
    return loader.get_single_data()
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 51, in get_single_data
    return self.construct_document(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 55, in construct_document
    data = self.construct_object(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 195, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 155, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 226, in _construct_seq
    (obj,) = loader.construct_yaml_seq(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 408, in construct_yaml_seq
    data.extend(self.construct_sequence(node))
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 130, in construct_sequence
    for child in node.value]
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 130, in <listcomp>
    for child in node.value]
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 195, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 155, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 226, in _construct_seq
    (obj,) = loader.construct_yaml_seq(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 408, in construct_yaml_seq
    data.extend(self.construct_sequence(node))
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 130, in construct_sequence
    for child in node.value]
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 130, in <listcomp>
    for child in node.value]
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 114, in _include_yaml
    fname = os.path.join(os.path.dirname(loader.name), node.value)
  File "/usr/local/lib/python3.7/posixpath.py", line 94, in join
    genericpath._check_arg_types('join', a, *p)
  File "/usr/local/lib/python3.7/genericpath.py", line 153, in _check_arg_types
    (funcname, s.__class__.__name__)) from None
TypeError: join() argument must be str or bytes, not 'list'
2020-04-24 01:07:14 ERROR (MainThread) [homeassistant.setup] Unable to set up dependencies of frontend. Setup failed for dependencies: lovelace
2020-04-24 01:07:14 ERROR (MainThread) [homeassistant.setup] Setup failed for frontend: Could not set up all dependencies.
2020-04-24 01:07:14 ERROR (MainThread) [homeassistant.setup] Unable to set up dependencies of hacs. Setup failed for dependencies: frontend, lovelace
2020-04-24 01:07:14 ERROR (MainThread) [homeassistant.setup] Setup failed for hacs: Could not set up all dependencies.
2020-04-24 01:07:14 ERROR (MainThread) [homeassistant.setup] Unable to set up dependencies of map. Setup failed for dependencies: frontend
2020-04-24 01:07:14 ERROR (MainThread) [homeassistant.setup] Setup failed for map: Could not set up all dependencies.
2020-04-24 01:07:14 ERROR (MainThread) [homeassistant.setup] Unable to set up dependencies of logbook. Setup failed for dependencies: frontend
2020-04-24 01:07:14 ERROR (MainThread) [homeassistant.setup] Setup failed for logbook: Could not set up all dependencies.
2020-04-24 01:07:15 ERROR (MainThread) [homeassistant.setup] Unable to set up dependencies of default_config. Setup failed for dependencies: frontend, logbook, map
2020-04-24 01:07:15 ERROR (MainThread) [homeassistant.setup] Setup failed for default_config: Could not set up all dependencies.
2020-04-24 01:07:20 WARNING (MainThread) [homeassistant.bootstrap] Detected that frontend did not load. Activating safe mode

@klogg I managed to get to here, still a lot of issues though.

I have moved the prerequisites into a separate page on GitHub to make it more useful.
Please check you have followed everything there.

Two easy starters though:

I suspect your DarkSky weather sensor doesn’t match mine. This was mentioned in a forum post above but I have now detailed it in the readme.

It also looks like you haven’t defined the correct font.

@klogg Thank you so much for taking the time to read through my comments.

Here’s what i have. I’ve been through the prerequisites and the only thing i haven’ done is the notifications

  • HACS cards installed and defined as indicated on each of the respective install pages.
  • Oswold font set
  • dark_teal theme set
  • Darksky have been added however not too sure if these are 100% correct:
  -  platform: darksky
     api_key: <apikey>
     forecast: 1
     monitored_conditions:
     - summary
     - temperature
     - temperature_max
     - temperature_min
     - cloud_cover
     - humidity
     - pressure
     - minutely_summary
     - hourly_summary
     - daily_summary

Overall:

  • System IDLE is unkown
  • Morning Afternoon and Manual is Unkown - Where is this being defined or being pulled from?

Because the file “view_garden_v2.yaml” must be in the /config directory. And also the two directory “includes” and “includes_garden” must be in te /config directory.