All Projects → paviro → Hass Yaap

paviro / Hass Yaap

Licence: mit
Yet another alarm (control) panel for Home Assistant.

Projects that are alternatives of or similar to Hass Yaap

Hugo Esp8266
Hugo is a 4-button ESP8266 Wi-Fi Remote, Arduino compatible and simple to use.
Stars: ✭ 77 (+75%)
Mutual labels:  home-automation, homeassistant, hass, arduino, mqtt, esp8266
Sonoff Homeassistant
Firmware for ESP8266 based itead Sonoff switches for use with HomeAssistant
Stars: ✭ 354 (+704.55%)
Mutual labels:  home-automation, homeassistant, arduino, mqtt, esp8266
Home Assistant Config
My Home Assistant Configuration 🏡🏡
Stars: ✭ 133 (+202.27%)
Mutual labels:  homeassistant, hass, arduino, mqtt, esp8266
Blynk Server
Blynk is an Internet of Things Platform aimed to simplify building mobile and web applications for the Internet of Things. Easily connect 400+ hardware models like Arduino, ESP8266, ESP32, Raspberry Pi and similar MCUs and drag-n-drop IOT mobile apps for iOS and Android in 5 minutes
Stars: ✭ 8 (-81.82%)
Mutual labels:  home-automation, arduino, mqtt, esp8266
Homeassistant
Home Assistant Configuration Files and Documentation
Stars: ✭ 395 (+797.73%)
Mutual labels:  home-automation, homeassistant, hass, mqtt
Homie Esp8266
💡 ESP8266 framework for Homie, a lightweight MQTT convention for the IoT
Stars: ✭ 1,241 (+2720.45%)
Mutual labels:  home-automation, arduino, mqtt, esp8266
Haswitchplate
LCD touchscreen for Home Automation
Stars: ✭ 666 (+1413.64%)
Mutual labels:  homeassistant, arduino, mqtt, esp8266
Openmqttgateway
MQTT gateway for ESP8266, ESP32, Sonoff RF Bridge or Arduino with bidirectional 433mhz/315mhz/868mhz, Infrared communications, BLE, Bluetooth, beacons detection, mi flora, mi jia, LYWSD02, LYWSD03MMC, Mi Scale, TPMS, BBQ thermometer compatibility, SMS & LORA.
Stars: ✭ 2,413 (+5384.09%)
Mutual labels:  home-automation, arduino, mqtt, esp8266
Open Home Automation
Open Home Automation with Home Assistant, ESP8266/ESP32 and MQTT
Stars: ✭ 820 (+1763.64%)
Mutual labels:  home-automation, arduino, mqtt, esp8266
Esp Mqtt Json Multisensor
(OBSOLETE) ESP MQTT JSON Multisensor for Home Assistant. Supported sensors include the TEMT6000 light, AM312 PIR, DHT22 temperature/humidity sensors. RGB led supports flash, fade, and transition. Over-The-Air (OTA) uploading, too!
Stars: ✭ 323 (+634.09%)
Mutual labels:  homeassistant, mqtt, esp8266
Heatpump
Arduino library to control Mitsubishi Heat Pumps via connector cn105
Stars: ✭ 327 (+643.18%)
Mutual labels:  arduino, mqtt, esp8266
Espixelstick
Firmware for the ESPixelStick
Stars: ✭ 332 (+654.55%)
Mutual labels:  arduino, mqtt, esp8266
Smarthome
SmartHome: firmware per ESP8266 - Casa domotica
Stars: ✭ 28 (-36.36%)
Mutual labels:  homeassistant, mqtt, esp8266
Esphelper
A library to make using WiFi & MQTT on the ESP8266 easy.
Stars: ✭ 310 (+604.55%)
Mutual labels:  arduino, mqtt, esp8266
Esphome
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
Stars: ✭ 4,324 (+9727.27%)
Mutual labels:  home-automation, mqtt, esp8266
Smarthome
💡 智能电器管理综合系统
Stars: ✭ 33 (-25%)
Mutual labels:  arduino, mqtt, esp8266
Awesome Home Assistant
A curated list of amazingly awesome Home Assistant resources.
Stars: ✭ 3,487 (+7825%)
Mutual labels:  home-automation, homeassistant, mqtt
Freedomotic
Open IoT Framework
Stars: ✭ 354 (+704.55%)
Mutual labels:  home-automation, arduino, mqtt
Smarthome
@skalavala 👍 Nothing But Smarthome Stuff! - By Mahasri Kalavala
Stars: ✭ 437 (+893.18%)
Mutual labels:  home-automation, hass, mqtt
Esphome Core
🚨 No longer used 🚨 - The C++ framework behind ESPHome
Stars: ✭ 545 (+1138.64%)
Mutual labels:  home-automation, arduino, esp8266

HASS-YAAP

Yet another alarm (control) panel for Home Assistant.
  • Change alarm system mode (away, home, night, disarmed)
  • Welcome people arriving by their name
  • Turn off all lights (when you leave for example)

Usage

Arming & Disarming
  1. Press * to enter code mode
  2. Enter Pin
  3. Finish sequence by using
    • A: Arm Away
    • B: Arm Night
    • C: Arm Home
    • D: Disarm
  4. You can also reset the entered code by pressing * again
Turn of lights

Press # while on the main state screen. On any other screen # will go back to the main screen.

Enable LCD backlight

Press any key.

Example Screens

Default Screen

Code

Connecting

Current State

Wrong Code

Welcome

Used Hardware

Parts

ElectronicsYou should probably choose a better pin layout than I did but apparently this is what I used judging from the code 😅

ESP8266 Configuration

Download and install the PlatformIO IDE.

Create a file called config.h in the folder include with the contents of config_example.h.

Choose a language file (default selected is English):

#include "translations/EN.h"

Add your WiFi and MQTT credentials:

#define WiFi_SSID              "WiFi_SSID"
#define WiFi_PW                "WiFi_PW"
#define MQTT_SERVER_IP         "192.168.x.y"
#define MQTT_USER              "MQTT_USER"
#define MQTT_PW                "MQTT_PW"
#define MQTT_CLIENT_NAME       "AlarmControlPanel"

Adjust the other settings to your liking.

If needed adjust the settings in PlatformIO for your board.

PlatformIO Project

PlatformIO Project

Home Assistant Configuration

Requirements

  • MQTT Server (for Home Assistant OS: Mosquitto)

  • An alarm system (for example: Manual)

  • Some Automations (see YAML below)

MQTT

Setup a MQTT server, configure it in Home Assistant and add an account for the alarm panel on the server.

Automations

Required automations

MQTT Alarm Panel - Alarm State

Sends alarm system changes to the panel & receives state requests from the panel.

Replace alarm_control_panel.alarmsystem with the entity id of your alarm system.

- alias: "MQTT Alarm Panel - Alarm State"
  trigger:
    - platform: mqtt
      topic: "alarmpanel/get"
      payload: "state"
    - platform: state
      entity_id: alarm_control_panel.alarmsystem
  action:
    - service: mqtt.publish
      data:
        topic: "alarmpanel/state"
        payload: "{{ states('alarm_control_panel.alarmsystem') }}"
MQTT Alarm Panel - Alarm State

Automation to change the state of the alarm system. You can define valid codes in the variables section.

The name of the code will be used to send a message to a specified phone when the alarm is disabled via the panel. You can disable this by removing the notify action.

Replace alarm_control_panel.alarmsystem with the entity id of your alarm system.

Replace notify.enter_phone_id_here with the entity id of your phone.

- alias: "MQTT Alarm Panel - Set Alarm State"
  variables:
    codes:
      23342: "Code 1"
      6563434: "Code 2"
      9189938992: "Code 3"
  trigger:
    - platform: mqtt
      topic: "alarmpanel/arm/away"
    - platform: mqtt
      topic: "alarmpanel/arm/home"
    - platform: mqtt
      topic: "alarmpanel/arm/night"
    - platform: mqtt
      topic: "alarmpanel/disarm"
  action:
    - choose:
        - conditions:
            - condition: template
              value_template: '{{ trigger.payload | int in codes }}'
          sequence:
            - choose:
                - conditions:
                    - condition: template
                      value_template: "{{ trigger.topic == 'alarmpanel/arm/away' }}"
                  sequence:
                    - service: alarm_control_panel.alarm_arm_away
                      entity_id: alarm_control_panel.alarmsystem
                - conditions:
                    - condition: template
                      value_template: "{{ trigger.topic == 'alarmpanel/arm/home' }}"
                  sequence:
                    - service: alarm_control_panel.alarm_arm_home
                      entity_id: alarm_control_panel.alarmsystem
                - conditions:
                    - condition: template
                      value_template: "{{ trigger.topic == 'alarmpanel/arm/night' }}"
                  sequence:
                    - service: alarm_control_panel.alarm_arm_night
                      entity_id: alarm_control_panel.alarmsystem
                - conditions:
                    - condition: template
                      value_template: "{{ trigger.topic == 'alarmpanel/disarm' }}"
                  sequence:
                    - service: alarm_control_panel.alarm_disarm
                      entity_id: alarm_control_panel.alarmsystem
                    - service: notify.enter_phone_id_here
                      data_template:
                        message: >
                          Alarm system disarmed with code: {{codes[trigger.payload  | int]}}
                        title: "⚠️ Warning Alarmpanel"
      default:
        - service: mqtt.publish
          data:
            topic: "alarmpanel/arm/error"
            payload: "invalidCode"
        - service: notify.enter_phone_id_here
          data_template:
            message: >
               A wrong code was entered into the alarm panel: {{trigger.payload}}
            title: "⚠️ Warning Alarmpanel"
MQTT Alarm Panel - Lights off

Turns of your lights when # is pressed on the panel while on the alarm state screen.

- alias: "MQTT Alarm Panel - Lights off"
  trigger:
    - platform: mqtt
      topic: "alarmpanel/lights"
      payload: "off"
  action:
    - service: light.turn_off
      entity_id: all
    - service: mqtt.publish
      data:
        topic: "alarmpanel/lights/callback"
        payload: "success"

Optional automations

Welcome Notification

The automation below will send the name of people arriving at your home to the alarm panel to display.

If you have a motion / door sensor in the area it will wait for someone to be present near the panel. Remove the first action if you don't have one.

- alias: "Welcome Notification"
  trigger:
    platform: event
    event_type: state_changed
  mode: parallel
  condition:
    condition: and
    conditions:
      - condition: template
        value_template: "{{ trigger.event.data.new_state is defined }}"
      - condition: template
        value_template: "{{ trigger.event.data.old_state is defined }}"
      - condition: template
        value_template: "{{ trigger.event.data.new_state.domain == 'person' }}"
      - condition: template
        value_template: "{{ trigger.event.data.new_state.state == 'home' }}"
      - condition: template
        value_template: "{{ trigger.event.data.old_state.state != 'home' }}"
  action:
    - wait_template: "{{ is_state('binary_sensor.motion_sensor_near_panel', 'on') }}"
      timeout: 300
      continue_on_timeout: false
    - service: mqtt.publish
      data:
        topic: "person/arrived"
        payload: "{{state_attr(trigger.event.data.entity_id, 'friendly_name')}}"
Motion Sensor

Turn on the LCD backlight if a motion sensor near the panel is triggered.

- alias: "MQTT Alarm Panel - Turn LCD on when motion is detected"
  trigger:
    platform: state
    entity_id: binary_sensor.motion_sensor_near_panel
    to: 'on'
  action:
    - service: mqtt.publish
      data:
        topic: "alarmpanel/lcd"
        payload: "on"

Roadmap

  • TLS Support (Anyone want to give it a shot?)
  • Support more display types?
  • More translations
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].