Saturday, June 14, 2014

Debugging Elertus (and a general review)

Since no information on the hacking of the Elertus door/water sensor is available, I thought I'd share some basic information about the device.

The Elertus is a simple, but powerful, wifi alert sensor. It captures temperature, humidity, light, movement and optionally a door sensor or water sensor. It then sends an email/sms/push notification to your Android.

There's not much in the way of a custom Android app for this to tie in with IFTTT and the app itself is pretty basic. The device connects to Elertus every hour (or more frequent if movement is detected). The app connects to the Elertus server. The app never connects directly to the device, except during initial setup.

Using Wireshark to capture the packets, it looks to be a very basic POST to 108.166.81.152 with the following information:


device_type=1
posix_time=1402786108
email_id=test@test.com
mac_address=000680000000
alert_flags=
light=5
temp=301
humidity=50
battery=100
motion=1
int_contact=1
ext_contact=1
ext_temp=-1
fw_ver=4.0.1_EL_v7
debug=rssi:49


The device itself seems to be a very basic. The CPU is a Freescale Kinetis K (K10 48pin series) with the following specs:



Silicon - Rev 2.0
MC Partnumber - MK10DN512VLK10(R)
Superset - PK10DN512ZVLK10
CPU Frequency - 100MHz
Package - 80LQFP
Total Flash Memory - 512KB
Flash - 512KB
SRAM - 128KB




The Elertus device lacks in some basic areas:

  • No graphing
  • No "all clear" when the threshold for alert situation subsides
  • No IFTTT integration
  • Fixed hourly check-ins with no option to adjust
  • Battery powered only
  • Fixed external IP with information sent cleartext, unencrypted
  • No Android integrated features (widgets, nested api, deep links)
  • The alerts advise you of an alert, but not what the alert is. You have to open the app.
  • No way of updating the firmware, from what I've seen... but I could be wrong...
I've tackled the graphing issue by setting up a small VM with wireshark to continually monitor any traffic from the mac address to the external IP with a filter for the POST traffic. This in turn updates a very basic sql server with the temperature and humidity levels and displays this information on an internal webserver. While not ideal, this is the only way I can find to hack the Elertus to enable historical view. 

While I hope changes are made, I still think this was a good purchase. It does what I need, but can do more. Hopefully an update is in order.