From 344b4db7f9440940d5eef061cda21205033b1e07 Mon Sep 17 00:00:00 2001 From: Felipe Martin Date: Tue, 8 Dec 2020 19:03:12 +0100 Subject: [PATCH] Draft work: Self hosting my home (part 2) --- .../contents.lr | 102 ++++++++++++++++++ .../plant-status-card.png | Bin 0 -> 6840 bytes 2 files changed, 102 insertions(+) create mode 100644 content/blog/15-self-hosting-my-home-part-2/contents.lr create mode 100644 content/blog/15-self-hosting-my-home-part-2/plant-status-card.png diff --git a/content/blog/15-self-hosting-my-home-part-2/contents.lr b/content/blog/15-self-hosting-my-home-part-2/contents.lr new file mode 100644 index 0000000..0a3740c --- /dev/null +++ b/content/blog/15-self-hosting-my-home-part-2/contents.lr @@ -0,0 +1,102 @@ +title: Self-hosting my home: Grafana, InfluxDB, ESPHome +--- +_discoverable: no +--- +pub_date: 2021-12-31 +--- +body: + +## InfluxDB + +``` sql +GRANT ALL ON "homeassistant" TO "homeassistant"; +``` + +## Grafana + +... + +## ESP Home + +... + +### Temperature and Humidity Monitors + +... + +### Mi Flora + +- Get MAC Address for the Mi flora + + ``` + $ bluetoothctl scan on | grep -i flo + [NEW] Device XX:XX:XX:XX:XX:XX Flower care + ``` + + +- Create a new ESP Home integration to track the sensor: + + I name my sensors with numbers so I can write the number on them and identify them easily. You only need to assign sensors to rooms to have them easily available when looking for them on dashboards. + + ``` yaml + [...] + # Sensors + esp32_ble_tracker: # Required for BLE scanning + + sensor: + - platform: xiaomi_hhccjcy01 + mac_address: 'XX:XX:XX:XX:XX:XX' + temperature: + name: "Flora 1 Temperature" + moisture: + name: "Flora 1 Moisture" + illuminance: + name: "Flora 1 Illuminance" + conductivity: + name: "Flora 1 Soil Conductivity" + battery_level: + name: "Flora 1 Battery Level" + ``` + + +- Validate and upload the configuration to your ESP device. + +- With that, you could already create a card with the sensors provided by the integration, but for better visual information a [`plant`](https://www.home-assistant.io/integrations/plant/) object can be created with aproppriate values. Information comes from the Mi Flora App, but someone dumped the database and it's available also [on github](https://github.com/khronimo/MiFloraDB). + + From the spreadsheet: + - Moisture: `min_soil_moist`/`max_soil_moist` + - Temperature: `min_temp`/`max_temp` + - Conductivity: `min_soil_ec`/`max_soil_ec` + - Brightness: `min_light_lux`/`max_light_lux` + + +- Create a `plant` monitor on the `configuration.yaml` file: + + ``` yaml + plant: + parsley: + sensors: + moisture: sensor.flora_1_moisture + battery: sensor.flora_1_battery + temperature: sensor.flora_1_temperature + conductivity: sensor.flora_1_soil_conductivity + brightness: sensor.flora_1_illuminance + min_moisture: 28 + max_moisture: 75 + min_battery: 20 + min_conductivity: 100 + max_conductivity: 2000 + min_temperature: 5 + max_temperature: 35 + min_brightness: 2500 + max_brightness: 55000 + check_days: 3 + ``` + +- Restart Home Assistant for the changes to take effect. + +- Add a [Plant Status Card](https://www.home-assistant.io/lovelace/plant-status/) to your dashboard and select the plant you just created. + + ![My parsley plant status card](./plant-status-card.png) +--- +_discoverable: no diff --git a/content/blog/15-self-hosting-my-home-part-2/plant-status-card.png b/content/blog/15-self-hosting-my-home-part-2/plant-status-card.png new file mode 100644 index 0000000000000000000000000000000000000000..e5eb3ff09a65c7e857333079bca7ee056294cc4a GIT binary patch literal 6840 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