-
Notifications
You must be signed in to change notification settings - Fork 6
Additional Information, Sensors & Add‐ons
The temperature probes are dallas one-wire probes, meaning they are little special. They each are assigned an address that you can only get by reading the device's logs once plugged in. Natively, the software only allows for 1 temperature probe so we don't need to get the specific address of a probe when we only have 1 attached, but in some cases, we want more than one.
You will need to go into AquaPi's logs to get the address of the probes, once obtained, we can edit the .yaml via ESPHome.
substitutions:
cal_0_2: "0.0"
cal_100_2: "100.0"
sensor:
- id: !extend temp_1
address: <DALLAS_ADDRESS_1>
# Temperature Probe 2
- platform: dallas_temp
id: temp_2
icon: mdi:thermometer-lines
address: <DALLAS_ADDRESS_2>
name: "Temperature 2"
state_class: "measurement"
device_class: "temperature"
filters:
- calibrate_linear:
method: least_squares
datapoints:
- 0.0 -> ${cal_0_2}
- 100.0 -> ${cal_100_2}
on_value:
then:
- component.update: temp_range_2
# The Following is Optional
# Convert to Fahrenheit - Temp. 2
- platform: template
state_class: "measurement"
device_class: "temperature"
id: temp_f_2
lambda: |-
return id(temp_2).state * 9 / 5 + 32;
# Calibration Temp. 2 at 0C
- platform: template
name: Calibration at 0°C - Temp. 2
id: cal_0_2_sen
icon: mdi:snowflake-alert
unit_of_measurement: "°C"
state_class: "measurement"
device_class: "temperature"
entity_category: "diagnostic"
lambda: |-
return {${cal_0_2}};
# Calibration Temp. 2 at 100C
- platform: template
name: Calibration at 100°C - Temp. 2
id: cal_100_2_sen
icon: mdi:water-thermometer
unit_of_measurement: "°C"
state_class: "measurement"
device_class: "temperature"
entity_category: "diagnostic"
lambda: |-
return {${cal_100_2}};
binary_sensor:
- platform: template
name: Ideal Temperature 2
id: ideal_temp_2
icon: mdi:thermometer-check
lambda: |-
if (id(temp_range_2).state == "OK") {
return true;
} else {
return false;
}
text_sensor:
# Temperature Range 2
- platform: template
name: Temperature 2 Range
id: temp_range_2
icon: mdi:thermometer-water
update_interval: "${update_temp}"
lambda: |-
if(id(temp_f_2).state <= id(range_cool_2).state) {
return {"Cool"};
}
if(id(temp_f_2).state < id(range_warm_2).state && id(temp_f_2).state > id(range_cool_2).state) {
return {"OK"};
}
if(id(temp_f_2).state >= id(range_warm_2).state) {
return {"Warm"};
}
else {
return {"Unknown"};
}
number:
# Temperature 2 when Cool
- platform: template
name: "Temp. 2 Cool"
id: range_cool_2
icon: mdi:snowflake-thermometer
optimistic: true
mode: box
min_value: 0.0
max_value: 100.0
step: 0.5
restore_value: True
initial_value: ${range_cool}
entity_category: "Config"
device_class: "temperature"
on_value:
then:
- component.update: temp_range_2
# Temperature 2 when Warm
- platform: template
name: "Temp. 2 Warm"
icon: mdi:sun-thermometer
id: range_warm_2
optimistic: true
mode: box
min_value: 0.0
max_value: 100.0
step: 0.5
restore_value: True
initial_value: ${range_warm}
entity_category: "Config"
device_class: "temperature"
on_value:
then:
- component.update: temp_range_2
NOTE: Using Dose Volume for Time
can fail sometimes. In using the pump to dose 5 gallons over 8 hours, sometimes the pump would stop working and it would needed to be tapped or jostled to get it started again.
Try only using the Dose Volume
methods or Quick Water Change blueprints.
The Pump cases are designed to attach directly onto the AquaPi base product. There are up to 8 removable plugs on the AquaPi, you can remove 2 adjacent ones and insert the pump case into the empty plug holes.
Plug into Red label cable of the AquaPi, this is the I2C connection for various EZO circuits. Test that the pump is connected by using the corresponding Dose Continuously
button, then use the Stop Dosing
button to stop it.
The default address for the EZO-Pump is 103
but I wanted to support all 6 colors Atlas Scientific supplies so I changed the address based on specific colors.
White - 103
Red - 108
Green - 109
Orange - 110
Yellow - 104
Blue - 106
White - Pump
Red - Pump Waste
Green - Pump Clean
Orange - Pump Orange
Yellow - Pump Yellow
Blue - Pump Blue
Store Link
ESPHome Documentation
By default, the camera is in low resolution (640x480) which allows for a higher framerate, but you can raise the resolution at the cost of frames, essentially a snapshot camera.
Using the ESPHome add-on, try this configuration:
esp32_camera:
resolution: 2560x1920
jpeg_quality: 10
# vertical_flip: false
# horizontal_mirror: false
If you want to stream it to an NVR like MotionEye or Frigate:
esp32_camera_web_server:
- port: 8080
mode: stream
- port: 8081
mode: snapshot
AquaPi for ESPHome
The Aquarium meets the Smart Home!