I had the same problem. This helped me: How to find new devices with esp32_ble_tracker when nothing appears in the logs
thanks for link. i solved with hardware reset. disconnected the battery
Hi, I am also looking for a way to add salt readings. Please let me know if (and how) you have managed to do this. Thanks!
After some more reading of the excellent contributions in this thread, I manged to add the salt sensor:
sensor:
#insert below temp, ph, orp and battery sensors
- platform: template
id: sensor_${blueriiot_id_prefix}_salt
name: ${blueriiot_name_prefix} Salt
# Optional variables:
unit_of_measurement: "g/L"
icon: "mdi:water-percent"
state_class: "measurement"
accuracy_decimals: 1
and
text_sensor:
- platform: ble_client
id: ${blueriiot_id_prefix}_reading_data
name: ${blueriiot_name_prefix} reading data
internal: true
ble_client_id: ble_client_${blueriiot_id_prefix}
service_uuid: ${blueriiot_receive_service_uuid}
characteristic_uuid: ${blueriiot_receive_characteristic_uuid}
notify: true
update_interval: never
on_notify:
then:
lambda: |-
std::string rawhex = format_hex_pretty((uint8_t *) x.c_str(), x.size()).c_str();
ESP_LOGD("raw_hex", "%s", rawhex.c_str());
float temperature = (float)((int16_t)(x[2]<< 8) + x[1])/100;
ESP_LOGD("temp", "%f", temperature);
id(sensor_${blueriiot_id_prefix}_temperature).publish_state(temperature);
float raw_ph = (float)( (int16_t) (x[4]<< 8) + x[3]) ;
float ph = (float)( (int16_t) (2048 - raw_ph)) / 232 + 7 ;
ESP_LOGD("ph", "%f", ph);
id(sensor_${blueriiot_id_prefix}_ph).publish_state(ph);
float orp = (float)( (int16_t) (x[6]<< 8) + x[5]) / 3.86 - 21.57826;
ESP_LOGD("orp", "%f", orp);
id(sensor_${blueriiot_id_prefix}_orp).publish_state(orp);
float salt = (float)( (int16_t) (x[8]<< 8) + x[7]) / 25.0;
ESP_LOGD("salt", "%f", salt);
id(sensor_${blueriiot_id_prefix}_salt).publish_state(salt);
float bat = (float)( (int16_t) x[11]) / 36 * 100;
ESP_LOGD("bat", "%f", bat);
id(sensor_${blueriiot_id_prefix}_bat).publish_state(bat);
id(switch_${blueriiot_id_prefix}_enable).turn_off();
My only challenge is that my probe is no longer working. I have ordered a new one and will let you know once Iāve tested everything.
Thanks everyone for amazing work!
So, the entity of the middle gauge is: BLEproxy SK-Pool Battery.
it could not be the temperatur, du to the fact that i live in Germany
Today it shows 28Ā°C, thats an impossible value for a temperature right now ā¦
this is the yaml part of the three gauges:
its a basic visualisation:
square: true
type: grid
cards:
- type: gauge
entity: sensor.esphome_web_1cc2b0_sk_pool_ph
name: pH
needle: true
severity:
green: 7.2
yellow: 7.6
red: 0
min: 6.8
max: 8
- type: gauge
entity: sensor.esphome_web_1cc2b0_sk_pool_battery
needle: true
severity:
green: 80
yellow: 20
red: 0
name: Batterie
- type: gauge
entity: sensor.esphome_web_1cc2b0_sk_pool_orp
needle: true
name: ORP
severity:
green: 650
yellow: 750
red: 0
min: 600
max: 800
columns: 3
Thats the battery part, am i wrong here?
float bat = (float)( (int16_t) x[11]) ;
ESP_LOGD("bat", "%f", bat);
id(sensor_${blueriiot_id_prefix}_bat).publish_state(bat);
Hi,
With my unit, it comes really close to the temperature. (Buitengevel is dutch for the outside wall of a house). When it was hotter there was a bigger difference, my guess due to the water temperature that influences the sensor.
I think it is the Battery Temperature, this would explain why it is neaby the outside temparute.
Because the post of the gauge I was able to optimize mine.
square: false
type: grid
cards:
- type: gauge
entity: sensor.esphome_web_1cc2b0_sk_pool_ph
name: pH
needle: true
min: 6.2
max: 8.6
segments:
- from: 0
color: '#FF0000'
- from: 6.6
color: '#FFA500'
- from: 7.2
color: '#008000'
- from: 7.6
color: '#FFA500'
- from: 8.2
color: '#FF0000'
- type: gauge
entity: sensor.esphome_web_1cc2b0_sk_pool_temperature
name: Temperatur
needle: true
max: 32
min: 18
segments:
- from: 0
color: '#0000FF'
- from: 22
color: '#008000'
- from: 28
color: '#FF0000'
- type: gauge
entity: sensor.esphome_web_1cc2b0_sk_pool_orp
needle: true
name: ORP
min: 350
max: 1050
segments:
- from: 0
color: '#FF0000'
- from: 400
color: '#FFA500'
- from: 650
color: '#008000'
- from: 750
color: '#FFA500'
- from: 1000
color: '#FF0000'
columns: 3
Yes, the Pico-CPU could be a problem. Thanks for the hint!
Do you think, the ESP32-S3FN8 variant could be better? Iām thinking about buying a M5Stack C123 for this purposeā¦
To be honest, i dont know.
I looked at the PICO specs and thought that this would not be good enough for the BT LE to do what we need. What you can do is buy a cheap development board with the same chip (ESP32-S3-MINI-1) and try it out and then go for the M5Stack version.
the battery in blue connect device, is this one , noe extacly the same but very similar with the same form factor and same chemistry
As you can see, the voltage of the battery is constat until complete discharge.
For this reason we can assume that no information about battery level is sent .
Instead battery temperature can help the hardware in the device to estimate the correct lifetime.
I have the exact same problem. The probe isnāt working correctly anymore, needs replacement.
Iāll buy it next summer, but Iāll apply your code additions for salt in the meanwhile.
Could you post the complete yaml file please? Because I noticed some differences vs the code I was using.
Thanks a lot.
Ciao Daniele,
I replaced the original battery with this one (itās 2.6Ah vs 1.8Ah of the original, and itās working): https://www.amazon.it/gp/product/B097MR4FJ9
The code relies on the voltage so I shouldnāt change anything, correct?
Ciao Alex. Thatās correct. Mine is reporting 69% after 45 days with a reading every hour when the pump is on (12 hours) and 1 every 2 when off.
i will buy the same!!
Hi Alex,
I added the 2 parts to my yaml so ts complete.
All should be aligned now with the recent additions from this thread,
Hi,
Question regarding the conductivity level. I am getting a value of 8.802,6 mS/cm here. But I have no glue about the acceptable ranges here. Internet is not saying much about this. My app is not displaying this topic at all.
Regards
Lukas
from the blue connect app, you can get the correct range.
My app is not telling me the limits, thats why i asked.