Class: ESPHome::Entities::BinarySensor

Inherits:
ESPHome::Entity show all
Includes:
HasDeviceClass, HasState
Defined in:
lib/esphome/entities/binary_sensor.rb

Constant Summary collapse

DEVICE_CLASSES =
Hash.new({ true => "on", false => "off" }.freeze).merge(
  "battery" => { true => "low", false => "normal" }.freeze,
  "battery_charging" => { true => "charging", false => "not charging" }.freeze,
  "carbon_monoxide" => { true => "detected", false => "clear" }.freeze,
  "cold" => { true => "cold", false => "normal" }.freeze,
  "connectivity" => { true => "connected", false => "disconnected" }.freeze,
  "door" => { true => "open", false => "closed" }.freeze,
  "garage_door" => { true => "open", false => "closed" }.freeze,
  "gas" => { true => "detected", false => "clear" }.freeze,
  "heat" => { true => "hot", false => "normal" }.freeze,
  "light" => { true => "detected", false => "not detected" }.freeze,
  "lock" => { true => "locked", false => "unlocked" }.freeze,
  "moisture" => { true => "wet", false => "dry" }.freeze,
  "motion" => { true => "detected", false => "clear" }.freeze,
  "moving" => { true => "moving", false => "stopped" }.freeze,
  "occupancy" => { true => "occupied", false => "not occupied" }.freeze,
  "opening" => { true => "open", false => "closed" }.freeze,
  "plug" => { true => "plugged in", false => "unplugged" }.freeze,
  "power" => { true => "detected", false => "no power" }.freeze,
  "presence" => { true => "home", false => "away" }.freeze,
  "problem" => { true => "problem", false => "ok" }.freeze,
  "running" => { true => "running", false => "not running" }.freeze,
  "safety" => { true => "unsafe", false => "safe" }.freeze,
  "smoke" => { true => "detected", false => "clear" }.freeze,
  "sound" => { true => "detected", false => "not detected" }.freeze,
  "tamper" => { true => "tampered", false => "clear" }.freeze,
  "update" => { true => "available", false => "up-to-date" }.freeze,
  "vibration" => { true => "detected", false => "clear" }.freeze,
  "window" => { true => "open", false => "closed" }.freeze
).freeze

Instance Attribute Summary

Attributes inherited from ESPHome::Entity

#device, #disabled_by_default, #entity_category, #icon, #key, #name, #object_id_

Instance Method Summary collapse

Methods inherited from ESPHome::Entity

#inspect

Constructor Details

#initialize(_device, list_entities_response) ⇒ BinarySensor

Returns a new instance of BinarySensor.



40
41
42
43
# File 'lib/esphome/entities/binary_sensor.rb', line 40

def initialize(_device, list_entities_response)
  super
  @status = list_entities_response.is_status_binary_sensor
end

Instance Method Details

#formatted_stateObject



49
50
51
52
53
# File 'lib/esphome/entities/binary_sensor.rb', line 49

def formatted_state
  return super if state.nil?

  DEVICE_CLASSES[device_class][state]
end

#status?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/esphome/entities/binary_sensor.rb', line 45

def status?
  @status
end