I had a very old proprietary ADT alarm system in my house. It was time for an upgrade. But the desire during the upgrade was that alarm sensor values could gbe read by my home automation solution. The value in this is that I wouldn't need to duplicate sensors between the two systems: door open/close, motion detection, smoke, ...
The two primary solutions I found in the local market were systems based upon:
- Qolsys IQ 4 Panel.
- DSC Neo Panel, an advancement over the DSC PowerSeries
Both of these systems rely on PowerG sensors as well as proprietary encrypted busses and communications. PowerG sensors do not seem to be available to consumers outside of the alarm industry. And these systems do not allow any sort of read-only or rw access with consumer equipment. Everything is totally locked down and the consumer locked out. Only industry heavy-weights like Control4 have been allowed third party access to these systems.
I had to resort to some old school thinking on this.
I am presently evaluating the DSC PowerSeries panels and keypads.
taligentx/dscKeybusInterface is a library which can run on ESP8266 microcontrollers to communicate with the DSC un-encrypted DSC Keybus. This provides an ability to arm/disarm the alarm system via home automation. Home automation can also read the alarm state to provide larger awareness of the event. ESP8266 into existing alarm DSC System is a large thread about this style of integration from a Home Assistant automation perspective.
DSCKeyBus ESPHOME custom component to interface to a DSC POWERSERIES alarm system took taligentx's code and added bells and whistles to be used with Home Assistant. ESPHome provides the glue between the microcontroller world and Home Assistant.
My goal here is to extract the ESPHome components so that I might integrate the ESP8266 with Domoticz, an alternate home automation solution. Let us see where this goes.
The first step is the installation:
$ python3 --version Python 3.11.2 $ mkdir esphome $ cd esphome $ python3 -m venv venv $ source venv/bin/activate $ pip3 install esphome Collecting esphome Using cached esphome-2023.4.4-py2.py3-none-any.whl (2.6 MB) Collecting voluptuous==0.13.1 Using cached voluptuous-0.13.1-py3-none-any.whl (29 kB) .... $ esphome version Version: 2023.4.4
hmm, interesting, it has installed esptool, tornado and platformio
'deactivate' can be used to exit the environment. 'source venv/bin/activate' to activate the environment and regain the (venv) prompt.
In the directory esphome, run the following to generate a bare bones configuration file:
$ esphome wizard test01.yaml ... a bunch of prompts ... $ cat test01.yaml esphome: name: test1 esp8266: board: esp12e # Enable logging logger: # Enable Home Assistant API api: password: "no" ota: password: "no" wifi: ssid: "an_ssid" password: "ssid_pass" # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Test1 Fallback Hotspot" password: "randomstuff" captive_portal:
This can be installed with:
esphome run test01.yaml
There is a dashboard available for monitoring connected devices. Use this to create .yaml devices in esphome/config, which can then be built and uploaded to the device manually
pip install tornado esptool esphome dashboard config/
More instructions can be found at Getting Started with the ESPHome Command Line
During the build process, I see that PlatformIO is used. Some reference links:
Note: all this is for basic integration into home-assistant. I have to find the tutorial which shows how to build a native/simple esphome file with the basics.