PDA

View Full Version : Device Manager and HVAC



DaveS
December 18th, 2006, 09:48 AM
Will there be any standalone thermostats that will work with the new DM?

Promixis
December 18th, 2006, 06:04 PM
Dave, if you have any in mind, post a link here. Most will be fairly easy to setup. Hence the beauty of the DM

DaveS
December 19th, 2006, 07:28 AM
By standalone I meant without the associated controller. I was thinking of the HAI RC-80 but it is rs232 and I would be worried about cable length. Maybe the April Air being rs-485 would be better.

DAve

Promixis
December 20th, 2006, 06:12 PM
By standalone I meant without the associated controller. I was thinking of the HAI RC-80 but it is rs232 and I would be worried about cable length. Maybe the April Air being rs-485 would be better.

DAve

I think either would be fine. How far away do you have to run wires?

DaveS
December 21st, 2006, 06:55 AM
One run will be about 75 feet and another about 90 feet. Seems kinda long for RS232. Although the RC80 only runs at 300 baud.

Dave

Rob H
December 21st, 2006, 07:40 AM
http://www.connectworld.net/cable-length.html

danward79
December 21st, 2006, 10:17 AM
You could use either a rs232 to 485 converter then back again, or an mss-100 from lantronix

DaveS
December 21st, 2006, 04:23 PM
http://www.connectworld.net/cable-length.html

Hey Rob thanks. according to this site one could get upwards of 150 ft with high quality cable and slow xfer speeds. Here I was thinking 50 ft max.

I guess going back to my original query here -- will I have to write a plug in for the HAI RC-80 thermostat?

Dave

Rob H
December 21st, 2006, 07:12 PM
Yes, you probably will, but we should be able to help if you can find the protocol document for it.

DaveS
December 22nd, 2006, 06:56 AM
Rob - does this look usefull?

Promixis
December 22nd, 2006, 06:57 AM
Attached is the protocol. It is really straight forward and we can put something together.

Promixis
December 22nd, 2006, 06:58 AM
:D good timing :D

DaveS
January 1st, 2007, 03:21 PM
Found this in the G4 forum.

from this thread http://www.promixis.com/forums/showthread.php?t=13733&highlight=thermostat

does this look like it will work for the serial device side?

DAve

Promixis
January 1st, 2007, 03:35 PM
It should be straight forward to get working. This is just a basic 'test' script.

DaveS
January 3rd, 2007, 06:19 AM
Ok I've ordered two of the RC80 omnistats and I assume I can use this simple script to test comms. Right now I would be happy just being able to send them commands and receive status. My initial much lofftier goal of having them show up in the device manager and populate a NR page like the insteon light sliders is way out there.

Rob H
January 3rd, 2007, 06:53 AM
We can help you get this working when your thermostats arrive.

DaveS
January 6th, 2007, 03:21 PM
Hey Rob, Two RC80s sitting on my front porch Friday evening. Rigged up a cable on Sat and tried to communicate with the omnistat. Kinda looks like I am talking but not sure. Got the following resonse in the lua logger.

Serial: OmniStat : Opened Device: OmniStat Port: 2 Settings: 300 N 0 8 0
Serial: OmniStat : Callback Installed 2
Serial: OmniStat : Command queued: 12 12 .. at postion 1
Serial: OmniStat : Simple Send: F0 12 12 F7 ð..÷
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command


No response to last command kinda bothers me though.

From the rs232 protocol it should be sending 1 start bit and 1 stop bit. from the above output doesn't look like that is happening.

Rob H
January 6th, 2007, 04:57 PM
A couple of things concern me from reading the protocol and comparing it with your Omnistat.lua

You have

SendStartByte = serial.hextobyte('F0')

Where does that come from?

From my reading the first byte should actually always be 0 to broadcast to all thermostats.

Similarly, I don't understand the send and receive terminators both of which are F7

DaveS
January 6th, 2007, 06:08 PM
Don't know either. Performed the same test with rs232 connector unplugged and get the exact same response in the lua console log. below is the lua log upon replugging the cable back in.

Serial: OmniStat : Simple Receive: Data Code: 8
Serial: OmniStat : Simple Receive: Data Code: 8
Serial: OmniStat : Simple Receive: Data Code: 8
Serial: OmniStat : Simple Receive: Data Code: 32
Serial: OmniStat : Simple Receive: Data Code: 32
Serial: OmniStat : Simple Receive: Data Code: 16
Serial: OmniStat : INFO: Serial port ready (DSR)


Ah -- I see where the F0 comes from. Under settings, plugins, serial tab I select omnistat 1 or omnistat 2. Then from the actions I select serial devices and pick the omnistat device and enter 12 in the send block. Output below that indicates F0 12 F7

Send as hex is checked.

DaveS
January 6th, 2007, 06:10 PM
You may want to know that I have two of these hooked up in a serial er.. parallel fashion. One is configured as device 1 and the other is configured as device 2.

Rob H
January 6th, 2007, 06:53 PM
It's getting rather late here. I'll get back to you on this tomorrow.

DaveS
January 6th, 2007, 06:55 PM
not a problem

Rob H
January 7th, 2007, 05:02 AM
According to the Omnistat protocol the start byte is 0 to broadcast to all thermostats or a number from 0-127. The topmost bit should always be 0 when sending it from the host to a thermostat.

So I would actually leave SendStartByte as '' (the empty string).

Messages are not terminated (in either direction) so SendTerminator and ReceiveTerminator should also be empty and you'll have to use CB_FIXEDLENGTH.

Try the attached script which I think should work, note that you should use the Command function to send messages to the thermostat as follows :-


OmniStat:Command(thermostat, msgType, data)
where :

thermostat is the thermostat number from 1 to 127
msgType is a value from 0 to 15
data depends on the msgType but is from 0 to 15 bytes in length

DaveS
January 7th, 2007, 07:19 AM
Ok now getting what looks like a good response from each omnistat. below is the ouput

Serial: OmniStat : Command queued: 01 12 33 46 ..3F at postion 1
Serial: OmniStat : Simple Send: 01 12 33 46 ..3F
Serial: OmniStat : Simple Receive: Data 81 63 8B 71 03 00 00 79 c‹q...y Code: 1
Serial Error (CallLua): ...les\Promixis\Girder5\/luascript/startup/omnistat.lua:86: bad argument #1 to `band' (number expected, got nil)
stack traceback:
[C]: in function `band'
...les\Promixis\Girder5\/luascript/startup/omnistat.lua:86: in function <...les\Promixis\Girder5\/luascript/startup/omnistat.lua:80>
Serial: OmniStat : Command queued: 02 12 33 47 ..3G at postion 1
Serial: OmniStat : Simple Send: 02 12 33 47 ..3G
Serial: OmniStat : Simple Receive: Data 82 63 7C 78 03 00 00 79 ‚c|x...y Code: 1
Serial Error (CallLua): ...les\Promixis\Girder5\/luascript/startup/omnistat.lua:86: bad argument #1 to `band' (number expected, got nil)
stack traceback:
[C]: in function `band'
...les\Promixis\Girder5\/luascript/startup/omnistat.lua:86: in function <...les\Promixis\Girder5\/luascript/startup/omnistat.lua:80>


Although there is an lua error here I am getting what looks like data back from a poll request for group 1 data.

This is the script command I sent.

OmniStat:Command(01, 02, 03) -- and then
OmniStat:Command(02, 02, 03)


Omnistat.lua file is simply placed in the startup folder under luascript

dave

Rob H
January 7th, 2007, 07:29 AM
That's a good start :)

Is line 86 still


local datalen = math.band (string.byte(data,2),240)

or have you edited the script?

That script should really be located in plugins\serial rather than luascript\startup

DaveS
January 7th, 2007, 07:44 AM
Yes - line 86 is untouched and reads as you posted. I have not edited this file.

Dave

DaveS
January 7th, 2007, 07:46 AM
will move omnistat.lua to plugins\serial rather than luascript\startup

Rob H
January 7th, 2007, 08:18 AM
Okay, try this one, I'd forgotten to set ReceiveFixedLength so it was defaulting to 8 bytes

DaveS
January 7th, 2007, 08:33 AM
And the resulting output:

Serial: OmniStat : Command queued: 01 12 33 46 ..3F at postion 1
Serial: OmniStat : Simple Send: 01 12 33 46 ..3F
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command
1
3
96
c|x
checksum test U 170
Serial: OmniStat : Simple Receive: Data 81 63 7C 78 03 00 00 7A 55 c|x...zU Code: 0

Rob H
January 7th, 2007, 08:38 AM
Okay, try this one - I've increased the no response timeout time and changed the checksum retrieval.

DaveS
January 7th, 2007, 08:52 AM
Looks like this runs clean

Serial: OmniStat : Command queued: 01 12 33 46 ..3F at postion 1
Serial: OmniStat : Simple Send: 01 12 33 46 ..3F
1
3
96
c|x
checksum test 85 170
Serial: OmniStat : Simple Receive: Data 81 63 7C 78 03 00 00 7A 55 c|x...zU Code: 0

Rob H
January 7th, 2007, 08:59 AM
Good. However I'm a little worried about the checksum - the two values should match up... aha, I see what's wrong, change line 94 from

local calcsum = CalculateCheckSum (string.sub (data,1,-1))
to

local calcsum = CalculateCheckSum (string.sub (data,1,-2))

DaveS
January 7th, 2007, 09:23 AM
Yep - now they match.

Serial: OmniStat : Command queued: 01 12 33 46 ..3F at postion 1
Serial: OmniStat : Simple Send: 01 12 33 46 ..3F
1
3
96
c|x
checksum test 85 85
Serial: OmniStat : Simple Receive: Data 81 63 7C 78 03 00 00 7A 55 c|x...zU Code: 0

Rob H
January 7th, 2007, 09:36 AM
Great, I hope I can leave the interpretation of the responses to you now that the basics are sorted.

DaveS
January 7th, 2007, 09:52 AM
I think you can. I would like to work through setting a register though. I've been trying to set a cooling setpoint per the example in the omnistat protocol and I'm not understanding some simple things here. I tried sending

OmniStat:Command(01, 21, 59, 73, 05)

I guess what I don't understand is how 21 is derived or how CS is determined.

Rob H
January 7th, 2007, 10:00 AM
What's the intention of that?

21 is not a valid message type

Remember the purpose of the Command method - it builds the command string from the thermostat, the message type and parameter data.

DaveS
January 7th, 2007, 10:12 AM
getting 21 from the example host message page 7 of the omnstat protocol. They are giving an example of how to set a cooling setpoint. I was just trying to duplicate it. I guess I don't understand the DL/MT convention

Rob H
January 7th, 2007, 12:47 PM
DL = Data length, MT = Message type.

Just specify the message type value.

The data parameter is a single string value though

DaveS
January 7th, 2007, 02:00 PM
So I send OmniStat:Command(01, 01, 61, 00, 05)

61 is the mode register, data 00 should set the mode to off.

log shows

Serial: OmniStat : Command queued: 01 21 36 31 89 .!61‰ at postion 1
Serial: OmniStat : Simple Send: 01 21 36 31 89 .!61‰
1
0
0

checksum test 129 129
Serial: OmniStat : Simple Receive: Data 81 00 81 . Code: 0



Looks like it set something to 00 but mode does not change. I am sending register values in decimal -- is this right?

DaveS
January 7th, 2007, 02:21 PM
Hey Rob I really appreciate your help with this. Hope I'm not being a pain.

Dave

Promixis
January 7th, 2007, 02:43 PM
Dave, unless I am mistaken, all values should be HEX.

Rob H
January 7th, 2007, 03:05 PM
So I send OmniStat:Command(01, 01, 61, 00, 05)

61 is the mode register, data 00 should set the mode to off.


And what's the 05 for?

There are only 3 parameters to Command (actually 4 but the last one is an optional callback), the third of which is all the data as a Lua string.

You could have a function MakeData as follows :-


MakeData = function(self, ...)
local result = ''
for i, value in unpack(arg) do
result = result .. string.char(value)
end
return result
end,


So, if you wanted to pass 61, 00 to the Command method you would use


self:Command(01, 01, self:MakeData(61, 00))

DaveS
January 7th, 2007, 04:42 PM
So do I place all of this in the omnistat.lua file?

Rob H
January 7th, 2007, 04:56 PM
Yes, possibly before the Command method - don't forget to include the comma at the end.

DaveS
January 7th, 2007, 08:09 PM
Hey Rob, Get this error with this line in omnistat.lua file

self:Command(01, 01, self:MakeData(61, 00))


Serial Error (RunScript, C:\Program Files\Promixis\Girder5\/plugins/serial/omnistat.lua, 1): C:\Program Files\Promixis\Girder5\/plugins/serial/omnistat.lua:73: `}' expected (to close `{' at line 28) near `Command'


can I set this up in a netremote button?

Rob H
January 8th, 2007, 03:32 AM
Sorry, the call to self:Command() doesn't go in the OmniStat.lua file, just the MakeData function.

DaveS
January 8th, 2007, 07:28 AM
Rob, I'm at a loss as to what I do with

self:Command(01, 01, self:MakeData(61, 00))

As is it doesn't look like I can place this in a tree script.

Rob H
January 8th, 2007, 09:56 AM
Replace self with OmniStat when using it in treescript.

DaveS
January 8th, 2007, 10:23 AM
Used this -- OmniStat:Command(01, 01, self:MakeData(3e, 01))

3e is the fan register and 01 sets it to on.

I get this in lua consol log:
[string "Scripting"]:1: malformed number near `3e'


I am however able to send commands to the thermostats with the serial send action. select serial device "omnistat" and in the send block I input

01213e01

select hex in the send as and hit test and the fan on thermostat 1 comes on. below is the lua consol log;

Serial: OmniStat : Command queued: 01 21 3E 01 61 .!>.a at postion 1
Serial: OmniStat : Simple Send: 01 21 3E 01 61 .!>.a
1
0
0

checksum test 129 129
Serial: OmniStat : Simple Receive: Data 81 00 81 . Code: 0

DaveS
January 8th, 2007, 10:28 AM
Again -- thanks for your help with this.

Dave

DaveS
January 8th, 2007, 10:49 AM
Now I need to figure out how to parse the 6 bytes of data out of the poll for group 1 data received and convert from hex to decimal and also create a somewhat large lookup table for converting the temp values to and from "omnitemp" values.

Rob H
January 8th, 2007, 10:53 AM
You'll have to use decimal numbers, and you should also use OmniStat:MakeData() rather than self:MakeData()

Rob H
January 8th, 2007, 10:59 AM
You shouldn't need a table to convert temperatures, you just need to scale it accordingly, something like


celsiusTemp = -40 + (omniTemp / 2)

DaveS
January 8th, 2007, 11:13 AM
You'll have to use decimal numbers, and you should also use OmniStat:MakeData() rather than self:MakeData()

Yea I did do that. got error. see previous post.

DaveS
January 8th, 2007, 11:16 AM
You shouldn't need a table to convert temperatures, you just need to scale it accordingly, something like


celsiusTemp = -40 + (omniTemp / 2)

The only reason I thought I would need a table is because all temps are input and output in what they call "omnitemps" See their table Appendix A on the Omnistat protocol.

DaveS
January 8th, 2007, 11:21 AM
You shouldn't need a table to convert temperatures, you just need to scale it accordingly, something like


celsiusTemp = -40 + (omniTemp / 2)

err sorry, now that actually looked at it this formula converts omnitemps to degrees "C"

Thanks

Rob H
January 8th, 2007, 11:34 AM
Yea I did do that. got error. see previous post.
You mean this?


OmniStat:Command(01, 01, self:MakeData(3e, 01))

That should be


OmniStat:Command(01, 01, OmniStat:MakeData(63, 01))

DaveS
January 8th, 2007, 06:10 PM
Not exactly what I meant. Guess I should have told you I tried it both ways -- decimal and hex. here is the output with decimal.


[string "Mine.gml:\HAI RC80\Scripting"]:1: attempt to index global `self' (a nil value)
stack traceback:
[string "Mine.gml:\HAI RC80\Scripting"]:1: in main chunk

This is the command sent:

OmniStat:Command(01, 01, self:MakeData(62, 01))

doesn't 3e hex = 62 ?

Promixis
January 8th, 2007, 06:12 PM
Dave,

The command should be

OmniStat:Command(01, 01, OmniStat:MakeData(62, 01))

would you please post the exact .lua file you are using?

Promixis
January 8th, 2007, 06:12 PM
and, the hex digits must go in quotes

ie 'C1'

DaveS
January 8th, 2007, 06:13 PM
Anyways I realize the way I'm successful in talking with the units is not ideal I was however thrilled at being able to actually make them do something. Thanks for helping me get this going. I will continue to work on this to possibly get this working with the device manager. That would be sweet.

Promixis
January 8th, 2007, 06:19 PM
No problem... we will get you there :D

Promixis
January 8th, 2007, 06:19 PM
Dave, can you post which lua file you are using?

DaveS
January 8th, 2007, 06:31 PM
Mike, Attached is the omnistat.lua that Rob has put together for me.

Promixis
January 13th, 2007, 08:23 PM
Dave, do you connect each thermostat to different com ports or all to one comport?

DaveS
January 14th, 2007, 03:07 PM
Currently to just one comm port. I have a run from pc to thermostat 1 and then on to thermostat 2. Seems to work ok -- I have not had trouble communicating to either stat.

DAve

DaveS
January 16th, 2007, 10:01 AM
Getting back to passing data to the command line. I have tried --

OmniStat:Command(01, 01, OmniStat:MakeData(62, 01))

and get

... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:65: attempt to call local `result' (a number value)
stack traceback:
... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:65: in function `MakeData'
[string "Mine.gml:\Omnistat\Scripting"]:1: in main chunk


I also tried --

OmniStat:Command(01, 01, OmniStat:MakeData('3E', '01'))

and get --

... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:65: attempt to call local `result' (a string value)
stack traceback:
... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:65: in function `MakeData'
[string "Mine.gml:\Omnistat\Scripting"]:1: in main chunk


What am I doing wrong here?

Rob H
January 16th, 2007, 10:22 AM
Can you post the current version of OmniStat.lua?

DaveS
January 16th, 2007, 10:29 AM
Here ya go.

Dave

Promixis
January 16th, 2007, 11:22 AM
Here ya go.

Dave

Rob/Dave, I am going to look at this this am.

Rob H
January 16th, 2007, 11:22 AM
Are you sure that's the right file? Line 65 doesn't refer to 'result'

DaveS
January 16th, 2007, 11:30 AM
purdy sure. copied out of C:\program files\promixis\girder5\plugins\serial

I currently do not have another omnistat.lua file in that folder.

Rob H
January 16th, 2007, 12:12 PM
It's a really misleading error message.

In the MakeData method, just change the 'unpack' to 'ipairs' ie


MakeData = function(self, ...)
local result = ''
for i, value in ipairs(arg) do
result = result .. string.char(value)
end
return result
end,

Sorry about that, not sure what I was thinking.

Promixis
January 16th, 2007, 02:43 PM
dave, gives this file a try.


goes in serial.

enable the device in the serial plugin

type OmniStat:AddThermostat (1)

or whatever the addresses of yours are... ie 1,2,3,4...127

So us the console output here.

DaveS
January 16th, 2007, 06:15 PM
Rob, That works with command:

OmniStat:Command(01, 01, OmniStat:MakeData(62, 01))

command --- OmniStat:Command(01, 01, OmniStat:MakeData('3E', '01')) does not. So decimal it is.

Mike, will post lua console log from your lua file shortly.

Dave

DaveS
January 16th, 2007, 06:18 PM
Mike, Here is the console log on girder startup:

Welcome to Promixis Girder 5.0!
Serial: OmniStat : Opened Device: OmniStat Port: 1 Settings: 300 N 0 8 0
Serial: OmniStat : Callback Installed 1
Serial: OmniStat : Command queued: 01 21 3E 01 .!>. at postion 1
Serial: OmniStat : Simple Send: 01 21 3E 01 .!>.
Serial: OmniStat : Command queued: 01 21 3C 79 .!<y at postion 1
Serial: OmniStat : Response pending, que size 1
requires... enabling comp Geographical Location
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command
Serial: OmniStat : Simple Send: 01 21 3C 79 .!<y
Queuing device office3\CustomWeather\Local.ForecastConditions.1
Queuing device office3\CustomWeather\Local.ForecastConditions.5
Queuing device office3\SunClock\SunClock
Queuing device office3\CustomWeather\Local.CurrentConditions
Queuing device office3\CustomWeather\Local.ForecastConditions.2
Queuing device office3\CustomWeather\Local.ForecastConditions.4
Queuing device office3\CustomWeather\Local.ForecastConditions.3
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command

DaveS
January 16th, 2007, 06:20 PM
and the log from a poll for group 1 data

[string "Mine.gml:\Omnistat\Scripting"]:1: attempt to call method `Command' (a nil value)
stack traceback:
[string "Mine.gml:\Omnistat\Scripting"]:1: in main chunk

DaveS
January 16th, 2007, 06:57 PM
errr sorry, had girder enable on a couple of actions in the tree so they were trying to run on girder start. Below is the console log on startup with out those girder enables.

Welcome to Promixis Girder 5.0!
Serial: OmniStat : Opened Device: OmniStat Port: 1 Settings: 300 N 0 8 0
Serial: OmniStat : Callback Installed 1
requires... enabling comp Geographical Location
Queuing device office3\CustomWeather\Local.ForecastConditions.1
Queuing device office3\CustomWeather\Local.ForecastConditions.5
Queuing device office3\SunClock\SunClock
Queuing device office3\CustomWeather\Local.CurrentConditions
Queuing device office3\CustomWeather\Local.ForecastConditions.2
Queuing device office3\CustomWeather\Local.ForecastConditions.4
Queuing device office3\CustomWeather\Local.ForecastConditions.3
Queuing device office3\CustomWeather\Local.ForecastConditions.1
Queuing device office3\CustomWeather\Local.ForecastConditions.2
Queuing device office3\CustomWeather\Local.ForecastConditions.3
Queuing device office3\CustomWeather\Local.ForecastConditions.4
Queuing device office3\CustomWeather\Local.ForecastConditions.5
Queuing device office3\Insteon\07.13.7E
Queuing device office3\Insteon\05.7B.E2
Queuing device office3\Insteon\07.1A.6B
Queuing device office3\Insteon\07.13.FF
Queuing device office3\Insteon\07.16.F4
Queuing device office3\Insteon\07.AD.AF
Queuing device office3\Insteon\07.16.74
Queuing device office3\Insteon\07.19.71
Queuing device office3\Insteon\07.18.66

Promixis
January 16th, 2007, 08:01 PM
Dave, did you try the OmniStat:AddThermostat (1) from the lua console after restart?

DaveS
January 16th, 2007, 08:19 PM
No -- but I did as you suggested and now get continual output in the log. The output is ongoing -- below is some capture

Queuing device office3\CustomWeather\Local.ForecastConditions.5
Serial: OmniStat : Command queued: 01 20 49 49 B3 . II&#179; at postion 1
Serial: OmniStat : Simple Send: 01 20 49 49 B3 . II&#179;
Serial: OmniStat : Command queued: 01 20 48 48 B1 . HH&#177; at postion 1
Serial: OmniStat : Response pending, que size 1
Serial: OmniStat : Command queued: 01 02 03 ... at postion 2
Serial: OmniStat : Response pending, que size 2
Response from 1
Messsage type 1 NAK
Data length 0
Data ‚
checksum test 130 130
Serial: OmniStat : NAK from address 1
Serial: OmniStat : Simple Receive: Data 81 01 82 .‚ Code: 0
Serial: OmniStat : Simple Send: 01 20 48 48 B1 . HH&#177;
Serial: OmniStat : Command queued: 01 20 49 49 B3 . II&#179; at postion 2
Serial: OmniStat : Response pending, que size 2
Serial: OmniStat : Command queued: 01 20 48 48 B1 . HH&#177; at postion 3
Serial: OmniStat : Response pending, que size 3
Serial: OmniStat : Command queued: 01 02 03 ... at postion 4
Serial: OmniStat : Response pending, que size 4
Response from 1
Messsage type 1 NAK
Data length 0
Data ‚
checksum test 130 130
Serial: OmniStat : NAK from address 1
Serial: OmniStat : Simple Receive: Data 81 01 82 .‚ Code: 0
Serial: OmniStat : Simple Send: 01 02 03 ...
Response from 1
Messsage type 3 Group1Data
Data length 6
Data c|w
checksum test 82 82
Serial: OmniStat : Simple Receive: Data 81 63 7C 77 01 00 00 7A 52 c|w...zR Code: 0
Serial: OmniStat : Simple Send: 01 20 49 49 B3 . II&#179;
Response from 1
Messsage type 1 NAK
Data length 0
Data ‚
checksum test 130 130
Serial: OmniStat : NAK from address 1
Serial: OmniStat : Simple Receive: Data 81 01 82 .‚ Code: 0
Serial: OmniStat : Simple Send: 01 20 48 48 B1 . HH&#177;
Response from 1
Messsage type 1 NAK
Data length 0
Data ‚
checksum test 130 130
Serial: OmniStat : NAK from address 1
Serial: OmniStat : Simple Receive: Data 81 01 82 .‚ Code: 0
Serial: OmniStat : Simple Send: 01 02 03 ...
Response from 1
Messsage type 3 Group1Data
Data length 6
Data c|w
checksum test 82 82
Serial: OmniStat : Simple Receive: Data 81 63 7C 77 01 00 00 7A 52 c|w...zR Code: 0
Serial: OmniStat : Command queued: 01 20 49 49 B3 . II&#179; at postion 1
Serial: OmniStat : Simple Send: 01 20 49 49 B3 . II&#179;
Serial: OmniStat : Command queued: 01 20 48 48 B1 . HH&#177; at postion 1
Serial: OmniStat : Response pending, que size 1
Serial: OmniStat : Command queued: 01 02 03 ... at postion 2
Serial: OmniStat : Response pending, que size 2
Response from 1
Messsage type 1 NAK
Data length 0
Data ‚
checksum test 130 130
Serial: OmniStat : NAK from address 1
Serial: OmniStat : Simple Receive: Data 81 01 82 .‚ Code: 0
Serial: OmniStat : Simple Send: 01 20 48 48 B1 . HH&#177;
Response from 1
Messsage type 1 NAK
Data length 0
Data ‚
checksum test 130 130
Serial: OmniStat : NAK from address 1
Serial: OmniStat : Simple Receive: Data 81 01 82 .‚ Code: 0
Serial: OmniStat : Simple Send: 01 02 03 ...
Response from 1
Messsage type 3 Group1Data
Data length 6
Data c|w
checksum test 82 82
Serial: OmniStat : Simple Receive: Data 81 63 7C 77 01 00 00 7A 52 c|w...zR Code: 0
Serial: OmniStat : Command queued: 01 20 49 49 B3 . II&#179; at postion 1
Serial: OmniStat : Simple Send: 01 20 49 49 B3 . II&#179;
Serial: OmniStat : Command queued: 01 20 48 48 B1 . HH&#177; at postion 1
Serial: OmniStat : Response pending, que size 1
Serial: OmniStat : Command queued: 01 02 03 ... at postion 2
Serial: OmniStat : Response pending, que size 2
Response from 1
Messsage type 1 NAK
Data length 0
Data ‚
checksum test 130 130
Serial: OmniStat : NAK from address 1
Serial: OmniStat : Simple Receive: Data 81 01 82 .‚ Code: 0
Serial: OmniStat : Simple Send: 01 20 48 48 B1 . HH&#177;
Response from 1
Messsage type 1 NAK
Data length 0
Data ‚
checksum test 130 130
Serial: OmniStat : NAK from address 1
Serial: OmniStat : Simple Receive: Data 81 01 82 .‚ Code: 0
Serial: OmniStat : Simple Send: 01 02 03 ...
Response from 1
Messsage type 3 Group1Data
Data length 6

Promixis
January 16th, 2007, 08:21 PM
ok, its NAK ing all the commands... something must be wrong with our send command...

Promixis
January 16th, 2007, 08:30 PM
ok, bug found...

try this file. send the lua command again after G restarts.

DaveS
January 16th, 2007, 08:53 PM
Still getting continous output - some capture below.

Queuing device office3\Insteon\07.18.66
Serial: OmniStat : Command queued: 01 20 49 01 6B . I.k at postion 1
Serial: OmniStat : Simple Send: 01 20 49 01 6B . I.k
Serial: OmniStat : Command queued: 01 20 48 01 6A . H.j at postion 1
Serial: OmniStat : Response pending, que size 1
Serial: OmniStat : Command queued: 01 02 03 ... at postion 2
Serial: OmniStat : Response pending, que size 2
Response from 1
Messsage type 2 RegisterData
Data length 2
Data "I
checksum test 236 236
Serial Error (CallLua): ... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:211: attempt to index field `Registers' (a nil value)
stack traceback:
... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:211: in function <... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:171>
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command
Serial: OmniStat : Simple Send: 01 20 48 01 6A . H.j
Serial: OmniStat : Command queued: 01 20 49 01 6B . I.k at postion 2
Serial: OmniStat : Response pending, que size 2
Serial: OmniStat : Command queued: 01 20 48 01 6A . H.j at postion 3
Serial: OmniStat : Response pending, que size 3
Serial: OmniStat : Command queued: 01 02 03 ... at postion 4
Serial: OmniStat : Response pending, que size 4
Response from 1
Messsage type 2 RegisterData
Data length 2
Data "H
checksum test 235 235
Serial Error (CallLua): ... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:211: attempt to index field `Registers' (a nil value)
stack traceback:
... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:211: in function <... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:171>
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command
Serial: OmniStat : Simple Send: 01 02 03 ...
Response from 1
Messsage type 3 Group1Data
Data length 6
Data c|x
checksum test 83 83
Thermostat 1
Serial Error (CallLua): ... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:288: attempt to index field `Thermostats' (a nil value)
stack traceback:
... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:288: in function `PrintThermostat'
... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:245: in function <... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:171>
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command
Serial: OmniStat : Simple Send: 01 20 49 01 6B . I.k
Response from 1
Messsage type 2 RegisterData
Data length 2
Data "I
checksum test 236 236
Serial Error (CallLua): ... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:211: attempt to index field `Registers' (a nil value)
stack traceback:
... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:211: in function <... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:171>
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command
Serial: OmniStat : Simple Send: 01 20 48 01 6A . H.j
Response from 1
Messsage type 2 RegisterData
Data length 2
Data "H
checksum test 235 235
Serial Error (CallLua): ... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:211: attempt to index field `Registers' (a nil value)
stack traceback:
... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:211: in function <... Files\Promixis\Girder5\/plugins/serial/omnistat.lua:171>
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command
Serial: OmniStat : Simple Send: 01 02 03 ...
Response from 1
Messsage type 3 Group1Data
Data length 6
Data c|x
checksum test 83 83
Thermostat 1

DaveS
January 16th, 2007, 08:56 PM
Mike, This is very exciting and wish to continue. but my day started very early and must get some sleep now.

Dave

Promixis
January 16th, 2007, 10:19 PM
Dave, no problem. looking great from here.

Bug above found and fixed below.

The current plugin polls the thermostat constantly - hence the constant output.

DaveS
January 17th, 2007, 05:37 AM
Mike, Gotta say this is some "look" you were going to take at passing data to the command line. Pretty impressive. Your time on this is greatly appreciated.

Below is some of the output from your last update.

Serial: OmniStat : Command queued: 01 20 49 01 6B . I.k at postion 1
Serial: OmniStat : Simple Send: 01 20 49 01 6B . I.k
Serial: OmniStat : Command queued: 01 20 48 01 6A . H.j at postion 1
Serial: OmniStat : Response pending, que size 1
Serial: OmniStat : Command queued: 01 02 03 ... at postion 2
Serial: OmniStat : Response pending, que size 2
Response from 1
Messsage type 2 RegisterData
Data length 2
Data "I
checksum test 236 236
Serial Error (CallLua): ...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:211: attempt to index field `Registers' (a nil value)
stack traceback:
...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:211: in function <...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:171>
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command
Serial: OmniStat : Simple Send: 01 20 48 01 6A . H.j
Response from 1
Messsage type 2 RegisterData
Data length 2
Data "Hì
checksum test 236 236
Serial Error (CallLua): ...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:211: attempt to index field `Registers' (a nil value)
stack traceback:
...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:211: in function <...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:171>
Serial: OmniStat : Command queued: 01 20 49 01 6B . I.k at postion 2
Serial: OmniStat : Response pending, que size 2
Serial: OmniStat : Command queued: 01 20 48 01 6A . H.j at postion 3
Serial: OmniStat : Response pending, que size 3
Serial: OmniStat : Command queued: 01 02 03 ... at postion 4
Serial: OmniStat : Response pending, que size 4
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command
Serial: OmniStat : Simple Send: 01 02 03 ...
Response from 1
Messsage type 3 Group1Data
Data length 6
Data c}x
checksum test 83 83
Thermostat 1
Serial Error (CallLua): ...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:288: attempt to index field `Thermostats' (a nil value)
stack traceback:
...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:288: in function `PrintThermostat'
...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:245: in function <...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:171>
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command

Promixis
January 17th, 2007, 11:37 AM
Ok Dave, next iteration attached.

copy all output here after the AddThermostat command

DaveS
January 17th, 2007, 04:24 PM
Ok here it is.

Welcome to Promixis Girder 5.0!
Serial: OmniStat : Opened Device: OmniStat Port: 1 Settings: 300 N 0 8 0
Serial: OmniStat : Callback Installed 1
requires... enabling comp Geographical Location
Queuing device office3\CustomWeather\Local.ForecastConditions.1
Queuing device office3\CustomWeather\Local.ForecastConditions.5
Queuing device office3\SunClock\SunClock
Queuing device office3\CustomWeather\Local.CurrentConditions
Queuing device office3\CustomWeather\Local.ForecastConditions.2
Queuing device office3\CustomWeather\Local.ForecastConditions.4
Queuing device office3\CustomWeather\Local.ForecastConditions.3
Queuing device office3\Insteon\07.13.7E
Queuing device office3\Insteon\05.7B.E2
Queuing device office3\Insteon\07.1A.6B
Queuing device office3\Insteon\07.13.FF
Queuing device office3\Insteon\07.16.F4
Queuing device office3\Insteon\07.AD.AF
Queuing device office3\Insteon\07.16.74
Queuing device office3\Insteon\07.19.71
Queuing device office3\Insteon\07.18.66
Queuing device office3\CustomWeather\Local.ForecastConditions.1
Queuing device office3\CustomWeather\Local.ForecastConditions.2
Queuing device office3\CustomWeather\Local.ForecastConditions.3
Queuing device office3\CustomWeather\Local.ForecastConditions.4
Queuing device office3\CustomWeather\Local.ForecastConditions.5
Serial: OmniStat : Command queued: 01 20 49 01 6B . I.k at postion 1
Serial: OmniStat : Simple Send: 01 20 49 01 6B . I.k
Serial: OmniStat : Command queued: 01 20 02 01 24 . ..$ at postion 1
Serial: OmniStat : Response pending, que size 1
Serial: OmniStat : Command queued: 01 20 48 01 6A . H.j at postion 2
Serial: OmniStat : Response pending, que size 2
Serial: OmniStat : Command queued: 01 02 03 ... at postion 3
Serial: OmniStat : Response pending, que size 3
Omnistat Event Add Thermostat 1
Serial: OmniStat : Command queued: 01 20 49 01 6B . I.k at postion 4
Serial: OmniStat : Response pending, que size 4
Serial: OmniStat : Command queued: 01 20 02 01 24 . ..$ at postion 5
Serial: OmniStat : Response pending, que size 5
Serial: OmniStat : Command queued: 01 20 48 01 6A . H.j at postion 6
Serial: OmniStat : Response pending, que size 6
Serial: OmniStat : Command queued: 01 02 03 ... at postion 7
Serial: OmniStat : Response pending, que size 7
Response from 1
Messsage type 2 RegisterData
Data length 2
checksum test 236 236
Serial: OmniStat : Invalid message from address 1
Serial: OmniStat : Simple Receive: Data 81 22 49 00 EC "I.ì Code: 0
Serial: OmniStat : Simple Send: 01 20 02 01 24 . ..$
Response from 1
Messsage type 2 RegisterData
Data length 2
checksum test 165 165
Serial: OmniStat : Invalid message from address 1
Serial: OmniStat : Simple Receive: Data 81 22 02 00 A5 "..¥ Code: 0
Serial: OmniStat : Simple Send: 01 20 48 01 6A . H.j
Response from 1
Messsage type 2 RegisterData
Data length 2
checksum test 236 236
Serial: OmniStat : Invalid message from address 1
Serial: OmniStat : Simple Receive: Data 81 22 48 01 EC "H.ì Code: 0
Serial: OmniStat : Simple Send: 01 02 03 ...
Omnistat Event Update Thermostat 1 CommunicationStatus Error
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command
Serial: OmniStat : Simple Send: 01 20 49 01 6B . I.k
Response from 1
Messsage type 3 Group1Data
Data length 6
checksum test 81 81
Serial: OmniStat : Invalid message from address 1
Serial: OmniStat : Simple Receive: Data 81 63 7C 78 01 00 00 78 51 c|x...xQ Code: 0
Serial: OmniStat : Simple Send: 01 20 02 01 24 . ..$
Response from 1
Messsage type 2 RegisterData
Data length 2
checksum test 236 236
Serial: OmniStat : Invalid message from address 1
Serial: OmniStat : Simple Receive: Data 81 22 49 00 EC "I.ì Code: 0
Serial: OmniStat : Simple Send: 01 20 48 01 6A . H.j
Response from 1
Messsage type 2 RegisterData
Data length 2
checksum test 236 236
Serial: OmniStat : Invalid message from address 1
Serial: OmniStat : Simple Receive: Data 81 22 48 01 EC "H.ì Code: 0
Serial: OmniStat : Simple Send: 01 02 03 ...
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command
Response from 1
Messsage type 3 Group1Data
Data length 6
checksum test 81 81
Serial: OmniStat : Invalid message from address 1
Serial: OmniStat : Simple Receive: Data 81 63 7C 78 01 00 00 78 51 c|x...xQ Code: 0
Serial: OmniStat : Command queued: 01 20 49 01 6B . I.k at postion 1
Serial: OmniStat : Simple Send: 01 20 49 01 6B . I.k
Serial: OmniStat : Command queued: 01 20 02 01 24 . ..$ at postion 1
Serial: OmniStat : Response pending, que size 1
Serial: OmniStat : Command queued: 01 20 48 01 6A . H.j at postion 2
Serial: OmniStat : Response pending, que size 2
Serial: OmniStat : Command queued: 01 02 03 ... at postion 3
Serial: OmniStat : Response pending, que size 3
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command
Serial: OmniStat : Simple Send: 01 20 02 01 24 . ..$
Response from 1
Messsage type 2 RegisterData
Data length 2
checksum test 236 236
Serial: OmniStat : Invalid message from address 1
Serial: OmniStat : Simple Receive: Data 81 22 49 00 EC "I.ì Code: 0
Serial: OmniStat : Simple Send: 01 20 48 01 6A . H.j
Response from 1
Messsage type 2 RegisterData
Data length 2
checksum test 165 165
Serial: OmniStat : Invalid message from address 1
Serial: OmniStat : Simple Receive: Data 81 22 02 00 A5 "..¥ Code: 0
Serial: OmniStat : Simple Send: 01 02 03 ...
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command
Response from 1
Messsage type 3 Group1Data
Data length 6
checksum test 81 81
Serial: OmniStat : Invalid message from address 1
Serial: OmniStat : Simple Receive: Data 81 63 7C 78 01 00 00 78 51 c|x...xQ Code: 0
Serial: OmniStat : Command queued: 01 20 49 01 6B . I.k at postion 1
Serial: OmniStat : Simple Send: 01 20 49 01 6B . I.k
Serial: OmniStat : Command queued: 01 20 02 01 24 . ..$ at postion 1
Serial: OmniStat : Response pending, que size 1
Serial: OmniStat : Command queued: 01 20 48 01 6A . H.j at postion 2
Serial: OmniStat : Response pending, que size 2
Serial: OmniStat : Command queued: 01 02 03 ... at postion 3
Serial: OmniStat : Response pending, que size 3
Serial: OmniStat : Opened Device: OmniStat Port: 1 Settings: 300 N 0 8 0
Serial: OmniStat : Callback Installed 1

DaveS
January 17th, 2007, 04:51 PM
Mike, Looking at your lua file it looks like you are polling for group 2 data. I didn't think that was use by the omnistat.

Dave

Promixis
January 17th, 2007, 04:52 PM
ok, small fixes attached. looking good.

Promixis
January 17th, 2007, 04:53 PM
Mike, Looking at your lua file it looks like you are polling for group 2 data. I didn't think that was use by the omnistat.

Dave

it should be group 1 data.

i think its right. try the above file... ? email

DaveS
January 17th, 2007, 04:54 PM
nope sorry now I see that you are not

Promixis
January 17th, 2007, 04:58 PM
nope sorry now I see that you are not

ok, give the latest rev. a spin.

DaveS
January 17th, 2007, 05:00 PM
email is davids2003 at adelphia.net

This one looks to run clean. atleast to me.

Welcome to Promixis Girder 5.0!
Registering NR client from 192.168.0.163:2533
Serial: OmniStat : Opened Device: OmniStat Port: 1 Settings: 300 N 0 8 0
Serial: OmniStat : Callback Installed 1
requires... enabling comp Geographical Location
Queuing device office3\CustomWeather\Local.ForecastConditions.1
Direct send
*** Sending device descriptions to NetRemote@3c285299-1b7c-4a9d-baa6-ee17e8d36121
*** Sent
Queuing device office3\CustomWeather\Local.ForecastConditions.5
Merged the tables
Queuing device office3\SunClock\SunClock
Merged the tables
Queuing device office3\CustomWeather\Local.CurrentConditions
Merged the tables
Queuing device office3\CustomWeather\Local.ForecastConditions.2
Merged the tables
Queuing device office3\CustomWeather\Local.ForecastConditions.4
Merged the tables
Queuing device office3\CustomWeather\Local.ForecastConditions.3
Merged the tables
Got matching transaction 0 from client
Pending transactions - processing
*** Sending device descriptions to NetRemote@3c285299-1b7c-4a9d-baa6-ee17e8d36121
*** Sent
Clearing pending transaction
Got matching transaction 1 from client
No pending transaction for 3c285299-1b7c-4a9d-baa6-ee17e8d36121
Queuing device office3\CustomWeather\Local.ForecastConditions.1
Direct send
*** Sending device descriptions to NetRemote@3c285299-1b7c-4a9d-baa6-ee17e8d36121
*** Sent
Queuing device office3\CustomWeather\Local.ForecastConditions.2
Merged the tables
Queuing device office3\CustomWeather\Local.ForecastConditions.3
Merged the tables
Queuing device office3\CustomWeather\Local.ForecastConditions.4
Merged the tables
Queuing device office3\CustomWeather\Local.ForecastConditions.5
Merged the tables
Queuing device office3\Insteon\07.13.7E
Merged the tables
Queuing device office3\Insteon\07.AD.AF
Merged the tables
Queuing device office3\Insteon\07.1A.6B
Merged the tables
Queuing device office3\Insteon\07.19.71
Merged the tables
Queuing device office3\Insteon\07.16.F4
Merged the tables
Queuing device office3\Insteon\05.7B.E2
Merged the tables
Queuing device office3\Insteon\07.16.74
Merged the tables
Queuing device office3\Insteon\07.13.FF
Merged the tables
Queuing device office3\Insteon\07.18.66
Merged the tables
Got matching transaction 2 from client
Pending transactions - processing
*** Sending device descriptions to NetRemote@3c285299-1b7c-4a9d-baa6-ee17e8d36121
*** Sent
Clearing pending transaction
Got matching transaction 3 from client
No pending transaction for 3c285299-1b7c-4a9d-baa6-ee17e8d36121
Serial: OmniStat : Command queued: 01 20 49 01 6B . I.k at postion 1
Serial: OmniStat : Simple Send: 01 20 49 01 6B . I.k
Serial: OmniStat : Command queued: 01 20 02 01 24 . ..$ at postion 1
Serial: OmniStat : Response pending, que size 1
Serial: OmniStat : Command queued: 01 20 48 01 6A . H.j at postion 2
Serial: OmniStat : Response pending, que size 2
Serial: OmniStat : Command queued: 01 02 03 ... at postion 3
Serial: OmniStat : Response pending, que size 3
Omnistat Event Add Thermostat 1
Response from 1
Messsage type 2 RegisterData
Data length 2
checksum test 236 236
Omnistat Event Update Thermostat 1 CommunicationStatus Ok
Serial: OmniStat : Simple Receive: Data 81 22 49 00 EC "I.ì Code: 0
Serial: OmniStat : Simple Send: 01 20 02 01 24 . ..$
Response from 1
Messsage type 2 RegisterData
Data length 2
checksum test 165 165
System Options 2
Omnistat Event Update Thermostat 1 Type 2
Serial: OmniStat : Simple Receive: Data 81 22 02 00 A5 "..¥ Code: 0
Serial: OmniStat : Simple Send: 01 20 48 01 6A . H.j
Response from 1
Messsage type 2 RegisterData
Data length 2
checksum test 236 236
Omnistat Event Update Thermostat 1 Status Off
Serial: OmniStat : Simple Receive: Data 81 22 48 01 EC "H.ì Code: 0
Serial: OmniStat : Simple Send: 01 02 03 ...
Response from 1
Messsage type 3 Group1Data
Data length 6
checksum test 82 82
Omnistat Event Update Thermostat 1 CoolSetPoint 72
Omnistat Event Update Thermostat 1 HeatSetPoint 68
Omnistat Event Update Thermostat 1 Mode Heat
Omnistat Event Update Thermostat 1 Fan Auto
Omnistat Event Update Thermostat 1 Hold Off
Omnistat Event Update Thermostat 1 CurrentTemperature 69
Serial: OmniStat : Simple Receive: Data 81 63 7C 78 01 00 00 79 52 c|x...yR Code: 0
Serial: OmniStat : Command queued: 01 20 49 01 6B . I.k at postion 1
Serial: OmniStat : Simple Send: 01 20 49 01 6B . I.k
Serial: OmniStat : Command queued: 01 20 48 01 6A . H.j at postion 1
Serial: OmniStat : Response pending, que size 1
Serial: OmniStat : Command queued: 01 02 03 ... at postion 2
Serial: OmniStat : Response pending, que size 2
Response from 1
Messsage type 2 RegisterData
Data length 2
checksum test 236 236
Serial: OmniStat : Simple Receive: Data 81 22 49 00 EC "I.ì Code: 0
Serial: OmniStat : Simple Send: 01 20 48 01 6A . H.j
Response from 1
Messsage type 2 RegisterData
Data length 2
checksum test 236 236
Serial: OmniStat : Simple Receive: Data 81 22 48 01 EC "H.ì Code: 0
Serial: OmniStat : Simple Send: 01 02 03 ...
Response from 1
Messsage type 3 Group1Data
Data length 6
checksum test 82 82
Serial: OmniStat : Simple Receive: Data 81 63 7C 78 01 00 00 79 52 c|x...yR Code: 0
Serial: OmniStat : Command queued: 01 20 49 01 6B . I.k at postion 1
Serial: OmniStat : Simple Send: 01 20 49 01 6B . I.k
Serial: OmniStat : Command queued: 01 20 48 01 6A . H.j at postion 1
Serial: OmniStat : Response pending, que size 1
Serial: OmniStat : Command queued: 01 02 03 ... at postion 2
Serial: OmniStat : Response pending, que size 2
Response from 1
Messsage type 2 RegisterData
Data length 2
checksum test 236 236
Serial: OmniStat : Simple Receive: Data 81 22 49 00 EC "I.ì Code: 0
Serial: OmniStat : Simple Send: 01 20 48 01 6A . H.j
Response from 1
Messsage type 2 RegisterData
Data length 2
checksum test 236 236
Serial: OmniStat : Simple Receive: Data 81 22 48 01 EC "H.ì Code: 0
Serial: OmniStat : Simple Send: 01 02 03 ...
Response from 1
Messsage type 3 Group1Data
Data length 6
checksum test 82 82
Serial: OmniStat : Simple Receive: Data 81 63 7C 78 01 00 00 79 52 c|x...yR Code: 0
Serial: OmniStat : Command queued: 01 20 49 01 6B . I.k at postion 1
Serial: OmniStat : Simple Send: 01 20 49 01 6B . I.k
Serial: OmniStat : Command queued: 01 20 48 01 6A . H.j at postion 1
Serial: OmniStat : Response pending, que size 1
Serial: OmniStat : Command queued: 01 02 03 ... at postion 2
Serial: OmniStat : Response pending, que size 2
Response from 1
Messsage type 2 RegisterData
Data length 2
checksum test 236 236
Serial: OmniStat : Simple Receive: Data 81 22 49 00 EC "I.ì Code: 0
Serial: OmniStat : Simple Send: 01 20 48 01 6A . H.j
Response from 1
Messsage type 2 RegisterData
Data length 2
checksum test 236 236
Serial: OmniStat : Simple Receive: Data 81 22 48 01 EC "H.ì Code: 0
Serial: OmniStat : Simple Send: 01 02 03 ...
Response from 1
Messsage type 3 Group1Data
Data length 6
checksum test 82 82

Promixis
January 17th, 2007, 05:03 PM
Great,

The SystemOptions register is not documented but I am guessing this describes if the T stat can do Heating only, cooling only or both. Would you try setting the rc80 in to these modes and then see what the system options reports?

DaveS
January 17th, 2007, 05:19 PM
Mike, I've set the RC80 to heat, cool and auto. mode print out on the console indicates the change.

this output in the log is always the same.

System Options 2
Omnistat Event Update Thermostat 1 Type 2

Not sure what your asking wrt system options reports.

Promixis
January 17th, 2007, 05:51 PM
What would be nice to know is the modes the tstat is capable of operating in. It must be somewhere in the registers...

Promixis
January 17th, 2007, 06:03 PM
ok, this cleans the output up a bit.

you may want to try looking at some of the registers to see if we can figure this out. i have an email into HAI too.

please change the various set points and make sure the plugin reports them correctly.

DaveS
January 17th, 2007, 06:14 PM
nope -- something wrong here. get the following over and over.



Serial: OmniStat : Command queued: 01 20 49 01 6B . I.k at postion 1
Serial: OmniStat : Simple Send: 01 20 49 01 6B . I.k
Serial: OmniStat : Command queued: 01 20 02 01 24 . ..$ at postion 1
Serial: OmniStat : Response pending, que size 1
Serial: OmniStat : Command queued: 01 20 48 01 6A . H.j at postion 2
Serial: OmniStat : Response pending, que size 2
Serial: OmniStat : Command queued: 01 02 03 ... at postion 3
Serial: OmniStat : Response pending, que size 3
Omnistat Event Add Thermostat 1
Serial: OmniStat : Invalid message from address 1
Serial: OmniStat : Simple Receive: Data 81 22 49 00 EC "I.ì Code: 0
Serial: OmniStat : Simple Send: 01 20 02 01 24 . ..$
Serial: OmniStat : Invalid message from address 1

DaveS
January 17th, 2007, 07:12 PM
Mike, lua file prior to the last does report the set points correctly. changing them is reflected in the log as well

Promixis
January 17th, 2007, 09:02 PM
ok, few more small fixes... be sure to try

OmniStat:SetCoolSetPoint (1,6

and other Set XXX methods.

DaveS
January 18th, 2007, 08:16 AM
Here is output from command to change mode (currently heat) to auto.

command sent is: OmniStat:SetMode(1,61,03) and output is:

Serial: OmniStat : Command queued: 01 21 3D 3D 9C .!==œ at postion 1
Serial: OmniStat : Simple Send: 01 21 3D 3D 9C .!==œ
Response from 1 Messsage type 0 ACK
Serial: OmniStat : Data does not match length from address 1 : 0 0

Mode does not change. Looking at the command queued and command sent it looks like its sending 3D to register 61.

DaveS
January 18th, 2007, 08:22 AM
And here is command to set the HeatSetPoint. Note: No matter what temp value I put in it sets the HeatSetPoint to 60 degrees F. It does set it however. Command sent is:

OmniStat:SetHeatSetPoint(1,60,67) and output is:

Serial: OmniStat : Command queued: 01 21 3C 6F CD .!<oÍ at postion 1
Serial: OmniStat : Simple Send: 01 21 3C 6F CD .!<oÍ
Response from 1 Messsage type 0 ACK
Serial: OmniStat : Data does not match length from address 1 : 0 0
Serial: OmniStat : Command queued: 01 20 49 01 6B . I.k at postion 1
Serial: OmniStat : Response pending, que size 1
Serial: OmniStat : Command queued: 01 20 02 01 24 . ..$ at postion 2
Serial: OmniStat : Response pending, que size 2
Serial: OmniStat : Command queued: 01 20 48 01 6A . H.j at postion 3
Serial: OmniStat : Response pending, que size 3
Serial: OmniStat : Command queued: 01 02 03 ... at postion 4
Serial: OmniStat : Response pending, que size 4
Omnistat Event Add Thermostat 1
Omnistat Event Update Thermostat 1 CommunicationStatus Ok
Serial: OmniStat : ACK from address 1
Serial: OmniStat : Command queued: 01 02 03 ... at postion 5
Serial: OmniStat : Response pending, que size 5
Serial: OmniStat : Simple Receive: Data 81 00 81 . Code: 0
Serial: OmniStat : Simple Send: 01 20 49 01 6B . I.k
Response from 1 Messsage type 2 RegisterData
Serial: OmniStat : Data does not match length from address 1 : 2 2
Model 73 nil
Serial Error (CallLua): ...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:290: assertion failed!
stack traceback:
[C]: in function `assert'
...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:290: in function <...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:211>
Omnistat Event Update Thermostat 1 CommunicationStatus Error
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command
Serial: OmniStat : Simple Send: 01 20 02 01 24 . ..$
Response from 1 Messsage type 2 RegisterData
Serial: OmniStat : Data does not match length from address 1 : 2 2
Omnistat Event Update Thermostat 1 CommunicationStatus Ok
System Options 2
Omnistat Event Update Thermostat 1 Type 2
Serial: OmniStat : Simple Receive: Data 81 22 02 00 A5 "..¥ Code: 0
Serial: OmniStat : Simple Send: 01 20 48 01 6A . H.j
Serial: OmniStat : Command queued: 01 20 49 01 6B . I.k at postion 3
Serial: OmniStat : Response pending, que size 3
Serial: OmniStat : Command queued: 01 20 48 01 6A . H.j at postion 4
Serial: OmniStat : Response pending, que size 4
Serial: OmniStat : Command queued: 01 02 03 ... at postion 5
Serial: OmniStat : Response pending, que size 5
Response from 1 Messsage type 2 RegisterData
Serial: OmniStat : Data does not match length from address 1 : 2 2
Omnistat Event Update Thermostat 1 Status Off
Model 0 RC-80
Omnistat Event Update Thermostat 1 Model RC-80
Serial: OmniStat : Simple Receive: Data 81 22 48 00 EB "H.ë Code: 0
Serial: OmniStat : Simple Send: 01 02 03 ...
Response from 1 Messsage type 3 Group1Data
Serial: OmniStat : Data does not match length from address 1 : 6 6
Omnistat Event Update Thermostat 1 CoolSetPoint 72
Omnistat Event Update Thermostat 1 HeatSetPoint 60
Omnistat Event Update Thermostat 1 Mode Heat
Omnistat Event Update Thermostat 1 Fan Auto
Omnistat Event Update Thermostat 1 Hold Off
Omnistat Event Update Thermostat 1 CurrentTemperature 68
Serial: OmniStat : Simple Receive: Data 81 63 7C 6F 01 00 00 78 48 c|o...xH Code: 0
Serial: OmniStat : Simple Send: 01 02 03 ...
Serial: OmniStat : Opened Device: OmniStat Port: 1 Settings: 300 N 0 8 0

Promixis
January 18th, 2007, 08:31 AM
Hi Dave, you do not need to specify the register... the command does it.

ie. its

OmniStat:SetMode (3)

or

OmniStat:SetMode ('Heat')

Others are

SetFan ('On') or SetFan ('Auto')

SetHold ('On') or SetHold ('Off')

Plus the temperature settings.

Please try the attached file with one small bug fix. Let things run for a bit, try the above commands and include all output here.

Next, will be adding this to the DM.

Promixis
January 18th, 2007, 08:35 AM
Same thing with setting the setpoints. Do not send the register number, just the temp you want.

Promixis
January 18th, 2007, 08:37 AM
Sorry, try this file instead... small error in processing registry responses.

DaveS
January 18th, 2007, 08:38 AM
Also found this info on register 2 (system options) in the docs that came with the unit.

0 = Auto changerover no fan with heat
1 = Auto changerover fan on with heat
4 = Manual changeover no fan with heat
5 = Manual changeover fan on with heat
12 = Heat Only no fan with heat
13 = Heat Only fan on with heat
20 = Cool only


The default setting is 0

Looks like you can set it to be a cool only or a heat only tstat

DaveS
January 18th, 2007, 09:20 AM
Attached is the console log after issuing OmniStat:AddThermostat(1)

While is was running I issued OmniStat:SetFan('On')

DaveS
January 18th, 2007, 09:33 AM
After sending OmniStat:SetHeatSetPoint(1,65) I get the following output. Went to the tstat and it was set to 65


<u 117
Serial: OmniStat : Command queued: 01 21 3C 75 D3 .!<uÓ at postion 1
Serial: OmniStat : Simple Send: 01 21 3C 75 D3 .!<uÓ
Response from 1 Messsage type 0 ACK
Serial: OmniStat : Command queued: 01 20 49 01 6B . I.k at postion 1
Serial: OmniStat : Response pending, que size 1
Serial: OmniStat : Command queued: 01 20 02 01 24 . ..$ at postion 2
Serial: OmniStat : Response pending, que size 2
Serial: OmniStat : Command queued: 01 20 48 01 6A . H.j at postion 3
Serial: OmniStat : Response pending, que size 3
Serial: OmniStat : Command queued: 01 02 03 ... at postion 4
Serial: OmniStat : Response pending, que size 4
Omnistat Event Add Thermostat 1
Omnistat Event Update Thermostat 1 CommunicationStatus Ok
Serial: OmniStat : ACK from address 1
Serial: OmniStat : Command queued: 01 02 03 ... at postion 5
Serial: OmniStat : Response pending, que size 5
Serial: OmniStat : Simple Receive: Data 81 00 81 . Code: 0
Serial: OmniStat : Simple Send: 01 20 49 01 6B . I.k
Response from 1 Messsage type 2 RegisterData
Model 0 RC-80
Omnistat Event Update Thermostat 1 Model RC-80
Serial: OmniStat : Simple Receive: Data 81 22 49 00 EC "I.ì Code: 0
Serial: OmniStat : Simple Send: 01 20 02 01 24 . ..$
Response from 1 Messsage type 2 RegisterData
System Options 0
Omnistat Event Update Thermostat 1 Type 0
Serial: OmniStat : Simple Receive: Data 81 22 02 00 A5 "..¥ Code: 0
Serial: OmniStat : Simple Send: 01 20 48 01 6A . H.j
Response from 1 Messsage type 2 RegisterData
Omnistat Event Update Thermostat 1 Status Off
Model nil nil
Omnistat Event Update Thermostat 1 Model nil
Serial: OmniStat : Simple Receive: Data 81 22 48 00 EB "H.ë Code: 0
Serial: OmniStat : Simple Send: 01 02 03 ...
Response from 1 Messsage type 3 Group1Data
Omnistat Event Update Thermostat 1 CoolSetPoint 72
Omnistat Event Update Thermostat 1 HeatSetPoint 65
Omnistat Event Update Thermostat 1 Mode Heat
Serial Error (CallLua): ...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:315: assertion failed!
stack traceback:
[C]: in function `assert'
...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:315: in function <...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:211>
Omnistat Event Update Thermostat 1 CommunicationStatus Error
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command
Serial: OmniStat : Simple Send: 01 02 03 ...
Response from 1 Messsage type 3 Group1Data
Omnistat Event Update Thermostat 1 CommunicationStatus Ok
Serial Error (CallLua): ...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:315: assertion failed!
stack traceback:
[C]: in function `assert'
...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:315: in function <...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:211>
Omnistat Event Update Thermostat 1 CommunicationStatus Error
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command
Serial: OmniStat : Command queued: 01 20 49 01 6B . I.k at postion 1
Serial: OmniStat : Simple Send: 01 20 49 01 6B . I.k
Serial: OmniStat : Command queued: 01 20 48 01 6A . H.j at postion 1
Serial: OmniStat : Response pending, que size 1
Serial: OmniStat : Command queued: 01 02 03 ... at postion 2
Serial: OmniStat : Response pending, que size 2
Response from 1 Messsage type 2 RegisterData
Omnistat Event Update Thermostat 1 CommunicationStatus Ok
Model 0 RC-80
Omnistat Event Update Thermostat 1 Model RC-80
Serial: OmniStat : Simple Receive: Data 81 22 49 00 EC "I.ì Code: 0
Serial: OmniStat : Simple Send: 01 20 48 01 6A . H.j
Response from 1 Messsage type 2 RegisterData
Model nil nil
Omnistat Event Update Thermostat 1 Model nil
Serial: OmniStat : Simple Receive: Data 81 22 48 00 EB "H.ë Code: 0
Serial: OmniStat : Simple Send: 01 02 03 ...
Response from 1 Messsage type 3 Group1Data
Serial Error (CallLua): ...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:315: assertion failed!
stack traceback:
[C]: in function `assert'
...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:315: in function <...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:211>
Omnistat Event Update Thermostat 1 CommunicationStatus Error
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command

Promixis
January 18th, 2007, 12:13 PM
Ok, this one adds support for system options.

Would you try changing the options on the thermostat. You will need to reset G after the change as it only asks for this value once after you add a thermostat.

DaveS
January 18th, 2007, 03:49 PM
Is this what your looking for.

Serial: OmniStat : Simple Send: 01 20 02 01 24 . ..$
Response from 1 Messsage type 2 RegisterData Data length 2 02 01 ..
System Options 1

I set it to option 1 from the thermostat itself. Restarted girder and this is the relevent output. System Options was a 0 before.

Promixis
January 18th, 2007, 03:59 PM
great.

would you attach a minute worth of output here....

DaveS
January 18th, 2007, 04:06 PM
This is about 1 min of output. I did set system options back to 0 by the way.

Promixis
January 18th, 2007, 04:21 PM
ok, one more bug fix then on to the DM I hope

DaveS
January 18th, 2007, 04:28 PM
Mike, Here is about 1 min of output after the last update.

DaveS
January 18th, 2007, 04:36 PM
Mike, Lets not move on so fast. It seems I still can't do things like SetMode, SetHold, etc. It seems I'm only able to SetCoolSetPoint and SetHeatSetPoint.

Promixis
January 18th, 2007, 04:37 PM
ok, one more time.... frustrating not having the device here for these tiny little fixes. thanks for your patience.

Promixis
January 18th, 2007, 04:37 PM
Mike, Lets not move on so fast. It seems I still can't do things like SetMode, SetHold, etc. It seems I'm only able to SetCoolSetPoint and SetHeatSetPoint.

ok, try the last update, show console output from setmode etc.

DaveS
January 18th, 2007, 04:48 PM
Ok command is OmniStat:SetMode('auto') and output is

...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:195: attempt to compare number with string
stack traceback:
...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:195: in function `SendMessage'
...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:418: in function `SetRegisters'
...es\Promixis\Girder5\/plugins/serial/HAI OmniStat.lua:467: in function `SetMode'
[string "Mine.gml:\Omnistat\Scripting"]:1: in main chunk

Then I sent command OmniStat:SetMode(3) and output is:

Serial: OmniStat : Command queued: 03 11 3D 51 ..=Q at postion 1
Serial: OmniStat : Simple Send: 03 11 3D 51 ..=Q
Serial: OmniStat : Simple Receive: Data Code: 16384
Serial: OmniStat : ERROR: No response to last command

Promixis
January 18th, 2007, 04:49 PM
Dave,

Its

OmniStat:SetMode (1,3) or (1,'Auto')

Promixis
January 18th, 2007, 04:49 PM
ie, you must include the thermostat address first in those commands.

DaveS
January 18th, 2007, 04:53 PM
Actually I thankyou for your patience. Being a non programer I appreciate your skills. It's amazing to me what you have done here not even having the devices yourself.

DaveS
February 2nd, 2007, 08:17 AM
Mike, Looks like 511 broke the Omnistat. attached is some console log output

Promixis
February 2nd, 2007, 09:30 AM
yup, will look at it later...

Ron
February 2nd, 2007, 09:52 AM
please put this file in luascript/components directory, let me know if that works.

DaveS
February 2nd, 2007, 02:31 PM
Ron, Yes that took care of it.

Thanks