How to deal with the lack of acknowledgement

Forum about Domotiga Open Source Home Automation for Linux.

Moderator: RDNZL

Post Reply
hplus
Starting Member
Starting Member
Posts: 43
Joined: Fri Jan 22, 2010 12:21 pm

How to deal with the lack of acknowledgement

Post by hplus »

Hi everybody,
I would like to start an interesting discussion on how you guys deal with the fact that most home automation devices doesn't have a acknowledgement when they receive an order.
In my case i use an RF based system, often an order could be missed due to collisions. This order can be an important order when i control a heating system for example. The only solution is to periodically resend that order hopping that it will one day be executed. To do this, i maintain using global var the expected state of all the devices in my house. I then have for each globalvar a time based event which periodically resends the state of the device.
This leads to a huge number of events... but is the only solution i found until some more userfriendly way becomes available in domotiga.

It would be interesting if other people share their experience on this crucial point. I've almost never read anything concerning this issue.

Hplus
Andy_Burn
Starting Member
Starting Member
Posts: 43
Joined: Sun Nov 28, 2010 10:47 pm

Re: How to deal with the lack of acknowledgement

Post by Andy_Burn »

I was thinking the same when I woke up the other day, and my house was at 32C..... and its -17C outside! Lol, I'm just starting!

So, I set up a failsafe macro running every 15mins. It checks the temperature and turning off the furnace if its too high.
I have Oregon RF temperature sensors and a wired X10 TI103 for controlling a universal module.
I found I cannot use the 'state' of the universal module as a trigger, to tell if the heating is on. Lke you, I just re-send the commands I need using cron. I could also use a way of checking if the temperature data is recent i.e. within the last five minutes.
I'm going to put manual thermostats in series and parallel, which will regulate the temperature (16C on the low side and 24C on the upper side) if the computer screws up. I dont want to burn my house down!
However, its working well so far. The house temperature cycles from 20-22C :)

Thanks,
Andy

Update: it looks like using the Date LastSeen function, Ron coded, you can do somthing like:
DateDiff(DEV_64_LastSeen,Now(),1)<120 which will let you know the difference is seconds if the temp data you recieved is recent
:)
User avatar
vdoucet
Starting Member
Starting Member
Posts: 20
Joined: Sat Nov 13, 2010 3:01 pm
Location: Pau, France

Re: How to deal with the lack of acknowledgement

Post by vdoucet »

Well this is a very interresting topic ... especially since it is par of why I replaced all my X10 devices by PLCBUS !

In my previous configuration (Misterhouse, Digimax 210, AD10 modules), I was checking temperature vs. setpoint every 5 minute (setpoint depending on day of the week, time of the day ...) and sending order only if necessary (my first script was sending order even if the status was already the one requested but I changed it to limit AD10 modules load). I had (because of X10) a lot of commands not reaching the devices and resolved the issue by sending a 'everything off' order each hour at x:59, all necessary 'on' orders being sent again one minute later. This is how I dealt with lack of aknowledgment.
More or less the worst case would be that an 'off' order would not reach its device at xx:05 and would only be corrected 55 minutes later.

I experienced some very bad experience with AD10 modules (reliability vs time) and after burning a bunch of them, I decided to change technology ... one of the criteria being the possibility to poll for the device status. Zwave, PLCBUS ... the price made the decision ! I also invested in Oregon probes since Digimax have a low precision (1°C)...

So now (just from few days ago ...), I'm running with PLCBUS modules. Basically it only sends order when necessary (compares with the actual status known by Domotiga). What I want now is to develop the polling script within Domotiga to :
- correct Domotiga device status if the polled value is different (priority to hardware)
or
- resend the order to the device if the polled value is different (priority to software)
the selection between the two modes could be an option in the PLCBUS setting interface.
Ubuntu 10.10 + Domotiga 0.1.194 + Gambas 2.21
Interface PLCBUS II-T PLC1141 G+ (USB) ; 2x PLCBUS2-R PLC2268HX2 ; 2x PLCBUS II-R PLC2267-H ; 1x PLCBUS II-R PLC2267-K
Oregon Scientific (7x THN132ES, 3x THGN132ES, 1x PCR800)
RFXCOM (USB ; firmware 20)
steve2xyz
Starting Member
Starting Member
Posts: 34
Joined: Mon Feb 08, 2010 8:46 am

Re: How to deal with the lack of acknowledgement

Post by steve2xyz »

In my case i use an RF based system, often an order could be missed due to collisions. This order can be an important order when i control a heating system for example.
I use RF too, with 4 different protocols on 433MHz. I have an RFXCOM receiver permanently listening. The system knows what it's transmitting and checks to see that it's been picked up correctly by the RFXCOM receiver. If not it backs off for 2^n * a few hundred ms and sends it again. This doesn't help if you don't know what's being transmitted.

Steve
Post Reply

Return to “DomotiGa Forum”