Skip to main content

Bedsensoren

Met een paar druksensoren, een kleine stuurplaat kan je detecteren of er iemand in bed ligt, en daarmee bepaalde acties uitvoeren. Denk maar aan automatisch alle lichten uit als iedereen in bed ligt. Of een hulplicht (bv ledstrip onder bed, lichten aan trap...) doen branden als iemand opstaat.

Wat heb je nodig?

AZDelivery NodeMCU Lolin V3 ESP8266 ESP-12F WiFi

Om deze kaartjes toe te voegen, moet je via home assistant

  • esp home builder installeren
  • Kaartje koppelen met USB aan je laptop/pc (niet aan de HA server)
    Ik zag dat windows hier beter voor is, nooit de tijd genomen onder linux (shame on me!!!)
  • vervolgens voeg je een nieuw device toe, en laat je de config generen.
  • Nadien kan je je eigen config toevoegen.
    Let hier op, de API key moet je behouden! Niet overschrijven, of HA heeft problemen om het toestel te koppelen.

Vb config voor bedsensoren:

esphome:
  name: bedsensor2
  friendly_name: BedSensor2

esp8266:
  board: esp01_1m

api:
  encryption:
    key: "P5OheDvzXXXXXXXQLtzMOI2RUJw0KknzAGdO809pps"

ota:
  platform: esphome
  password: "3b5e0f9dcXXXXXXX5cf59bbc3ae"

wifi:
  ssid: XXXXXX
  password: XXXXXX

captive_portal:
logger:
web_server:

sensor:
  - platform: adc
    pin: A0
    name: "Rechter Bed Sensor (ADC)"
    id: "Right_bed_sensor_adc"
    icon: mdi:bed
    update_interval: 0.5s
    filters:
      - sliding_window_moving_average:
          window_size: 10
          send_every: 1
      - or:
          - throttle: 180s
          - delta: 0.02

  - platform: homeassistant
    name: "Rechter Bed Trigger Level"
    id: "Right_bed_trigger_level"
    entity_id: input_number.Right_bed_trigger_level

binary_sensor:
  - platform: template
    name: "Rechterkant Bed in gebruik"
    device_class: occupancy
    id: Rightoccupancy
    # Checks to see if voltage is lower than the trigger level set via input number, if so it sets Right bed side to occupied
    lambda: |-
      if (id(Right_bed_sensor_adc).state < id(Right_bed_trigger_level).state) {
        return true;
      } else {
        return false;
      }