Having Hozelock cloud controller kit intergration

Here’s a config code for sensors. I recon it could be done better using binary_sensor for some of the variables.
Im still working on sending commands to the controller.

[updated version - 29.07.2019]

sensors:
  - platform: rest
    resource: !secret hozelock_controller_0
    name: "Hozelock Back Garden Sprinkler"
    value_template: '{{ value_json["controller"]["name"] }}'
    json_attributes:
      - controller
- platform: template
    sensors:
      hozelock_back_garden_sprinkler_pause_starttime:
        friendly_name: "Pause start"
        value_template: '{{ ( state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["pause"]["startTime"] | int / 1000 ) | int | timestamp_local }}' 
      hozelock_back_garden_sprinkler_pause_endtime:
        friendly_name: "Pause end"
        value_template: '{{ ( state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["pause"]["endTime"] | int / 1000 ) | int | timestamp_local }}'
      hozelock_back_garden_sprinkler_pause_duration:
        friendly_name: "Pause duration"
        value_template: '{{ ( state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["pause"]["duration"] | int / 60000 ) | int }}'
      hozelock_back_garden_sprinkler_adjustment_starttime:
        friendly_name: "Adjustment start"
        value_template: '{{ ( state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["adjustment"]["startTime"] | int / 1000 ) | int | timestamp_local }}'
      hozelock_back_garden_sprinkler_adjustment_endtime:
        friendly_name: "Adjustment end"
        value_template: '{{ ( state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["adjustment"]["endTime"] | int / 1000 ) | int | timestamp_local }}'
      hozelock_back_garden_sprinkler_adjustment_wateringadjustment:
        friendly_name: "Adjustment amount"
        value_template: '{{ state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["adjustment"]["wateringAdjustment"] }}'
        unit_of_measurement: '%'
      hozelock_back_garden_sprinkler_waternowevent:
        friendly_name: "Water now event"
        value_template: '{{ state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["waterNowEvent"] }}'
      hozelock_back_garden_sprinkler_currentwateringevent:
        friendly_name: "Current watering event"
        value_template: '{{ state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["currentWateringEvent"] }}'
      hozelock_back_garden_sprinkler_nextwateringevent_starttime:
        friendly_name: "Next watering start"
        value_template: '{{ ( state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["nextWateringEvent"]["startTime"] | int / 1000 ) | int | timestamp_local }}'
      hozelock_back_garden_sprinkler_nextwateringevent_endtime:
        friendly_name: "Next watering end"
        value_template: '{{ ( state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["nextWateringEvent"]["endTime"] | int / 1000 ) | int | timestamp_local }}'
      hozelock_back_garden_sprinkler_nextwateringevent_duration:
        friendly_name: "Next watering duration"
        value_template: '{{ ( state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["nextWateringEvent"]["duration"] | int / 60000 ) | int}}'
        unit_of_measurement: 'min'
      hozelock_back_garden_sprinkler_lastcommunicationwithserver:
        friendly_name: "Last communication"
        value_template: '{{ ( state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["lastCommunicationWithServer"] | int / 1000 ) | int | timestamp_local }}'
      hozelock_back_garden_sprinkler_nextcommunicationwithserver:
        friendly_name: "Next communication"
        value_template: '{{ ( state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["nextCommunicationWithServer"] | int / 1000 ) | int | timestamp_local }}'
      hozelock_back_garden_sprinkler_batterystatus:
        friendly_name: "Battery status"
        value_template: '{{ state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["batteryStatus"] }}'
      hozelock_back_garden_sprinkler_signalstrength:
        friendly_name: "Signal strength"
        value_template: '{{ state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["signalStrength"] }}'
      hozelock_back_garden_sprinkler_overridescheduleduration:
        friendly_name: "Override schedule duration"
        value_template: '{{ state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["overrideScheduleDuration"] }}'

binary_sensors:
- platform: template
    sensors:
      hozelock_back_garden_sprinkler_haswaternowevent:
        friendly_name: "Water now event"
        value_template: '{{ state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["hasWaterNowEvent"] }}'
      hozelock_back_garden_sprinkler_ischildlockenabled:
        friendly_name: "Child lock"
        value_template: '{{ state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["isChildlockEnabled"] }}'
      hozelock_back_garden_sprinkler_iswatering:
        friendly_name: "Watering now"
        value_template: '{{ state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["isWatering"] }}'
      hozelock_back_garden_sprinkler_ispanelremoved:
        friendly_name: "Panel removed"
        value_template: '{{ state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["isPanelRemoved"] }}'
      hozelock_back_garden_sprinkler_isadjusted:
        friendly_name: "Adjustment"
        value_template: '{{ state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["isAdjusted"] }}'
      hozelock_back_garden_sprinkler_isscheduleuptodate:
        friendly_name: "Schedule up-to-date"
        value_template: '{{ state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["isScheduleUpToDate"] }}'
      hozelock_back_garden_sprinkler_ispaused:
        friendly_name: "Paused"
        value_template: '{{ state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["isPaused"] }}'
      hozelock_back_garden_sprinkler_nextwateringevent_enabled:
        friendly_name: "Next watering enabled"
        value_template: '{{ state_attr("sensor.hozelock_back_garden_sprinkler", "controller")["nextWateringEvent"]["enabled"] }}'

1 Like