I opened an issue without any reaction
No. It was removed ages ago due to a limitation in the Hydrawise API I believe.
No. There is no local access to your Hydrawise controller. Cloud only.
Home Assistant Core 2022.5.3
Home Assistant Supervisor 2022.05.1
Home Assistant OS 8.0.rc2
Please help me with adding the Hydrawise controllers.
On a fresh new install I have added:
Hydrawise
hydrawise:
access_token: 0DCB-4016-XXXX-XXXX
binary_sensor:
- platform: hydrawise
sensor:
- platform: hydrawise
switch:
- platform: hydrawise
=======
Looking in dev tools I see the binary_sensor as connected and getting the friendly name of the zones (controller 1)
I made a card that is also showing as connected.
It doesn’t seem to create the sensors or switches or I am looking at the wrong places.
I’ve tried also with the monitoring conditions but that gave some errors so went back to basics to get that working first.
Just moved from 20 years homeseer so still getting the hang of it Advise welcome!
Could you tell me if you could solve this problem ?
I accidentally suspended it too, now I can’t start automatic watering back. I have to water with my hands
The problem is solved, I connected to hydrawase from my computer, clicked on the zone on the home page and there is a cancel suspension button. Voila. No problem
Good will be if we can also from HA edited time and other option like as in APP on Android from Hunter,.
Inspiration if anyone needs it. Happy to share config. It’s using node-red to bridge some gaps but the integration works really well!
Really nice … looking good. Would be great if you could share the config
Absolutely, now that I’m unwinding it, it’s a bit specific to my naming convention in Hydrawise but it should be easily adaptable to you’re setup. Let me know if you have any questions or suggestions.
My namining in Hydrawise:
Lovelace YAML
type: vertical-stack
cards:
- type: conditional
conditions:
- entity: sensor.active_sprinkler_zone_number
state: '0'
card:
type: entities
title: Sprinklers
entities:
- entity: input_select.sprinkler_zones
- entity: button.nodered_dd3a8a3b671d15c4
name: ' '
icon: none
- type: custom:collapsable-cards
title: Schedule
buttonStyle: 'background-color: black; font-weight: bold; color: white'
cards:
- type: custom:template-entity-row
entity: sensor.zone_1_next_cycle
name: Zone 1
icon: mdi:sprinkler-variant
state: >-
{{ as_timestamp(states('sensor.zone_1_next_cycle')) |
timestamp_custom('%A at %-I:%M %p') }}
- type: custom:template-entity-row
entity: sensor.zone_2_next_cycle
name: Zone 2
icon: mdi:sprinkler-variant
state: >-
{{ as_timestamp(states('sensor.zone_2_next_cycle')) |
timestamp_custom('%A at %-I:%M %p') }}
- type: custom:template-entity-row
entity: sensor.zone_3_next_cycle
name: Zone 3
icon: mdi:sprinkler-variant
state: >-
{{ as_timestamp(states('sensor.zone_3_next_cycle')) |
timestamp_custom('%A at %-I:%M %p') }}
- type: custom:template-entity-row
entity: sensor.zone_4_next_cycle
name: Zone 4
icon: mdi:sprinkler-variant
state: >-
{{ as_timestamp(states('sensor.zone_4_next_cycle')) |
timestamp_custom('%A at %-I:%M %p') }}
- type: custom:template-entity-row
entity: sensor.zone_6_next_cycle
name: Zone 6
icon: mdi:sprinkler-variant
state: >-
{{ as_timestamp(states('sensor.zone_6_next_cycle')) |
timestamp_custom('%A at %-I:%M %p') }}
- type: custom:template-entity-row
entity: sensor.zone_7_next_cycle
name: Zone 7
icon: mdi:sprinkler-variant
state: >-
{{ as_timestamp(states('sensor.zone_7_next_cycle')) |
timestamp_custom('%A at %-I:%M %p') }}
- type: custom:template-entity-row
entity: sensor.blakes_veggies_next_cycle
name: Blake's Veggies
icon: mdi:sprinkler-variant
state: >-
{{ as_timestamp(states('sensor.blakes_veggies_next_cycle')) |
timestamp_custom('%A at %-I:%M %p') }}
show_header_toggle: false
state_color: true
theme: synthwave
- type: conditional
conditions:
- entity: sensor.active_sprinkler_zone_number
state_not: '0'
card:
type: entities
title: Sprinklers
entities:
- entity: sensor.active_sprinkler_zone
name: Active Zone
secondary_info: last-changed
- type: custom:template-entity-row
name: >
{% set zone = states('sensor.active_sprinkler_zone_number') %}
{% if is_number(zone) and zone | float > 0 or zone ==
'Blakes_Veggies' %}
Turn Off {{ states('sensor.active_sprinkler_zone_name') }}
{% endif %}
entity: |
{% if is_state('switch.zone_1_manual_watering','on') %}
switch.zone_1_manual_watering
{% elif is_state('switch.zone_2_manual_watering','on') %}
switch.zone_2_manual_watering
{% elif is_state('switch.zone_3_manual_watering','on') %}
switch.zone_3_manual_watering
{% elif is_state('switch.zone_4_manual_watering','on') %}
switch.zone_4_manual_watering
{% elif is_state('switch.zone_6_manual_watering','on') %}
switch.zone_6_manual_watering
{% elif is_state('switch.zone_7_manual_watering','on') %}
switch.zone_7_manual_watering
{% elif is_state('switch.blakes_veggies_manual_watering','on') %}
switch.blakes_veggies_manual_watering
{% endif %}
toggle: true
- entity: input_select.sprinkler_zones
- entity: button.nodered_dd3a8a3b671d15c4
name: ' '
icon: none
- type: custom:collapsable-cards
title: Schedule
buttonStyle: 'background-color: black; font-weight: bold; color: white'
cards:
- type: custom:template-entity-row
entity: sensor.zone_1_next_cycle
name: Zone 1
icon: mdi:sprinkler-variant
state: >-
{{ as_timestamp(states('sensor.zone_1_next_cycle')) |
timestamp_custom('%A at %-I:%M %p') }}
- type: custom:template-entity-row
entity: sensor.zone_2_next_cycle
name: Zone 2
icon: mdi:sprinkler-variant
state: >-
{{ as_timestamp(states('sensor.zone_2_next_cycle')) |
timestamp_custom('%A at %-I:%M %p') }}
- type: custom:template-entity-row
entity: sensor.zone_3_next_cycle
name: Zone 3
icon: mdi:sprinkler-variant
state: >-
{{ as_timestamp(states('sensor.zone_3_next_cycle')) |
timestamp_custom('%A at %-I:%M %p') }}
- type: custom:template-entity-row
entity: sensor.zone_4_next_cycle
name: Zone 4
icon: mdi:sprinkler-variant
state: >-
{{ as_timestamp(states('sensor.zone_4_next_cycle')) |
timestamp_custom('%A at %-I:%M %p') }}
- type: custom:template-entity-row
entity: sensor.zone_6_next_cycle
name: Zone 6
icon: mdi:sprinkler-variant
state: >-
{{ as_timestamp(states('sensor.zone_6_next_cycle')) |
timestamp_custom('%A at %-I:%M %p') }}
- type: custom:template-entity-row
entity: sensor.zone_7_next_cycle
name: Zone 7
icon: mdi:sprinkler-variant
state: >-
{{ as_timestamp(states('sensor.zone_7_next_cycle')) |
timestamp_custom('%A at %-I:%M %p') }}
- type: custom:template-entity-row
entity: sensor.blakes_veggies_next_cycle
name: Blake's Veggies
icon: mdi:sprinkler-variant
state: >-
{{ as_timestamp(states('sensor.blakes_veggies_next_cycle')) |
timestamp_custom('%A at %-I:%M %p') }}
show_header_toggle: false
state_color: true
theme: synthwave
The "Sprinkler Zones: dropdown is just an input select helper configured with each of the zone names:
Node Red
- Creates 3 HA sensor variables that hold the current zone name, time remaining and zone number when a zone is runnign
[{"id":"05b97b830822e82b","type":"group","z":"b6d74f614b757177","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["3b021b1c81d5e096","77752996eca24b1e","27e71cf822f789af","b9543dcb5d1aad44","b8b0c4a87360f8c9","fdb2ce8d79e20972"],"x":134,"y":139,"w":772,"h":222},{"id":"3b021b1c81d5e096","type":"ha-entity","z":"b6d74f614b757177","g":"05b97b830822e82b","name":"Active Sprinkler Zone Time","server":"4bbca37b.1700ec","version":2,"debugenabled":false,"outputs":1,"entityType":"sensor","config":[{"property":"name","value":"Active Sprinkler Zone Time"},{"property":"device_class","value":""},{"property":"icon","value":""},{"property":"unit_of_measurement","value":""},{"property":"state_class","value":""},{"property":"last_reset","value":""}],"state":"payload","stateType":"msg","attributes":[],"resend":true,"outputLocation":"payload","outputLocationType":"none","inputOverride":"allow","outputOnStateChange":false,"outputPayload":"$entity().state ? \"on\": \"off\"","outputPayloadType":"jsonata","x":740,"y":200,"wires":[[]]},{"id":"77752996eca24b1e","type":"function","z":"b6d74f614b757177","g":"05b97b830822e82b","name":"Parse Zone","func":"const ha = global.get('homeassistant').homeAssistant.states;\n\n/**\n* @param {string} str\n*/\nfunction trim(str) {\n return str.substring(12,13)\n}\n\nvar newmsg = {}\n\nif (msg.state > 0)\n{\n var zone = trim(msg.payload)\n if (zone == \"s\") {\n newmsg.payload = \"Blake's Veggies: \" + msg.state + \" Min\" \n newmsg.state = \"Blakes_Veggies\"\n newmsg.name = \"Blakes Veggies\"\n } else {\n newmsg.payload = \"Zone \" + zone + \": \" + msg.state + \" Min\" \n newmsg.state = zone\n newmsg.name = \"Zone \" + zone\n }\n} else {\n newmsg.payload = \"None\"\n newmsg.state = 0\n newmsg.name = null\n}\n\nreturn newmsg\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":510,"y":220,"wires":[["3b021b1c81d5e096","b8b0c4a87360f8c9","fdb2ce8d79e20972"]]},{"id":"27e71cf822f789af","type":"comment","z":"b6d74f614b757177","g":"05b97b830822e82b","name":"Publish Zone being Watered to HA","info":"","x":300,"y":180,"wires":[]},{"id":"b9543dcb5d1aad44","type":"server-state-changed","z":"b6d74f614b757177","g":"05b97b830822e82b","name":"Watering Minutes Changed","server":"e056fc93.5eff4","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":"Current Watering Zone"},{"property":"icon","value":""}],"entityidfilter":"(sensor.zone_[1-7]_watering_time|sensor.blakes_veggies_watering_time)","entityidfiltertype":"regex","outputinitially":false,"state_type":"str","haltifstate":"0","halt_if_type":"num","halt_if_compare":"gt","outputs":2,"output_only_on_state_change":true,"for":"","forType":"num","forUnits":"seconds","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"state","propertyType":"msg","value":"","valueType":"entityState"}],"x":270,"y":220,"wires":[["77752996eca24b1e"],["77752996eca24b1e"]]},{"id":"b8b0c4a87360f8c9","type":"ha-entity","z":"b6d74f614b757177","g":"05b97b830822e82b","name":"Active Sprinkler Zone Number","server":"4bbca37b.1700ec","version":2,"debugenabled":false,"outputs":1,"entityType":"sensor","config":[{"property":"name","value":"Active Sprinkler Zone Number"},{"property":"device_class","value":""},{"property":"icon","value":""},{"property":"unit_of_measurement","value":""},{"property":"state_class","value":""},{"property":"last_reset","value":""}],"state":"state","stateType":"msg","attributes":[],"resend":true,"outputLocation":"payload","outputLocationType":"none","inputOverride":"allow","outputOnStateChange":false,"outputPayload":"$entity().state ? \"on\": \"off\"","outputPayloadType":"jsonata","x":750,"y":260,"wires":[[]]},{"id":"fdb2ce8d79e20972","type":"ha-entity","z":"b6d74f614b757177","g":"05b97b830822e82b","name":"Active Sprinkler Zone Name","server":"4bbca37b.1700ec","version":2,"debugenabled":false,"outputs":1,"entityType":"sensor","config":[{"property":"name","value":"Active Sprinkler Zone Name"},{"property":"device_class","value":""},{"property":"icon","value":""},{"property":"unit_of_measurement","value":""},{"property":"state_class","value":""},{"property":"last_reset","value":""}],"state":"name","stateType":"msg","attributes":[],"resend":true,"outputLocation":"payload","outputLocationType":"none","inputOverride":"allow","outputOnStateChange":false,"outputPayload":"$entity().state ? \"on\": \"off\"","outputPayloadType":"jsonata","x":740,"y":320,"wires":[[]]},{"id":"4bbca37b.1700ec","type":"server","name":"Home Assistant","version":4,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30,"areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m"},{"id":"e056fc93.5eff4","type":"server","name":"Home Assistant","version":4,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30,"areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m"}]
- The below flow will start a zone, duration is based on the value set within the hydrawise intagration.
[{"id":"0a4ccef788c6e983","type":"group","z":"b6d74f614b757177","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["9ef630844a709d38","f382a6f4b1d65a7f","9945227d9eaaad18","6861aa7f77544f5c"],"x":154,"y":379,"w":552,"h":122},{"id":"9ef630844a709d38","type":"function","z":"b6d74f614b757177","g":"0a4ccef788c6e983","name":"Parse Zone","func":"const ha = global.get('homeassistant').homeAssistant.states;\n\nvar selectedZone = ha[\"input_select.sprinkler_zones\"].state;\n\n\n/**\n* @param {string} str\n*/\nfunction trim(str) {\n var findZone = str.search(\"[0-9]{1}|Blake's Garden\")\n return str.substring(findZone,findZone + 1)\n}\n\nvar newmsg = {}\nvar zone = trim(selectedZone)\nif (zone == \"B\") {\n zone = \"switch.blakes_veggies_manual_watering\"\n} else {\n zone = \"switch.zone_\"+zone+\"_manual_watering\"\n}\n\nnewmsg.payload = zone\nreturn newmsg\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":430,"y":460,"wires":[["9945227d9eaaad18"]]},{"id":"f382a6f4b1d65a7f","type":"ha-button","z":"b6d74f614b757177","g":"0a4ccef788c6e983","name":"Start Sprinkler","version":0,"debugenabled":false,"outputs":1,"entityConfig":"dd3a8a3b671d15c4","outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":250,"y":460,"wires":[["9ef630844a709d38"]]},{"id":"9945227d9eaaad18","type":"api-call-service","z":"b6d74f614b757177","g":"0a4ccef788c6e983","name":"Turn on Zone","server":"e056fc93.5eff4","version":5,"debugenabled":false,"domain":"switch","service":"turn_on","areaId":[],"deviceId":[],"entityId":[],"data":"{\t \"entity_id\": msg.payload\t}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"data"}],"queue":"none","x":610,"y":460,"wires":[[]]},{"id":"6861aa7f77544f5c","type":"comment","z":"b6d74f614b757177","g":"0a4ccef788c6e983","name":"Start Sprinkler - 10 Min","info":"","x":280,"y":420,"wires":[]},{"id":"dd3a8a3b671d15c4","type":"ha-entity-config","server":"e056fc93.5eff4","name":"","version":4,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""},{"property":"device_class","value":""}],"entityType":"button"},{"id":"e056fc93.5eff4","type":"server","name":"Home Assistant","version":4,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30,"areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m"}]
Awesome thanks
Looks very efficient way to handle zone controls. I am getting the following error with the Lovelace YAML. Can you please advise if you know how to resolve this?
‘custom element doesn’t exist: template-entity-row. type: custom:template-entity-row’
installed as described, altough cannot find the sensor.node_red_irrigation_program
what went wrong?
Just set up the integration. I have 2 12-zone expansion modules on my Hydrawise controller giving me a total of 36 available zones on one controller. The HA integration is only pulling the first 12 zones and nothing else. Any idea on how to make HA see the zones on the expansion modules? Any help would be greatly appreciated. I will pay for someone’s time to make this happen for me!!
It uses, template-entity-row which is a lovelace custom card. Do you have it installed?
This is also using node-red, do you have the node-red add-on installed and setup with the config from above? GitHub - hassio-addons/addon-node-red: Node-RED - Home Assistant Community Add-ons
Thank you. This worked.