Input needed: building an emergency system for my grandma

Hello community,

I am currently building an emergency system for my grandmother. She is still very fit for her age, but since she is living alone I came up with this idea. The system consists of an openhabian instance with a zwave usb dongle, three big red fibaro buttons (The Button - Home On - Fernbedienung fürs Zuhause, Panikknopf | FIBARO) and an amazon echo show. The echo show will have its drop-in feature active so I can make a videocall without the need for my grandma to pick it up in case of an emergency.

Currently my plan is that when one of the fibaro buttons is pushed it will send a message over Telegram to me and some other family members. Here I could use your input: is there is any better way you could think of? I want to be sure to not miss an emergency and therefore a better noticeable option than a text message would be good.

Also I am thinking of some kind of a report system, which sends a daily report about battery states, memory usage and stuff like that, so that I can make sure that everything is up and running. Is there a good way to this?

Also if you have any other ideas that could improve the system I would be glad to hear it. :slight_smile:

Many thanks

A scheduled rule (cron job) would allow you to send an mail report as predifined intervals (ie. once a day).

As for the rest of your plan, its quite sensible and should be relatively easy since each button will infact run the same rule when they are pushed.

Get her something she always has on her, a smart watch, a button hanging at the neck or a mobile phone in her pocket.
Worst case is that old people fall and lay on the floor, not able to reach a button on the wall.
Get her a mobile phone with hardware keys, and programmable keys that dial immediately your number with one key press.

Personally, I don’t think you need openHAB for this at all.

If she’s comfortable with an Echo, then set one up in every room and add yourself, family members, local emergency services, and maybe some neighbours as contacts. Even better, Amazon is adding a group-calling feature, so you could enable her to call a bunch of people at once.

This way she doesn’t have to carry a device around in her home just in case of emergency (all it takes is forgetting to do that once). More importantly, you’re not the only person who can respond if she needs help.

Once that’s done, start talking to her regularly with the Echos. People of all ages have trouble thinking straight in emergencies, and we fall back on habits. If she’s used to calling you on the Echo, then it’ll be much easier for her to do that.

Don’t get me wrong. I love openHAB, and my system has run very reliably in the two years I’ve used it, but I (and others) don’t trust it enough to use for emergency response or robust home security.

My personal opinion:
There are professional solutions for that task that are build with high reliability in mind.
I would not like to have my life depend on a custom ZWave setup, maybe a RasPi and a working network connection. BTW: Echo does not work without internet at all.
Thinking about how often one of these components in this chain may fail this is not my preferred solution.
If there is no money that can be spend on such a service it may be a “better than nothing” solution., otherwise I’d have a look at professional providers. (We had this setup in the family and it worked very well).
Hardware designed only for that single purpose without multiple pieces of software to fit together in a complex environment is often superior in such use cases.

But this is, as I said, only my personal opinion.

1 Like

I Definitly wouldn’t recommend the fibaro button. I have one of those and it works just ever second or third time. If you use it anyway, make sure that you react to ALL states. pressed, long pressed, released and doublepress. Or it could happen that you won’t get a message if the button is pressed too long or twice.

I would agree if this were an absolute necessity, but it doesn’t sound like that’s currently the case. If and when I have a family member who is a serious risk, I’ll happily pay for a service to ensure they quickly get the help they need.

I have a similar situation with my dad. First what I have implemented and then what I’d suggest. The big difference isn’t that I didn’t set this up to have him call me if there is trouble. He can do that already without all this other stuff. Instead I wanted a way to see if something is wrong when he can’t/won’t call for help so I have motion sensors to make sure he is up and moving around. If he doesn’t move for too long I can reach out to find out how he is feeling or if he need help.

Note, this is not an emergency type system. If he has a heart attack this won’t save him. That’s not what the system is intended to provide. It’s mainly just a way to see that all is generally normal. It is only as intrusive as he was comfortable with. And in point of fact, as a monitoring system it’s really pretty useless actually. For something like that I’d recommend a professionally designed and implemented system.

I’ve set up an RPi with a zwave dongle to deploy at my dad’s house. I’ve configured it to connect to my OpenVPN when it boots up so I can see the machine and administer it. It also makes it easier for the openHAB running there to talk to my openHAB instance.

I’ve openHAB running and I’ve set up some motion sensors.

Every time motion is detected I get a notification of that on my openHAB instance using the Remote openHAB binding. I’ve a rule that will send me an email and notification if there is an extended period of no motion, configurable. I wrote the rule so that if the timer will go off at night, it will forward it to the next morning.

triggers:
  - id: "1"
    configuration:
      itemName: DadsSensors_LR_Motion
      state: ON
    type: core.ItemStateChangeTrigger
  - id: "2"
    configuration:
      itemName: Dads_Motion_Timeout
    type: core.ItemStateChangeTrigger
conditions: []
actions:
  - inputs: {}
    id: "3"
    configuration:
      type: application/javascript
      script: >
        var logger =
        Java.type("org.slf4j.LoggerFactory").getLogger("org.openhab.model.script.Dad
        Motion");


        this.ZonedDateTime = (this.ZonedDateTime === undefined) ? Java.type("java.time.ZonedDateTime") : this.ZonedDateTime

        var OPENHAB_CONF = java.lang.System.getenv("OPENHAB_CONF");

        load(OPENHAB_CONF+'/automation/lib/javascript/community/timerMgr.js');

        load(OPENHAB_CONF+'/automation/lib/javascript/community/timeUtils.js');

        load(OPENHAB_CONF+'/automation/lib/javascript/personal/alerting.js');


        if(timers === undefined) {
          logger.info("TimerMgr doesn't already exist");
        }

        var timers = (timers === undefined) ? new TimerMgr() : this.timers;


        // Record the time of last motion

        logger.info("event == " + event);

        if(event.itemName == "DadsSensors_LR_Motion") {
          events.postUpdate("DadsSensors_LR_Motion_Lastupdate", new DateTimeType().toString());
        }


        // If it's not set move the timout to 12 hours

        var timerHours = 12;

        logger.info("Timeout is " + items["Dads_Motion_Timeout"]);

        if(items["Dads_Motion_Timeout"].class == UnDefType.class) {
          events.postUpdate("Dads_Motion_Timeout", "12");
        }

        else {
          timerHours = items["Dads_Motion_Timeout"];
        }


        // Calculate the alert time, move it to tomorrow if it'll go off at night

        var timerTime = toDateTime(timerHours.toString()+"h");

        logger.info("timerTime is " + timerTime.toString());


        var nightStart = this.ZonedDateTime.now().withHour(22).withMinute(0).withSecond(0);

        var nightEnd = this.ZonedDateTime.now().withHour(9).withMinute(0).withSecond(0).plusDays(1);


        if(timerTime.isAfter(nightStart) && timerTime.isBefore(nightEnd)) {
          timerTime = nightEnd;
        }

        logger.info("timerTime is now " + timerTime.toString() + " after adjusting for nightime");

        logger.info("Motion detected at Dad's, setting reminder to expire at " + timerTime.toString());


        var dadTimerExpiredGenerator = function(){
          return function() {
            if(items["vDad_Motion_Alert"] == ON) {
              this.sendInfo("It has been awhile since dad has moved. Last movement detected at " + items["vDad_LR_Motion_LastUpdate"])
            }
            else {
              logger.info("Dad's motion timer went off but alerting is OFF");
            }
          }
        }


        timers.check("alertTimer", timerTime, dadTimerExpiredGenerator(), true);
    type: script.ScriptAction

timeMgr.js and timeUtils.js you can find at GitHub - rkoshak/openhab-rules-tools: Library functions, classes, and examples to reuse in the development of new Rules. and alerting.js is a personal library where I’ve centralized all my alerting into library functions.

There are some things I can change to further simplify the rule such as using the Timestamp Profile instead of setting the Lastupdate Item from the Rule. I could also use my Time of Day Items instead of hard coding in the times for night time.

Note that I could implement this on my dad’s openHAB instance but it was easier to implement on my local instance. And if the connection is lost to the other openHAB instance I can learn about that more directly than would happen if it were all just implemented on his instance.

Anyway, what I would recommend:

  • don’t reinvent the wheel and don’t go cheap; find a professional service for acute emergency notifications like this
  • find a button that can be worn; if she were to fall she is unlikely to be able to get to one of the three buttons
  • implement some sort of monitoring of the remote openHAB instance so you get an alert when it goes offline; no news is not always good news in this case
  • consider other types of sensors too and combine them for a fuller picture

As for the system report, that’s easy enough. Most battery powered devices will report their battery level and there is the systeminfo binding and snmp bindings. But if your openHAB instance can see the remote one, you can just use the Network binding to ping it and discover when it goes offline.

1 Like

As for a button I’d suggest to have a look at the NodOn Enocean “Soft button”. It’s tiny and can be carried around in the pocket, if Enocean is an option for you.

Or something similar with Zigbee that you may even directly connect to an Echo Plus. Using the Routines in the echo you could set this up without openHAB at all, depending how much functionality you want to have. In combination with some cheap zigbee repeaters this would work in the the whole house.

1 Like

First of all thanks for all your suggestions. I did not expect so much feedback. You are really a very helpful community! :slight_smile:

What I took away the most is, that I should also get her a device that my grandma can carry with her. I thought about one of these V-SOS Band. It has GPS and mobile connection and it also has a fall detection, which is great.

Also a more “professional” attempt could be made here using e.g. some rented emergency system, but for now I will stick to the plan using openhab and echo devices. Maybe just one echo in the first place to see if she is comfortable using it and then extend the range so that she could do an emergency call in every room by just using her voice as @rpwong proposed.

I am also using one in my own home and did not have any issues like that. For me it is working every press as intended. Maybe they released a new model or something like that? Anyway If I am gonna use some of these I would make sure to evaluate every press-event (one-tap, double-tap, etc.).

Thanks again for all your input!