Привет!
Сегодня хочу поделиться своим экспериментом с "разработкой" датчика определения человека на кровати.
Почему это было нужно?
У меня достаточно давно была создана автоматизация открывающая шторы утром при наличии движения в гостиной в будние дни, а в выходные, по тому же сенсору, сценарий открывал шторы и в спальне. Все работает отлично, пока один из нас двоих не вставал в выходные раньше, а второй оставался в постели (признаюсь, чаще всего это был я ). Нужно было определять и не открывать шторы в спальне. В будущем можно привязать к этому датчику, например, включение ночного освещения, включение кондиционеравентилятора и тд.
Ну или когда уже автоматизировать совсем нечего...
Датчики
За основу решил взять самый дешевый Zigbee датчик открытия двериокна, работающий на герконовом принципе (геркон замыкается под воздействием магнитного поля). И сенсор давления в сидении автомобиля. Оба устройства заказал на Aliexpress: датчик двери, датчик сидения. Все это я заказал на авось, особенно датчик сидения, не знал "хватит ли его сопротивления" для замыкания контактов вместо геркона и не будет ли он замыкаться от веса матраса.


Что было сделано?
-
Измерение сопротивления датчика давления
Сначала измерил сопротивление вхолостую, сопротивление было около 1МОм, потом под давлением (я на него сел) - полное замыкание. Потом положил датчик под матрас, сопротивления оставалось близко к мегаому. -
Демонтаж геркона
Вскрыв корпус датчика, я аккуратно выпаял геркон. -
Установка датчика давления
Вместо геркона я припаял датчик давления. -
Интеграция в умный дом
После переделки датчик сохранил свою совместимость с экосистемой умного дома. Теперь он отправляет сигнал не об "открытии/закрытии", а о "наличии давления".
Сравнение размеров сенсора давления и датчика двери

Сопротивление датчика давления вхолостую

Процесс запайки вместо геркона

Пример автоматизации для Home Assistant
description: "Открыть шторы в выходные, в гостиной по движению, а после, в спальне по отсутствию человека на кровати"
mode: single
triggers:
- trigger: state
entity_id:
- binary_sensor.presence_sensor_living_room
to: "on"
conditions:
- condition: time
weekday:
- sat
- sun
after: "06:00:00"
before: "13:00:00"
actions:
- action: cover.open_cover
metadata: {}
data: {}
target:
area_id: gostinaia
- wait_for_trigger:
- trigger: state
entity_id:
- binary_sensor.krovat_contact
from: "off"
to: "on"
for:
hours: 0
minutes: 1
seconds: 0
continue_on_timeout: false
- action: cover.open_cover
metadata: {}
data: {}
target:
area_id: spalnia
Готовое устройство


Оптимизация и нюансы
Как видно на фото выше, сенсор давления не задействован на 100%, под него нужно что-то подложить, например, приклеить к тонкому листу алюминия. Новый датчик срабатывает только на моей стороне кровати, нужно купить еще один сенсор давления и запараллелить их.
Новый сенсор HA с антидребезгом
- platform: template
sensors:
presence_sensor_on_bed:
friendly_name: "Сенсор присутствия на кровати"
device_class: presence
value_template: >-
{% set last_changed = states['binary_sensor.0xa4c138732178ae70_contact'].last_changed %}
{% if now().timestamp() - as_timestamp(last_changed) > 2 %}
{{ 'off' if states('binary_sensor.0xa4c138732178ae70_contact') == 'on' else 'on' }}
{% endif %}
Мира!
Автор: almirus