Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - ddamron

Pages: 1 ... 3 4 [5] 6
61
Developers / How do I get Scenario info?
« on: December 15, 2007, 10:47:55 pm »
I'd like to set up the Scenario info as Insteon Groups..

Anyone know how I get access to the Scenarios?

62
Developers / What features do YOU want in an Insteon Interface?
« on: December 14, 2007, 01:04:33 pm »
I'm at the point to start building in features... Give me some ideas, I'll see what I can do.

I've got (currently on the go):
1.  Device Detection - Confirmation of Insteon devices vs pluto device templates (so you don't control your sprinklers when you want to turn on a light )
2.  Automatic Device creation - automatic creation of devices based on Insteon device detected

I'd like to implement:
3.  Enhanced Grouping - extend the Group functionality of Linuxmce down to the Insteon level for SIMULTANEOUS multiple device activation.
4.  ability to 'spider' the insteon network for undetected devices. (includes automatic All-Linking)

What else?




63
Users / Why you use LinuxMCE
« on: December 14, 2007, 07:37:40 am »
I choose all of the above!

64
Users / Fiire Station Volume problems
« on: December 14, 2007, 07:31:22 am »
Anyone else experiencing this?

Audio on Fiire 1" is fine.. until you FF or REW video... then when you resume, volume is not where it was..
I have to use my chief and reset the volume back..

It's a minor annoyance, but it should be looked into..

Dan

65
Developers / How do I determine Group Membership in DCE?
« on: December 12, 2007, 09:08:35 pm »
I've got my EZBridge interface working quite well now.  I'd like to add some smarts to it.

When you associate a device to a group, how can you programatically get that information in Ruby?

I'd like to program the group memberships right out to the devices themselves.

EG:  Office Light is in group Basement Lights

I want to take the group BASEMENT LIGHTS and create an insteon group for said devices.

Thanks,

Dan

66
Users / It looks like updates are coming! I see HD and Bluray players!
« on: December 08, 2007, 06:15:29 am »
well, I'm busy hacking at my code...

thought I'd take a break, and install my dell laptop as an MD... it's been giving me headaches...

All the sudden, a whackload of updates started coming down....  Anyone else see them?

libresolution failed downloading...

Maybe they haven't finished putting it all up...

I tried clicking on the players, they simply said file not found...
:(
lol

67
Developers / Insteon Integrated! EZBridge now, PLM soon
« on: November 30, 2007, 07:28:47 pm »
I'm getting a weird error each time I load my GSD/Ruby Insteon Driver...

The error is:
359:01   11/30/07 11:01:22.718      Failed loading code: Error loading code:
error: undefined method `log' for Device_103:Class, line: 27
line 27 is ok, and so is the method (located in private method listing)

This started when power failed during a reboot...

I've tried deleting the device, and recreating it,
deleting all code in the template, and recreating it,
deleting all commands out of the template, and recreating them...

Looks to me like a corrupt sql table of some sort (error loading code)
any ideas on how to fix it?

Thanks,

Dan

68
Developers / GSD & Ruby questions
« on: November 26, 2007, 07:48:18 pm »
Each time I quick reload my router, I get this message in my log:
========== NEW LOG SECTION ==========
1   11/26/07 10:42:19   86 (spawning-device)   Starting... 1
1   11/26/07 10:42:19   86 (spawning-device)   Found /usr/pluto/bin/Generic_Serial_Device
05   11/26/07 10:42:20.300      Creating child 87 <0xb78526d0>
05   11/26/07 10:42:20.301      Note: Device manager has attached a device of type 38 that this has no custom event handler for.  It will not fire events. <0xb78526d0>
05   11/26/07 10:42:20.301      Note: Device manager has attached a device of type 38 that this has no custom handler for.  This is normal for IR. <0xb78526d0>
RCODE:

I can fire an ON command.. and I get this in my log:

05   11/26/07 11:26:21.429      GSDMessageTranslator isCmdImplemented = false <0xb604eb90>
05   11/26/07 11:26:21.431      #### Pre-Process Queue = 1 <0xb604eb90>
05   11/26/07 11:26:21.484      _QueueProc Pre - 184 : 0 <0xb7851b90>
05   11/26/07 11:26:21.484      GSD-Sleep Pre 184 : 0 <0xb7851b90>
05   11/26/07 11:26:21.484      Process Queue = 1 <0xb7851b90>
05   11/26/07 11:26:21.826      GSD-Sleep Post 184 : 0 <0xb7851b90>
05   11/26/07 11:26:21.826      _QueueProc Post - 184 : 0 <0xb7851b90>

when I try to fire an OFF command, I get this:

05   11/26/07 11:27:05.813      GSDMessageTranslator isCmdImplemented = false <0xb604eb90>
05   11/26/07 11:27:05.815      #### Pre-Process Queue = 1 <0xb604eb90>
05   11/26/07 11:27:05.862      _QueueProc Pre - 193 : 0 <0xb7851b90>
05   11/26/07 11:27:05.863      GSD-DispatchMessage - ignoring 193 because is useless. <0xb7851b90>
05   11/26/07 11:27:05.863      _QueueProc Post - 193 : 0 <0xb7851b90>

I must be missing something here... can anyone shed some light on this?

Thanks

Dan

69
Developers / Ruby code for EZ-Bridge (Insteon) RC1
« on: November 25, 2007, 09:18:24 pm »

See END OF THREAD for most current code.


Here is my beta code for EZBridge.  This code works fairly well.  It's a far cry from my previous attempt(Gimme a break, I was learning Ruby at the same time, and still am).

I have implemented a cmdqueue to queue commands so I can receive the responses in a timely manner.

I still have ONE SMALL question, I hope someone here can answer..

I process the Receive command for Child: all Ok.
I want to tell linuxmce the command was successful.

What device do I send the 'Successful' command?  Or, do I have to send an event?!?

Here's a snippet from my DCERouter log showing the two commands:

Received Message from 41 (Windows XP PC/tablet (Horiz) / Office) to 40 (Office Light / Office), type 1 id 184 Command:Set Level, retry none,
parameters: <0x877ccb90>
08   12/04/07 19:08:53.346        Parameter 76(Level): 100 <0x877ccb90>
08   12/04/07 19:08:56.534      Received Message from 40 (Office Light / Office) to 1 (CORE / Office), type 1 id 184 Command:Set Level, retry none,
parameters: <0x82fc3b90>
08   12/04/07 19:08:56.534        Parameter 76(Level): 100 <0x82fc3b90>

I've tried sending the command to:
1 (CORE/Office),
2 (DCERouter), and
41 (Windows XP PC/tablet (Horiz) / Office)

The commands get sent, but status doesn't get updated...

I'm really fighting with this issue because:
when I click <Light ON> from an orbiter, all is well, (from my log:)

05   12/04/07 18:50:41.630      GSDMessageTranslator isCmdImplemented = false <0xb6010b90>
05   12/04/07 18:50:41.631      #### Pre-Process Queue = 1 <0xb6010b90>
05   12/04/07 18:50:41.651      _QueueProc Pre - 184 : 0 <0xb7813b90>
05   12/04/07 18:50:41.651      GSD-Sleep Pre 184 : 0 <0xb7813b90>
05   12/04/07 18:50:41.651      Process Queue = 1 <0xb7813b90>

when, I click <Light OFF> from said orbiter, I get (in my log):

05   12/04/07 18:50:59.099      GSDMessageTranslator isCmdImplemented = false <0xb6010b90>
05   12/04/07 18:50:59.100      #### Pre-Process Queue = 1 <0xb6010b90>
05   12/04/07 18:50:59.154      _QueueProc Pre - 193 : 0 <0xb7813b90>
05   12/04/07 18:50:59.155      GSD-DispatchMessage - ignoring 193 because is useless. <0xb7813b90>
05   12/04/07 18:50:59.155      _QueueProc Post - 193 : 0 <0xb7813b90>

Now, Here's the problem:  I don't want to send an 'ack' until I've verified the command has sent successfully.  This includes 'process incoming data' routines...

Am I going about this in the wrong way??  do I HAVE to return the 'ack' from within the Process Command for Child (or private methods as needed) ?

Anywho, here's the code snippets..
(There is useless code here, that's beta for you!)

Private Method Listing:
Code: [Select]
#### Written by Dan Damron
#### #373 Private Method Listing ####
#
# Commands send back to DCE
# 184 - SetLevel value 0-100 (% on) or +-1 for steps
# 193 - Turn Light OFF
# 192 - Turn Light ON
#
#
#
#
require "rexml/document"
require "rexml/streamlistener"

include REXML


def EZToDCE(param)
#param contains a hash of EZBridge command structure
log('--|---------EZtoDCE')
checkWait(param)
log('-----:)-----EZtoDCE ' + param['Response'] + ' Received.')
case param['Response']
# Standard Commands (responses to command)
when 'GetRevision' # Special Response
log('-----|---------GetRevision:' + param['Parameter1'])

when 'GetLatLong'  # Special Response
log('-----|---------GetLatLong: Lat=' + param['Lat'] + ', Long=' + param['Long'])

when 'SetLatLong'
if param['Parameter1'] = 'True' then
log('-----|---------SetLatLong: Ok')
else
log('-----X---------SetLatLong: FAILED!')
end
when 'SetPasswd'

when 'SetTimeZone'

when 'GetClock' # Special Response

when 'SetClock'

when 'SetNTPServer'

when 'Upgrade'

when 'NetCfg'

when 'Reset'
sleep 0.5
log('----X-------' + param['Parameter1']) # RestartEZBridge

when 'LstTimers'  # Special Response


when 'ClrTimers'

when 'AddTimer'

when 'GetTimer'    # Special Response

when 'SetTimer'

when 'DelTimer'

when 'GetVersion' # Special Response

when 'SndGrp'

when 'SndIns'

when 'SndX10'

when 'StLnk'

when 'CancelLnk'

when 'SetDev'

when 'RstPLM'

when 'GetLnk'

when 'GetNext'

when 'SetCfg'

when 'GetLnkData'

when 'LEDON'

when 'LEDOFF'

when 'MngLnk'

when 'GetCfg' # Special Response

when 'LstMacros' # Special Response

when 'ClrMacros'

when 'AddMacro'

when 'GetMacro' # Special Response

when 'SetMacro'

when 'DelMacro'

when 'LstDevices' # Special Response

when 'ClrDevices'

when 'AddDevice'

when 'GetDevice' # Special Response

when 'SetDevice'

when 'DelDevice'

when 'LstZones'

when 'ClrZones'

when 'AddZone'

when 'GetZone'

when 'SetZone'

when 'DelZone'

when 'AddDevZone'

when 'DelDevZone'

# Response Messages
when 'InsStdMsg'

when 'InsExtMsg'

when 'X10Msg'

when 'InsLnkSts'

when 'BtnRpt'

when 'UsrRst'

when 'GrpEvntRpt'

when 'LnkData'

# Other messages
when 'PLMEchoError' # I know theres a PLM comm error...
# error sending command to PLM, reset command and try again
log('-----X------' + param['Response'])
resetcmd = {'Command' => 'Reset'}
$cmdqueue.insert(0, resetcmd)
sleep 0.1
$wAIT = false
SndIns()
when 'LongAck'
log('-----X------' + param['Response'])
# Error - seems to show up after PLMEchoError
resetcmd = {'Command' => 'Reset'}
$cmdqueue.insert(0, resetcmd)
sleep 0.1
$wAIT = false
SndIns()
else
log('-----XXXXXXX UNKNOWN Response Received:' + param['Response'])
end

end
def checkWait(param)
#Checks for response from current command.
if $cmdqueue[0] != nil
log('---|--------CheckWait:')
log('---|--------Current Command:' + $cmdqueue[0]['Command'])
log('---|--------param:' + param['Response'])
log('---|--------Flag:'+ $wAIT.to_s)
if $cmdqueue[0]['Command'] == param['Response']
$wAIT = false
log('---|--------Current Command Queue Length Before Delete:' + $cmdqueue.nitems.to_s)
$cmdqueue.delete_at(0)
log('---|--------Flag & currentCmd cleared')
log('---|--------Current Command Queue Length:' + $cmdqueue.nitems.to_s)
if $cmdqueue.nitems > 0 then
SndIns()
end
end
else
log('------:)----checkWait: command queue is emtpy')
if $wAIT == true
log('------:(----CheckWait: TRUE')
else
log('------:)----CheckWait: TRUE')
end
end
end

def parseMessage(param)
param.keys.each{|p| log("PM Param:" + p.to_s + "=" + param[p].to_s)}
case param['Response']
when 'SndIns' # response message
$wAIT = false
insHb = param['Parameter3'] # From
insMb = param['Parameter4']
insLb = param['Parameter5']
insID = insHb + "." + insMb + "." + insLb
myDevFrom = $children[insID]
myDevTo = 2 #DCE Router
myPriority = 1
myType = 1 # Command

#####log('Parent:' + parent_) -- this crashes the code

case param['Parameter7']
when '11' # dim/Brighten
myID = 184
log('From:' + myDevFrom.to_s)
log('To:' + myDevTo.to_s)
log('Pri:' + myPriority.to_s)
log('Type:' + myType.to_s)
log('ID:' + myID.to_s)
cmd = Command.new(myDevFrom, myDevTo, myPriority, myType, 184)
cmd.params_[184] = hextopercent(param['Parameter8']).to_s
SendCommand(cmd)
log('SENT!!!..............')
when '13' # off
cmd = Command.new(myDevFrom, myDevTo, myPriority, myType, 193)
SendCommand(cmd)
when '12' # on
cmd = Command.new(myDevFrom, myDevTo, myPriority, myType, 192)
SendCommand(cmd)
end
when 'InsStdMsg'
insHb = param['Parameter3']
insMb = param['Parameter4']
insLb = param['Parameter5']
insID = insHb + "." + insMb + "." + insLb
myDevFrom = $children[insID]
myDevTo = 2 #DCE Router
myPriority = 1
myType = 1 # Command
myID = InsCmdtoID(param['Parameter10'])


$wAIT = false
when 'InsExtMsg'
$wAIT = false
when 'X10Msg'
$wAIT = false

when 'InsLnkSts'
$wAIT = false
when 'BtnRpt'
$wAIT = false
when 'UsrRst'
$wAIT = false
when 'GrpEvntRpt'
$wAIT = false
when 'LnkData'
$wAIT = false
when 'GetVersion'
$wAIT = false
when 'GetCfg'
$wAIT = false
when 'LstTimers'
$wAIT = false
when 'GetTimer'
$wAIT = false
when 'GetRevision'
$wAIT = false
when 'GetLatLong'
$wAIT = false
when 'GetClock'
$wAIT = false
when 'LstMacros'
$wAIT = false
when 'GetMacro'
$wAIT = false
when 'LstDevices'
$wAIT = false
when 'GetDevice'
$wAIT = false
else
log('*#*#*#*#*#*#*#UNKNOWN COMMAND*#*#*#*#*#*#')
log(param['Response'])
$wAIT = false
end
end



def InsCmdtoID(value)
case value
when '01' # Assign to (Insteon) Group
return 0
when '02' # Delete from (Insteon) Group
return 0
when '10' # Ping
return 0
when '11' # ON
return 192
when '13' # OFF
return 193
when '15' # Brighten 1 step
return 0
when '16' # Dim 1 step
return 0
when '17' # Start Manual Change
return 0
when '18' # Stop Manual Change
return 0
when '19' # Status Request
return 0
when '24' # Do EE READ
return 0
when '28' # Set Address MSB
return 0
when '29' # POKE
return 0
when '2A' # POKE Extended
return 0
when '2B' # PEEK
return 0
when '2C' # PEEK Internal
return 0
when '2D' # POKE internal
return 0
else
return 0
end

end

def rawX10(value)

x10MSN = $X10HouseCodes.index[value[0..0]]
x10LSN = $X10UnitCodes.index[value[1..1]]
return x10MSN + x10LSN
end
def X10Flag(value)
  return + $X10CommandCodes.index[Value] + '0'
end

def SndIns
# create a new XML command for SndIns
log('|-----------SndIns:WAIT FLAG = ' + $wAIT.to_s)
if $wAIT == false
param = $cmdqueue[0]
log('|-----------SndIns: Items in queue:' + $cmdqueue.nitems.to_s)
doc = Document.new
doc << XMLDecl.new
el = doc.add_element 'command'
el.text = param['Command']
param.keys.each {|k|
#log('|-----------SndIns:param[' + k.to_s + ']=' + param[k].to_s)
if k != 'Command' then
el1 = el.add_element k
el1.text = param[k]
end
}
conn_.Reconnect()
conn_.Send(doc.to_s)
log('Out---------SndIns:CmdSent:' + doc.to_s)

$wAIT = TRUE
else
log('X-----------SndIns: Waiting for response to:' +  $cmdqueue[0]['Command'].to_s)
log('X-----------SndIns: Current Queue Length:' + $cmdqueue.nitems.to_s)
end
end

def padhex(hex)
if hex.length==1
hex = "0" + hex
end
return hex
end

def percenttohex(level)
# convert from percent to byte
return "%X" %((level.to_i * 2.56) -1).to_i
end

def hextopercent(level)
return (level.hex.to_i / 2.55).to_i
end

def log(line)
$log = File.open("/var/log/pluto/39_Generic_Serial_Device.log", "a")
$log.puts "(***):" + line.to_s
$log.close
end

Process Incoming Data:
Code: [Select]
#### Written by Dan Damron
#### #350 Process Incoming Data ####


#$recvBuff = ''
#while (true)
# buff = conn_.RecvDelimited($responseString, 100)
# if (buff.length() == 0)
# break
# end
# $recvbuff = $recvbuff + buff
#end

log('In----------Processing Incoming Data')
while(true)
    buff=conn_.Recv(128,100)
    if(buff.length() == 0)
        break
    end
    $recvbuff = $recvbuff + buff
end

$recvbuff = parsestring($recvbuff)

Process Initialize:

Code: [Select]
#### Written by Dan Damron
#### #355 Process Initialize ####
$log = ''
$cmdTo = ''
$cmdFrom = ''
$cmdPriority = ''
$cmdType = ''
$cmdID = ''
$cmdParams = {}
$children = {}
$recvbuff = ''
$wAIT = false
$currentCmd = {}
$flagsBroadcastMessage = 128
$flagsDirectMessage = 0
$flagsAckDirectMessage = 32
$flagsNackDirectMessage = 160
$flagsGroupBroadcaseMessage = 192
$flagsGroupCleanupDirectMessage = 64
$flagsGroupAckDirectMessage =96
$flagsGroupNackDirectMessage = 224
$cmdqueue = []
$dcequeue = []
$X10HouseCodes = {
'6', 'A',
'E', 'B',
'2', 'C',
'A', 'D',
'1', 'E',
'9', 'F',
'5', 'G',
'D', 'H',
'7', 'I',
'F', 'J',
'3', 'K',
'B', 'L',
'0', 'M',
'8', 'N',
'4', 'O',
'C', 'P'}
$X10UnitCodes = {'6', '1', 'E', '2', '2', '3', 'A', '4',
'1', '5', '9', '6', '5', '7', 'D', '8',
'7', '9', 'F', '10', '3', '11', 'B', '12',
'0', '13', '8', '14', '4', '15', 'C', '16'}
$X10CommandCodes = {'6', 'All Lights Off', 'E', 'Status = off',
'2', 'On', 'A', 'Pre-Set Dim',
'1', 'All Lights On', '9', 'Hail Ack',
'5', 'Bright', 'D', 'Status=on',
'7', 'Extended Code','F', 'Status Request',
'3', 'Off', 'B', 'Pre-set Dim',
'0', 'All Units Off', '8', 'Hail Request',
'4', 'Dim', 'C', 'Extended Data(analog)'}
$responseString = '<' + '/' + 'Response>'
log('Finding Children..')
device_.childdevices_.each{|c|
log(c.to_s.to_i)
log(device_.childdevices_[c.to_s.to_i].devdata_[12])
$children[device_.childdevices_[c.to_s.to_i].devdata_[12].chomp.lstrip.rstrip] = c.to_s.to_i
}
$children.keys.each{|c| log(c + ' = ' + $children[c].to_s)}


Process Command for Child:
Code: [Select]
#### Written by Dan Damron
#### #384 Process Receive Command for Child ####


log('------dce--- PRCFC:$wAIT=' + $wAIT.to_s)
#add DCE command to DCE queue




insteonID = device_.childdevices_[cmd.devidto_].devdata_[12].chomp.split('.')
$cmdID = cmd.id_
$cmdTo = cmd.devidto_
childType = device_.childdevices_[cmd.devidto_].devtemplid_
$cmdFrom = cmd.devidfrom_
$cmdPriority = cmd.priority_
$cmdType = cmd.type_
$cmdParams = cmd.params_
log('------dce--- cmdID:' + $cmdID.to_s + ', cmdFrom:' + $cmdFrom.to_s + ', cmdTo:' + $cmdTo.to_s + ', cmdType:' + $cmdType.to_s + ', Priority:' + $cmdPriority.to_s)
$cmdParams.keys.each {|p| log('------dce--- Param_[' + p.to_s + ']=' + $cmdParams[p])}
case cmd.id_
when 192 # ON
if insteonID.length > 2 then

param = {'Command' => 'SndIns',
'Parameter1' => insteonID[0],
'Parameter2' => insteonID[1],
'Parameter3' => insteonID[2],
'Parameter4' => '0F',
'Parameter5' => '11',
'Parameter6' => 'FF'}
$cmdqueue << param
SndIns()
else
log "------dce--- X10 DEVICE!!!"


param = {'Command' => 'SndX10',
'Parameter1' => rawX10(device_.childdevices_[cmd.devidto_].devdata_[12]),
'Parameter2' => X10Flag('On')}
$cmdqueue << param
SndIns()
end
resp = Command.new($cmdTo, 1, $cmdPriority, $cmdType, $cmdID)
resp.params_ = $cmdParams
SendCommand(resp)
when 193 #OFF
if insteonID.length > 2 then

param = {'Command' => 'SndIns',
'Parameter1' => insteonID[0],
'Parameter2' => insteonID[1],
'Parameter3' => insteonID[2],
'Parameter4' => '0F',
'Parameter5' => '13',
'Parameter6' => '00'}
$cmdqueue << param
SndIns()
else
log "------dce--- X10 DEVICE!!!"
param = {'Command' => 'SndX10',
'Parameter1' => rawX10(device_.childdevices_[cmd.devidto_].devdata_[12]),
'Parameter2' => X10Flag('Off')}
$cmdqueue << param
SndIns()

end
resp = Command.new($cmdTo, 1, $cmdPriority, $cmdType, $cmdID)
resp.params_ = $cmdParams
SendCommand(resp)

when 184 #SetLevel
# convert from percent to hex
dim_level = percenttohex(cmd.params_[76])
log("------dce--- Dim Level:" + dim_level.to_s)
if insteonID.length > 2 then

param = {'Command' => 'SndIns',
'Parameter1' => insteonID[0],
'Parameter2' => insteonID[1],
'Parameter3' => insteonID[2],
'Parameter4' => '0F',
'Parameter5' => '11',
'Parameter6' => dim_level}
$cmdqueue << param
SndIns()
else
log "X10 DEVICE!!! relative Dimming command"
# have to send 2 commands
#param = {'Command' => 'SndX10',
#'Parameter1' => rawX10(device_.childdevices_[cmd.devidto_].devdata_[12]),
#'Parameter2' => $X10CommandCodes.index['Bright'] + $X10UnitCodes.index[dim_level]
#$cmdqueue << param
#param = {'Command' => 'SndX10',
#dim_level = ((cmd.params_[76] * 16 + 1)/100).to_i.to_s
#'Parameter1' => rawX10(device_.Childdevices_[cmd.devidto_].devdata_[12]),
#'Parameter2' => $X10CommandCodes.index['Dim'] + $X10UnitCodes.index[dim_level]}

SndIns()

end
resp = Command.new($cmdTo, 1, $cmdPriority, $cmdType, $cmdID)
resp.params_ = $cmdParams
SendCommand(resp)
end

70
Users / Fiire Station 2.2" Review/Specs
« on: November 22, 2007, 11:07:50 pm »
Motherboard:  VIA EPIA-EX
interestingly enough, no HDD
audio out by coax spdif or optical spdif ONLY.. (no audio 1/8" connectors)

will fill more in when I learn more...

Dan

71
Users / Fiire Station 1" Review/Specs
« on: November 22, 2007, 11:05:03 pm »
heh, someone from Polywell must be reading my reviews.... I didn't get the invoice included with this shipment, so I cannot give you a complete breakdown of prices... yet

Ok, 1" - carefully cracked open the case..
40G 2.5" hard drive...
wifi card with external mount antennae (didn't know this had wifi)
via everything...
1G LAN port..
Power supply connector has a nice screw-in sleeve to prevent it from being unplugged..
will fill in more when I get a chance to look at it more...
Dan


72
Developers / Request XML Data #869
« on: November 21, 2007, 06:37:38 pm »
I am trying to write an interface for the EZBridge (IP/Insteon) using GSD/Ruby.

all of the commands to/from the EZBridge are in XML format.

I noticed, in the Datagrid Commands, seems like XML parsing is already supported.

I searched the wiki for XML with no hits.

Does anyone know how to use these commands and, if possible, give a 'sample'?

attempting simple commands first.. I'd like to send an XML msg and receive an XML msg back (most of the time, multiple XML msgs back)

Here's a sample xml msg I send to IP:port
<?xml version="1.0"?>
<command>SndIns
<parameter1>0x0B</parameter1>
<parameter2>0x71</parameter2>
<parameter3>0xAB</parameter3>
<parameter4>0x0F</parameter4>
<parameter5>0x11</parameter5>
<parameter6>0xFF</parameter6>
</command>

and the message(s) I get back:

<?xml version="1.0"?>
<Response> SndIns
<Parameter1>0X2</Parameter1>
<Parameter2>0X62</Parameter2>
<Parameter3>0XB</Parameter3>
<Parameter4>0X71</Parameter4>
<Parameter5>0XAB</Parameter5>
<Parameter6>0XF</Parameter6>
<Parameter7>0X11</Parameter7>
<Parameter8>0XFF</Parameter8>
<Parameter9>0X6</Parameter9>
</Response>

then...

<?xml version="1.0"?>
<Response> InsStdMsg
<Parameter1>0X2</Parameter1>
<Parameter2>0X50</Parameter2>
<Parameter3>0XB</Parameter3>
<Parameter4>0X71</Parameter4>
<Parameter5>0XAB</Parameter5>
<Parameter6>0X5</Parameter6>
<Parameter7>0XEA</Parameter7>
<Parameter8>0XD9</Parameter8>
<Parameter9>0X2B</Parameter9>
<Parameter10>0X11</Parameter10>
<Parameter11>0XFF</Parameter11>
</Response>



Thanks much!

Dan


73
Users / Fiire Engine REVIEW/SPECS!!
« on: November 17, 2007, 02:18:50 am »
I received my Fiire Engine about 10 mins ago...
also the fiire chief and 5 dongles... just plugged it in, it's setting itself up...

The Fiire Chief is NICE!  xp auto-installed the remote receiver and I was up and running in seconds...

Fiire Station is generating orbiters now... TTYL, time to PLAY


74
Developers / PeteK, I have a couple Questions: re: INSTEON
« on: November 16, 2007, 10:15:23 pm »
PeteK, thought I'd ask this in the forum rather than an email so everyone can benefit :)

I've been doing a bit of research to see how to implement the PLM.

There seems to be a simple way to implement it with GSD & Ruby. (as far as I can figure)

from digging on the wiki, I found that bi-directional support can be added via ruby (correct me if I'm wrong)

and that all commands can be intercepted in ruby.

My question is:

Why would a person write a "Driver" (as you have done for the PLC) versus using Ruby/GSD?

At least for Insteon related devices, I can't seem to find a reason to create a "coded" driver. (command line driver like you have)

Just curious, and thanks again!

Dan

75
Developers / New Insteon Device! Can you guess my model # EZUIRC
« on: November 16, 2007, 04:17:48 am »
Insteon - IR Bridge c/w (up to) 8 Blaster outputs, IR to Insteon, Insteon to IR..

SSSSSSswwwwwweeeeeeeeeeeeeeeeeetttttt!

Pages: 1 ... 3 4 [5] 6