--- layout: page title: "Plant monitor" description: "Instructions on how to setup plant monitoring with Home Assistant." date: 2016-05-7 23:00 sidebar: true comments: false sharing: true footer: true logo: home-assistant.png ha_category: Environment ha_release: 0.44 ha_qa_scale: internal --- This`plant`component lets you merge moisture, conductivity, light intensity, temperature and battery level for a plant into a single UI element. It also supports setting minimum and maximum values for each measurement and will change its state to "problem" if it is not within those limits. ## {% linkable_title Configuration %} To use your `plant` sensor in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry plant: name_of_your_plant: sensors: moisture: sensor.my_sensor_moisture battery: sensor.my_sensor_battery temperature: sensor.my_sensor_temperature conductivity: sensor.my_sensor_conductivity brightness: sensor.my_sensor_brightness min_moisture: 20 ``` Configuration variables: - **entity_id** (*Required*): Set by you and is used by the component as the `entity_id`. - **sensors** (*Required*): - **moisture** (*Optional*): Moisture of the plant. Measured in %. Can have a min and max value set optionally. - **battery** (*Optional*): Battery level of the plant sensor. Measured in %. Can only have a min level set optionally. - **temperature:** (*Optional*): Temperature of the plant. Measured in degrees Celsius. Can have a min and max value set optionally. - **conductivity:** (*Optional*): Conductivity of the plant. Measured in µS/cm. Can have a min and max value set optionally. - **brightness:** (*Optional*): Light exposure of the plant. Measured in Lux. Can have a min and max value set optionally. - **min_moisture** (*Optional*): Minimum moisture level before triggering a problem. Typical value: 20 - **max_moisture** (*Optional*): Maximum moisture level before triggering a problem. Typical value: 60 - **min_battery** (*Optional*): Minimum battery level before triggering a problem. Typical value: 20 - **min_conductivity** (*Optional*): Minimum conductivity level before triggering a problem. Typical value: 500 - **max_conductivity** (*Optional*): Maximum conductivity level before triggering a problem. Typical value: 3000 - **min_temperature** (*Optional*): Minimum temperature before triggering a problem. - **max_temperature** (*Optional*): Maximum temperature before triggering a problem. - **min_brightness** (*Optional*): Minimum brightness before triggering a problem. In contrast to the other values, this check is *not* looking at the current situation, but rather at the last days. A problem is only reported if the maximum brightness over the last days was lower than min_brightness. You can use this to check if the plant gets enough light during the course of the day. - **max_brightness** (*Optional*): Maximum brightness before triggering a problem. - **check_days** (*Optional*): time interval (in days) used when checking **min_brightness**, if not set, the default value is 3 ## {% linkable_title Examples %} ### Using plain MQTT sensor to get the data This is a practical example that uses a multiple of `MQTT sensors` to supply the readings used by the `plant` sensor. Another good source of this data would be the [Mi Flora](/components/sensor.miflora/) component. If the sensor data is within the min/max values the status will be `ok`, if not the status will be `problem`. You can use this to trigger a notification, if there is a problem with your plant. Of course you can only monitor attributes of your plant, where the sensor is configured and is providing the data. ## Data Source The main sources of the data will usually be a [MiFlora sensor](/components/sensor.miflora/) or a [MQTT sensor](/components/sensor.mqtt/) receiving the data from a [PlantGateway](https://github.com/ChristianKuehnel/plantgateway). If you want to get the date via a PlantGateway, this is a typical configuration for the MQTT sensors: {% raw %} ```yaml # Example configuration.yaml entry plant: simulated_plant: sensors: moisture: sensor.mqtt_plant_moisture battery: sensor.mqtt_plant_battery temperature: sensor.mqtt_plant_temperature conductivity: sensor.mqtt_plant_conductivity brightness: sensor.mqtt_plant_brightness min_moisture: 20 max_moisture: 60 min_battery: 17 min_conductivity: 500 min_temperature: 15 sensor: - platform: mqtt name: my_plant_moisture state_topic: my_plant_topic value_template: '{{ value_json.moisture }}' - platform: mqtt name: my_plant_battery state_topic: my_plant_topic value_template: '{{ value_json.battery }}' - platform: mqtt name: my_plant_temperature state_topic: my_plant_topic value_template: '{{ value_json.temperature }}' - platform: mqtt name: my_plant_conductivity state_topic: my_plant_topic value_template: '{{ value_json.conductivity }}' - platform: mqtt name: my_plant_brightness state_topic: my_plant_topic value_template: '{{ value_json.brightness }}' ``` {% endraw %} You have to replace the `state_topic` with the value that you configured in the PlantGateway. It also depends on the global configuration of your MQTT server.