What's new

Mosquitto on AsusWRT firmware / Asus RT-AC68U Router

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

I made a copy of the script in /jffs/scripts and have been testing it from there, going to be much harder to diagnose the script without a proper IDE.

I got the script pasted over and the only thing that caused an error was the line iw event | \
I don't know if iw is a function call, or being used as some kind of variable just yet.
I commented it out for now.

I recognise the code as some mongrel version of C. But before I start delving into the code to see what is happening today, I am going to do a bit of pre testing... i.e. see if I can send some basic messages from the router to the Mosquitto on the RPi, and from my laptop.


#!/bin/sh
DEFAULT_MODE="event"
DEFAULT_MQTT_SERVER="192.168.1.50"
DEFAULT_LAST_SEEN_UPDATE_PERIOD_S=120
MODE=$DEFAULT_MODE
MQTT_SERVER=$DEFAULT_MQTT_SERVER
LAST_SEEN_UPDATE_PERIOD_S=$DEFAULT_LAST_SEEN_UPDATE_PERIOD_S
MQTT_ID_EVENT="AsusWRT-Presence-Event"
MQTT_ID_LASTSEEN="AsusWRT-Presence-LastSeen"
MQTT_TOPIC="AsusWRTwifi/status/mac-" SCRIPT_NAME="$(basename "$(test -L "$0" && readlink "$0" || echo "$0")")"

# Parse command line args
test_for_mode(){
param_mode=$1
if [ "$param_mode" == "event" -o "$param_mode" == "lastseen" ]; then
MODE=$param_mode return 0
fi
return 1
}

test_for_ipv4(){
param_ip=$1
echo $param_ip | grep -E '\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}\b' > /dev/null
if [ $? -eq 0 ]; then MQTT_SERVER=$param_ip return 0
fi
return 1
}

test_for_update_periode_s(){
param_up=$1 expr $param_up : '[0-9][0-9]*$'
if [ $? -eq 0 ]; then
LAST_SEEN_UPDATE_PERIOD_S=$param_up return 0
fi
return 1
}

print_usage(){
cat << EOF Supported optional parameters:
mode: "event" or "lastseen" (default: $DEFAULT_MODE)
In event mode changes of registered mac addresses are imediately pushed to the MQTT server In lastseen mode the registered mac addresses are periodically pushed to the MQTT server
MQTT server IP: the IPv4 address of the MQTT server (default $DEFAULT_MQTT_SERVER)
Udate periode : only relevant for lastseen mode (default $LAST_SEEN_UPDATE_PERIOD_S)
Examples: $SCRIPT_NAME $SCRIPT_NAME 192.168.1.2
$SCRIPT_NAME lastseen 300
EOF
}

for param in "$@"; do
test_for_mode $param || \
test_for_ipv4 $param || \
test_for_update_periode_s $param || \
{ print_usage; exit 1; }
done

if [ "$MODE" == "event" ]; then
echo "$SCRIPT_NAME, mode: $MODE, MQTT server: $MQTT_SERVER"
# iw event | \
while read LINE; do
if echo $LINE | grep -q -E "(new|del) station"; then
EVENT=`echo $LINE | awk '/(new|del) station/ {print $2}'`
MAC=`echo $LINE | awk '/(new|del) station/ {print $4}'`
echo "Mac: $MAC did $EVENT"
mosquitto_pub -h $MQTT_SERVER -i $MQTT_ID_EVENT -t "$MQTT_TOPIC${MAC//:/-}/event" -m $EVENT
fi
done
elif [ "$MODE" == "lastseen" ]; then
echo "$SCRIPT_NAME, mode: $MODE, MQTT server: $MQTT_SERVER, period: $LAST_SEEN_UPDATE_PERIOD_S"
while true
do
for interface in `iw dev | grep Interface | cut -f 2 -s -d" "`
do
# for each interface, get mac addresses of connected stations/clients
maclist=`iw dev $interface station dump | grep Station | cut -f 2 -s -d" "`
for mac in $maclist
do
echo "lastseen epoch ${mac//:/-} $(date +%s)"
mosquitto_pub -h $MQTT_SERVER -i $MQTT_ID_LASTSEEN -t "$MQTT_TOPIC${mac//:/-}/lastseen/epoch" -m "$(date +%s)" -r
echo "lastseen iso8601 ${mac//:/-} $(date +%Y-%m-%dT%H:%M:%S%z)"
mosquitto_pub -h $MQTT_SERVER -i $MQTT_ID_LASTSEEN -t "$MQTT_TOPIC${mac//:/-}/lastseen/iso8601" -m "$(date +%Y-%m-%dT%H:%M:%S%z)" -r
done
done
sleep ${LAST_SEEN_UPDATE_PERIOD_S}
done
fi
 
Last edited:
Run into a bit of a problem...
Downloaded iw-5.0.1.tar.gz from https://git.kernel.org/pub/scm/linux/kernel/git/jberg/iw.git
I have never used a tarball before so I found some instructions. https://www.maketecheasier.com/install-software-from-a-tarball-in-linux/
I copied over the tarball to the Entware/home folder and extracted it using the command tar -zxvf iw-5.0.1.tar.gz
and it extracted all the files into the home/iw-5.0.1 folder
next step said to go to that folder and type ./configure except asuswrt has no idea what that command means.

From my vast Linux experience (all 5 minutes of it) I have discovered ./filename runs a script but there are no scripts in the new folder called configure.

I tried opkg install make and it installed a package and seems to be the right tool for the job.

Tried running make from the home/iw-5.0.1 folder and I got a lot of
/bin/sh: pkg-config: not found
/bin/sh: pkg-config: not found
/bin/sh: pkg-config: not found
/bin/sh: pkg-config: not found
/bin/sh: pkg-config: not found

So I don't appear to be able to proceed without performing the ./configure step.
 
Last edited:
OK yet another sleep seems to have helped... Just staring at my last error message "/bin/sh: pkg-config: not found" gave me an idea, what if I need pkg-config as an application installed, since every time I see not found it generally means some software is missing?

opkg list pkg* yep there it is pkg-config, so then opkg install pkg-config...
Successful... now let me try make again.

Makefile:84: *** Cannot find development files for any supported version of libnl. Stop.

Not the end of the world, at least make is trying to work now.
There are instructions on https://wireless.wiki.kernel.org/en/users/Documentation/iw
Build requirements
  • libnl >= libnl1
  • libnl-dev >= libnl-dev-1
  • pkg-config Using iw requires you to have libnl, the first working version is 1.0 pre8 as this release introduced genl, Generic Netlink, which nl80211 relies on. If your distribution's libnl is a wrong version then you'll have to download and compile libnl yourself for now (http://www.infradead.org/~tgr/libnl/).
So over to http://www.infradead.org/~tgr/libnl/ I go to see another tarball. Hopefully I can get this one working with less problems, and then I need to add it to this package before I can try "make" again. Going to assume for the moment this libnl goes in the same folder before I start make... Will soon find out.

Was too much to ask it go smoothly... after running tar -zxvf libnl-3.2.25.tar.gz everything extracted fine, and even found a configure file woohoo!!!

Changed to the new directory and ran ./configure...

me@myrouter:/tmp/mnt/usbstickname/entware/home# cd libnl-3.2.25
me@myrouter:/tmp/mnt/usbstickname/entware/home/libnl-3.2.25# ./configure
checking for a BSD-compatible install... build-aux/install-sh -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... build-aux/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for style of include used by make... GNU
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/opt/home/libnl-3.2.25':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
me@myrouter:/tmp/mnt/usbstickname/entware/home/libnl-3.2.25#

Seems I have no acceptable compiler... bugger, yet another step I need to add in.
 
Last edited:
IMHO you're flogging a dead horse by trying to compile iw. If you follow that path to its conclusion you'll just end up with the same wireless driver used by OpenWRT, so you might just as well have installed that instead.

The advantage of using Asuswrt over OpenWRT is its proprietary Broadcom wireless driver. The equivalent utility to iw would be wl. I posted an example script for the RT-AC68U that uses wl here. There are many other threads where people discuss similar scripts for home automation and the like.
 
IMHO you're flogging a dead horse by trying to compile iw. If you follow that path to its conclusion you'll just end up with the same wireless driver used by OpenWRT, so you might just as well have installed that instead.

The advantage of using Asuswrt over OpenWRT is its proprietary Broadcom wireless driver. The equivalent utility to iw would be wl. I posted an example script for the RT-AC68U that uses wl here. There are many other threads where people discuss similar scripts for home automation and the like.

Thanks that's a big help. The only reason I am trying to get AsusWRT working is because OpenWRT appears to have issues with 2.4Ghz on the Asus RT-AC68U router. I'll abandon trying to get iw working for now (since I have just learned there is a working alternative in wl) and see if I can get it to work.

If I can't can you suggest what C compiler I should try to install to continue? I am not making a lot of sense from the log it told me to look in.
 
If I can't can you suggest what C compiler I should try to install to continue? I am not making a lot of sense from the log it told me to look in.
Don't even bother. There's just so many reasons why that won't work I wouldn't know where to begin. The bottom line is if the entire OpenWRT community can't get the open source wireless driver to work properly I don't think your "5 minutes" of Linux experience will.
 
Don't even bother. There's just so many reasons why that won't work I wouldn't know where to begin. The bottom line is if the entire OpenWRT community can't get the open source wireless driver to work properly I don't think your "5 minutes" of Linux experience will.

It's probably closer to 10 minutes of experience over the last 20 years. I load something up with Linux every couple of years to play with it for a few hours before I become frustrated and put Windows back on. However you need to pick your fights and if so many people have tried it would be silly to think I can manage it.

Problem I now face is I copy and pasted your code to test2 and run chmod but it hangs without coming back to the prompt. What was it supposed to output? and where was it going to output it to?
 
Problem I now face is I copy and pasted your code to test2 and run chmod but it hangs without coming back to the prompt. What was it supposed to output? and where was it going to output it to?
It hasn't hung. It's not meant to be run that way. It runs continuously and every 15 seconds it queries the wireless driver to see what devices have connected or disconnected. That information is then printed to the router's syslog.
 
It hasn't hung. It's not meant to be run that way. It runs continuously and every 15 seconds it queries the wireless driver to see what devices have connected or disconnected. That information is then printed to the router's syslog.

Yes I see it there in the router syslog. Woohoo a small step forward, just need to rewrite the whole code to get it to push messages to Mosquitto. Quick question, my mobile phone is not letting me now connect via 2.4Ghz, it keeps booting me telling me I don't have permission. I wasn't having this problem before running the script. Thoughts / suggestions?
 
Rebooted the router and the problem has gone away :D

Now I have two lots of notifications coming in via the syslog. One that tells me almost instantly when the network changes from 2.4 to 5.0 and back to 2.4 and the second lot from the script that tells me that it is disconnected one frequency and reconnected the other every 15 seconds, so the script is working perfectly. Now I just need to redirect the output to the MQTT server.

I feel like I am on the knifes edge of getting presence sent to my MQTT broker. I have all the pieces now, I just need to unscramble the puzzle.

BTW what do they call the language these scripts are written in? I can see the have a C heritage but it certainly isn't like any C I know.
 
Quick question, my mobile phone is not letting me now connect via 2.4Ghz, it keeps booting me telling me I don't have permission. I wasn't having this problem before running the script. Thoughts / suggestions?
No idea. It's nothing to do with the script.
 
BTW what do they call the language these scripts are written in? I can see the have a C heritage but it certainly isn't like any C I know.
It's a "shell script". The original shell and C compiler were developed in parallel by the same people at Bell Labs in the 1970's, so it's no surprise they are similar. There have been many improvements and versions of the original "shell" since then. The one present on the router is very basic and much like the original Bourne Shell (not to be confused with bash, the Bourne-again shell).
 
It's a "shell script". The original shell and C compiler were developed in parallel by the same people at Bell Labs in the 1970's, so it's no surprise they are similar. There have been many improvements and versions of the original "shell" since then. The one present on the router is very basic and much like the original Bourne Shell (not to be confused with bash, the Bourne-again shell).

Cool. There are little differences like End If vs fi but it is relatively easy to work out the syntax if you think about it for two seconds. Thanks for all your help I hope to have this up and working by the end of the day.
 
Still trying to get this to work. Have a few things working, but AsusWRT doesn't appear to support many of the standard Linux script commands, or if they do work they seem to be a bit hit and miss and only work when they feel like it. Going to keep trying to make it work, but I feel like I am trying to build a suspension bridge with paddle pops sticks here, nothing I need works, even basic if statements only work half the time.
 
Finally it is done!

Code:
#!/bin/sh

 # Asus2MQTT V1.0 - coded by Paul Murray - 2019. Credit to the numerous Linux websites I looked at to get code examples (unfortunately very few examples actually worked as expected on AsusWRT)
 # Props also go out to ColinTaylor on the SNB Forums, for code snippets, and steering me back onto the right path several times along the journey of writing this code
 # This code is the result of well over 100 hours of trial and error. This piddly bit of code could have been done in a fraction of the time had it been written in something else
 # I would have really liked to have put the discovered MAC addresses into some kind of an array, instead of outputting them to a file, but getting this basic code to work was hard enough
 # I hope you find this software beneficial. The software is provided without warranty and should be used at your own discretion, I take no responsibility for it working
 # [SCOPE OF SOFTWARE] This code is designed to be run on an Asus RT-AC68U router (may work on similar Asus routers) running AsusWRT firmware (384.10 has nano support)
 # To receive messages at the other end you will need something like a Raspberry Pi running Mosquitto MQTT broker with the following command: mosquitto_sub -h localhost -d -v -t /Presence/#
 # All going well you should only see notifications at the Mosquitto MQTT broker when you join or leave the wifi network (no constant are we there yet?, are we there yet?, are we there yet?)

 hisprevstate=0
 herprevstate=0
 ipaddr=xxx.xxx.xxx.xxx               # Put your MQTT Mosquitto broker IP address here
 newlist=/jffs/scripts/maclist.new
 oldlist=/jffs/scripts/maclist.old
 touch $oldlist

while sleep 15; do                      # Set the cycle time to whatever floats your boat

 for iface in $(nvram get wl_ifnames); do

        wl -i $iface assoclist >> $newlist
        sed -i "s/assoclist//g" $newlist
 done
        mv $newlist $oldlist

 hisphone(){

        if [ $hiscurstate = 1 ]; then
                mosquitto_pub -h $ipaddr -t /Presence -m "He Is Home"
        else
                mosquitto_pub -h $ipaddr -t /Presence -m "He Is Not Home"
        fi
        hisprevstate=`expr $hiscurstate`
 }

 herphone(){

        if [ $hercurstate = 1 ]; then
                mosquitto_pub -h $ipaddr -t /Presence -m "She Is Home"
        else
                mosquitto_pub -h $ipaddr -t /Presence -m "She Is Not Home"
        fi
        herprevstate=`expr $hercurstate`
 }

 hismac=0
 hermac=0

 while read line; do

        case $line in
        AA:BB:CC:DD:EE:FF)      # Put the mac address of the device you want to monitor here
        hismac=1
        ;;
        BB:CC:DD:EE:FF:AA)      # Put the mac address of the device you want to monitor here
        hermac=1
        ;;
        esac
 done < $oldlist

 if [ $hismac = 1 ]; then
        hiscurstate=1
 else
        hiscurstate=0
 fi

 if [[ $hiscurstate != $hisprevstate ]]; then hisphone
 fi

 if [ $hermac = 1 ]; then
        hercurstate=1
 else
        hercurstate=0
 fi

 if [[ $hercurstate != $herprevstate ]]; then herphone
 fi

done
 
Finally it is done!

Code:
#!/bin/sh

 # Asus2MQTT V1.0 - coded by Paul Murray - 2019. Credit to the numerous Linux websites I looked at to get code examples (unfortunately very few examples actually worked as expected on AsusWRT)
 # Props also go out to ColinTaylor on the SNB Forums, for code snippets, and steering me back onto the right path several times along the journey of writing this code
 # This code is the result of well over 100 hours of trial and error. This piddly bit of code could have been done in a fraction of the time had it been written in something else
 # I would have really liked to have put the discovered MAC addresses into some kind of an array, instead of outputting them to a file, but getting this basic code to work was hard enough
 # I hope you find this software beneficial. The software is provided without warranty and should be used at your own discretion, I take no responsibility for it working
 # [SCOPE OF SOFTWARE] This code is designed to be run on an Asus RT-AC68U router (may work on similar Asus routers) running AsusWRT firmware (384.10 has nano support)
 # To receive messages at the other end you will need something like a Raspberry Pi running Mosquitto MQTT broker with the following command: mosquitto_sub -h localhost -d -v -t /Presence/#
 # All going well you should only see notifications at the Mosquitto MQTT broker when you join or leave the wifi network (no constant are we there yet?, are we there yet?, are we there yet?)

 hisprevstate=0
 herprevstate=0
 ipaddr=xxx.xxx.xxx.xxx               # Put your MQTT Mosquitto broker IP address here
 newlist=/jffs/scripts/maclist.new
 oldlist=/jffs/scripts/maclist.old
 touch $oldlist

while sleep 15; do                      # Set the cycle time to whatever floats your boat

 for iface in $(nvram get wl_ifnames); do

        wl -i $iface assoclist >> $newlist
        sed -i "s/assoclist//g" $newlist
 done
        mv $newlist $oldlist

 hisphone(){

        if [ $hiscurstate = 1 ]; then
                mosquitto_pub -h $ipaddr -t /Presence -m "He Is Home"
        else
                mosquitto_pub -h $ipaddr -t /Presence -m "He Is Not Home"
        fi
        hisprevstate=`expr $hiscurstate`
 }

 herphone(){

        if [ $hercurstate = 1 ]; then
                mosquitto_pub -h $ipaddr -t /Presence -m "She Is Home"
        else
                mosquitto_pub -h $ipaddr -t /Presence -m "She Is Not Home"
        fi
        herprevstate=`expr $hercurstate`
 }

 hismac=0
 hermac=0

 while read line; do

        case $line in
        AA:BB:CC:DD:EE:FF)      # Put the mac address of the device you want to monitor here
        hismac=1
        ;;
        BB:CC:DD:EE:FF:AA)      # Put the mac address of the device you want to monitor here
        hermac=1
        ;;
        esac
 done < $oldlist

 if [ $hismac = 1 ]; then
        hiscurstate=1
 else
        hiscurstate=0
 fi

 if [[ $hiscurstate != $hisprevstate ]]; then hisphone
 fi

 if [ $hermac = 1 ]; then
        hercurstate=1
 else
        hercurstate=0
 fi

 if [[ $hercurstate != $herprevstate ]]; then herphone
 fi

done


This is great! I have been following your progress and am happy you've succeeded! :)

I've looked here; https://mosquitto.org/ but didn't find an example of how this might be used?

What are your direct uses (examples) for this script? How does it know that 'I' have left or joined the network?
 
This is great! I have been following your progress and am happy you've succeeded! :)

I've looked here; https://mosquitto.org/ but didn't find an example of how this might be used?

What are your direct uses (examples) for this script? How does it know that 'I' have left or joined the network?

Several people have tried to get their routers to directly talk to OpenHAB, but have had dropouts and irregular activity (it can be complex to setup properly and you have to worry about bindings etc). Whereas I wanted to get the router to talk directly to Mosquitto to give it greater stability, then have Mosquitto talk to OpenHAB.

The beauty of having the router talk directly to the MQTT broker (Mosquitto) is that it is a very simple push / pull protocol, or subscribe (sub) / publish (pub) in Mosquitto terms with quality control options. The router will publish any message I want to a MQTT topic, say /Presence/mobile, and OpenHAB will be waiting on the other side of that message by subscribing to the topic, Presence/#

Because OpenHAB is subscribed to that topic, as soon as the router publishes to the MQTT broker, OpenHAB will get a copy of that message. Now because I am sending a text based message I could have the router send on/off for the join / disconnect functions, or I could send 1 /0, really can be anything that I setup the rules in OpenHAB to work with.

The real beauty in doing something like this... MQTT is not limited to any particular device, so it is system agnostic. Lets say I want to set up a proximity sensor at the front door. Behind that sensor is some small single board computer like a Raspberry Pi, or an Arduino or even some of the really small chip type devices. Basically anything that can run code and push data directly or indirectly to the MQTT broker can be connected.

Lets say I have a Raspberry Pi connected to the proximity sensor. Little bit of code senses the near contact, and the corresponding action might be to send a message to the MQTT broker lets say this time I publish to /Presence/Sensors and I use the same word convention that I used to send the router message. Because OpenHAB is subscribed to all Presence topics through the use of the wild card (#) it doesn't matter that the sensor sent a message to /Presence/sensors

I can send messages to Presence/mobile and Presence / sensors and both will be picked up by OpenHAB which is subscribed to Presence/# so it doesn't really matter if the router detects a phone has just joined the network it sends a 1 to MQTT and OpenHAB picks it up, or it doesn't matter if someone uses a proximity sensor at the front door the RPi sends a 1 to MQTT and OpenHAB picks it up.

The rule is setup in OpenHAB that says if it receives a "1" from Presence then turn off the alarm, if OpenHAB receives a "0" turn on the alarm. Lets say you typically uses the proximity sensor when walking out the door to set the alarm but you forget, you get in your car and drive away. Doesn't matter you drove out of wifi range so the router sent a "0" to MQTT which OpenHAB picked up and set the exact same action in progress.

Now if you tried to set up that same set of rules in OpenHAB you know how messy things can get when one device turns something on and something else turns it off etc etc. There is no complexity because OpenHAB is just acting on one simple rule, it doesn't care who sent the instruction as long as it was sent by someone.
 
Check this guy out he lives down the road from me (about 2000 klms away)
he describes the relationship between MQTT and OpenHAB beautifully. He makes home automation sound like a walk in the park. He explains how MQTT operates like a whiteboard for sending and receiving messages from devices.
 
Several people have tried to get their routers to directly talk to OpenHAB, but have had dropouts and irregular activity (it can be complex to setup properly and you have to worry about bindings etc). Whereas I wanted to get the router to talk directly to Mosquitto to give it greater stability, then have Mosquitto talk to OpenHAB.

The beauty of having the router talk directly to the MQTT broker (Mosquitto) is that it is a very simple push / pull protocol, or subscribe (sub) / publish (pub) in Mosquitto terms with quality control options. The router will publish any message I want to a MQTT topic, say /Presence/mobile, and OpenHAB will be waiting on the other side of that message by subscribing to the topic, Presence/#

Because OpenHAB is subscribed to that topic, as soon as the router publishes to the MQTT broker, OpenHAB will get a copy of that message. Now because I am sending a text based message I could have the router send on/off for the join / disconnect functions, or I could send 1 /0, really can be anything that I setup the rules in OpenHAB to work with.

The real beauty in doing something like this... MQTT is not limited to any particular device, so it is system agnostic. Lets say I want to set up a proximity sensor at the front door. Behind that sensor is some small single board computer like a Raspberry Pi, or an Arduino or even some of the really small chip type devices. Basically anything that can run code and push data directly or indirectly to the MQTT broker can be connected.

Lets say I have a Raspberry Pi connected to the proximity sensor. Little bit of code senses the near contact, and the corresponding action might be to send a message to the MQTT broker lets say this time I publish to /Presence/Sensors and I use the same word convention that I used to send the router message. Because OpenHAB is subscribed to all Presence topics through the use of the wild card (#) it doesn't matter that the sensor sent a message to /Presence/sensors

I can send messages to Presence/mobile and Presence / sensors and both will be picked up by OpenHAB which is subscribed to Presence/# so it doesn't really matter if the router detects a phone has just joined the network it sends a 1 to MQTT and OpenHAB picks it up, or it doesn't matter if someone uses a proximity sensor at the front door the RPi sends a 1 to MQTT and OpenHAB picks it up.

The rule is setup in OpenHAB that says if it receives a "1" from Presence then turn off the alarm, if OpenHAB receives a "0" turn on the alarm. Lets say you typically uses the proximity sensor when walking out the door to set the alarm but you forget, you get in your car and drive away. Doesn't matter you drove out of wifi range so the router sent a "0" to MQTT which OpenHAB picked up and set the exact same action in progress.

Now if you tried to set up that same set of rules in OpenHAB you know how messy things can get when one device turns something on and something else turns it off etc etc. There is no complexity because OpenHAB is just acting on one simple rule, it doesn't care who sent the instruction as long as it was sent by someone.

Thank you for the answer above, but I'm still not convinced of the benefits? I do not want anything 'automatic' in my life. There are too many reasons to not do things automatically. Having something happen just because I do something else is programming myself into a robot, in my eyes. I'm much less predictable than that and so is my life as well as others around me. I may walk out the door, but I may also be coming right back in, in your example. Or, someone else is home/etc. To each his/her own though! :)

Thanks again for the details. 'Home Automation' is not something I will be using soon (if ever).
 

Similar threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top