Premise premise generic ipsc over tcip plug in?

Motorola Premise

etc6849

Senior Member
anyone know if premise has the ability to send ipsc commands over ethernet to generic devices that I define the codes for? I have an Onkyo receiver that supports IPSC and was able to get it working with mcontrol trial software, but premise looks better and it's free :)
 
You've stumped me. What is "IPSC"?

allows one to send command strings to a device, similar to rs232 control, but done over a network. for example, i might connect to the onkyo using a predefined port and the receivers ip address, then send it the command string !pwr01 to turn it on...
 
... allows one to send command strings to a device, similar to rs232 control, but done over a network. ...

OK, then the answer is "yes'.

The Device Wizard is used to create device drivers for all sorts of gear especially A/V equipment. The Wizard will ask if the device is controlled via IR or Serial commands (or both). By selecting Serial, the resulting device driver will allow you to enter a command string for each of the device's functions (like "!pwr01"). Now the device driver is able to send commands via a serial port. You'll run the Driver Wizard to help you create an "Onkyo Receiver" driver.

To make it communicate via a network port involves one more simple step: use the included Lantronix UDS-10 driver. It is all software; there's no hardware involved.

Configure the UDS-10 driver instance to talk to the Onkyo'sIP address and port. Call it "MyOnkyo" (or whatever). The final step is dead simple. When selecting a communications port for the Onkyo Receiver driver, instead of navigating to Device > SerialPorts and selecting a "COM" port, you go to Devices > Lantronix and select "MyOnkyo". Now your Onkyo Receiver driver will communicate via the network.


Here's an excerpt (page 5) from the ELK M1 driver's reference manual. it describes how to configure the Lantronix driver.

The Elk M1 Device Driver can communicate via an Ethernet port using a Lantronix device driver.
  1. In Premise Builder, click File > Add-Ins.
  2. Ensure Devices is selected in the Look In drop-down list.
  3. Checkmark Lantronix and click OK.
  4. In the Shortcut Bar, click Devices.
  5. In the Explorer window, right-click Lantronix and select New > UDS 10.
  6. Change the name from UDS10 to M1XEP (optional but recommended).
  7. In the Properties window, locate the IPAddress property and enter the address used by your M1XEP card (factory default is 192.168.0.251).
  8. Set the IPPort property to the non-secure port number used by your M1XEP card (factory default is 2101).
  9. Leave the MAC property blank.
 
thank you very much 123 :) Maybe I won't need that silly GC-100 after all for network control. I'll post results here when I get this running (probably next week).
 
You're welcome!

BTW, I whipped up a demo video for you that does the following:

Demo video shows how to use the Class Wizard to create a custom Receiver driver. Demo assumes the target receiver (Onkyo) communicates via a LAN.

Demo begins by installing the Lantronix driver and creating an instance of a UDS10 called OnkyoPort. It is configured with the IP address and port of the physical Onkyo receiver. OnkyoPort will serve as the network interface for the MyOnkyo Receiver driver.

Class Wizard is used to create a serially controlled Receiver driver called MyOnkyo. Two of the driver's properties are supplied with operating commands.

A Mediazone is created with a generic receiver and is bound to the MyOnkyo driver. Finally, the MyOnkyo driver's communications port is linked to the OnkyoPort.

The demo ends by showing how all of this looks in Premise Browser. The Mediazone contains the receiver where it can be controlled via an auto-generated user-interface.
 
You're welcome!

BTW, I whipped up a demo video for you that does the following:

Demo video shows how to use the Class Wizard to create a custom Receiver driver. Demo assumes the target receiver (Onkyo) communicates via a LAN.

Demo begins by installing the Lantronix driver and creating an instance of a UDS10 called OnkyoPort. It is configured with the IP address and port of the physical Onkyo receiver. OnkyoPort will serve as the network interface for the MyOnkyo Receiver driver.

Class Wizard is used to create a serially controlled Receiver driver called MyOnkyo. Two of the driver's properties are supplied with operating commands.

A Mediazone is created with a generic receiver and is bound to the MyOnkyo driver. Finally, the MyOnkyo driver's communications port is linked to the OnkyoPort.

The demo ends by showing how all of this looks in Premise Browser. The Mediazone contains the receiver where it can be controlled via an auto-generated user-interface.

Thanks for the video. Unfortunately, I'm not having any luck controlling the receiver even using a simple COM1 connection and Premise. I tried adding a command with the text: !1PWR00 and having premise add a carriage return at the end. No luck turning the device off. Any ideas? I've pasted some of the support doc below...

1.1. ISCP over RS-232C

1. Protocol Overview
"ISCP (Integra Serial Control Protocol) consists of three command characters and parameter character(s) of variable length."
Hardware Overview
3wire RS-232C protocol
9600 baud / 8 data bits / 1 stop bits / no parity / no flow control
9 pin female D type connector (pin 2 is transmit,pin 3 is receive,pin 5 is signal ground)
Use a straight-thru cable to connect to your PC.
Software Overview
Controller -> Device Message Example (Power On)

1st 2nd 3rd-5th 6th- last
! 1 P W R 0 1 [CR]

End Character
"[CR]"or"[LF]"or"[CR][LF]"
ISCP Message(Command+Parameter)
Destination Unit type Character ("1" for Receiver)
Start Character

Device -> Controller Message Exmaple (Power Status = Standby)

1st 2nd 3rd 5th 6th last
! 1 S S T 0 0 [EOF]

End Character
ISCP Message(Command+Parameter)
Source Unit type Character ("1" for Receiver)
Start Character


Special Characters
[CR] Carriage Return ASCII Code 0x0D
[LF] Line Feed ASCII Code 0x0A
[EOF] End of File ASCII Code 0x1A
 
so the serial rs232 connection is working now. I'm not sure why, but once I rebooted it started working. However, the UDS10 port is not working. The port status says open and I am able to see the commands go out using port spy. Any ideas? The command string looks different from the rs232 string... I did get rid of the exclamation point as the documentation suggests for ethernet use, but I'm not too sure about how to send the proper packet header before the command string. I've pasted what the onkyo/integra ethernet commands look like in the attached jpeg.
 

Attachments

  • ethernet.JPG
    ethernet.JPG
    84.6 KB · Views: 49
I'm not familiar with this protocol. It'd be handy to telnet to the Receiver and observe the commands it generates.

The Ethernet version of the protocol (eISCP) appears to require far more information including a calculated value (data size). Without access to a table of commands, you'll have to manually calculate the values and enter them in each driver command. Or programmatically build the command string ...

I found a driver on the old Premise forum that was designed to support an Integra Receiver (DTR53) and DVD player (DPS53). I believe Integra 'high-end Onkyo' and uses the same serial protocol (Power On: !1PWR01\r).

The Class Wizard builds 1-way drivers (transmit only). The Integra driver is 2-way (receive codes from the Receiver) and serves as a good example of how to convert a 1-way driver into a 2-way. In addition, for some commands, it builds them programmatically and transmits them via a serial "worker object" (see the ClassConstructor method). This technique may be required to handle the eISCP protocol.

BTW, I found a thread in the mHome forum that discusses difficulties communicating with this gear.
 

Attachments

  • Integra_Serial_V2.zip
    12.3 KB · Views: 50
Thank you very much. That driver will be really useful to me in learning how to receive mute status from the receiver. I already have volume updating correctly using a worker, but I couldn't figure out how to do mute. You are right, these rs232 commands will be identical to my tx-nr905.

Where did you find this useful thing at? I tried searching on here, but it didn't come up for me. I take it this is the same driver the guy in the tutorial video on serial 2-way communications.

So far, I really like Premise. I was able to get it to finally install on Vista late last night. Beautiful interface for playing music over the network or through the web! I can't believe this thing will play 5.1 96k/24bit wave files perfectly (over HDMI) along with plain old mp3's. I like how it works with my HDMI 1.3 soundcard; most programs try to upmix stereo and send it out as 5.1 such as vlc and this doesn't. I am definitely impressed with the versatility of this free program.

I'm not familiar with this protocol. It'd be handy to telnet to the Receiver and observe the commands it generates.

The Ethernet version of the protocol (eISCP) appears to require far more information including a calculated value (data size). Without access to a table of commands, you'll have to manually calculate the values and enter them in each driver command. Or programmatically build the command string ...

I found a driver on the old Premise forum that was designed to support an Integra Receiver (DTR53) and DVD player (DPS53). I believe Integra 'high-end Onkyo' and uses the same serial protocol (Power On: !1PWR01\r).

The Class Wizard builds 1-way drivers (transmit only). The Integra driver is 2-way (receive codes from the Receiver) and serves as a good example of how to convert a 1-way driver into a 2-way. In addition, for some commands, it builds them programmatically and transmits them via a serial "worker object" (see the ClassConstructor method). This technique may be required to handle the eISCP protocol.

BTW, I found a thread in the mHome forum that discusses difficulties communicating with this gear.
 
...Where did you find this useful thing at? I tried searching on here, but it didn't come up for me. I take it this is the same driver the guy in the tutorial video on serial 2-way communications....
Here's the gold mine: the original Premise Support Forum. It is also mentioned at the very bottom of the Premise Wiki.

I've cherry-picked some of the major drivers found there and posted them in the Downloads section here on Cocoontech. However, there are over three years worth of posts, modules, and drivers sitting there.

The main problem with the site is that its Search function is broken .. and Motorola has taken it down several times ... and put back up after a great of begging and pleading. FWIW, I used HTTrack to make a local copy of the entire site and then indexed the content with Windows Desktop Search.

Damon Deen is the voice you hear leading the video tutorials and he wrote many modules and drivers including the Integra driver (Integra DVD driver is also available as a native driver). He and David Abendschein left Motorola and started their own HA integration company (Digital Residence). I suspect that in the course of their projects, they have undoubtedly written a gazillion Premise drivers and applications. So as to prevent all of that work from quietly slipping into oblivion, maybe they can make a charitable donation to the Premise community. Perchance to dream! :D

Glad to hear that Premise is meeting your needs.
 
Thanks again for the file. I noticed one small bug that took me a few hours to figure out and I'll post my solution here. On my onkyo receiver, sometimes the receiver would transmit a string such as: "!MVLN/A" for main volume level and the existing code always treated the right 2 digits as hex. This occurs when I use the knob fast, (I guess) or due to the 50ms wait time being cut short? In case someone else runs into the same problem, what I did was add a few more lines to the existing code:

workerOutput is just a command I made to watch variables.

The code is found in the OnChangeNewData script.

if left(this.RxTextLine,5) = "!1MVL" then
if right(this.RxTextLine,3) = "N/A" then
this.workerOutput.TxTextData = "!1MVLN/A"
else
this.Received = true
this.workerOutput.TxTextData = cint("&H" & right(this.RxTextLine,2))/100
this.Volume = this.workerOutput.TxTextData
end if
end if

I also added muting functionality:

if this.RxTextLine = "!1AMT00" then
if not this.Mute= false then
this.mute = false
this.workerOutput.TxTextData = "unmuted"
end if
end if
if this.RxTextLine = "!1AMT01" then
if not this.Mute= true then
this.workerOutput.TxTextData = "muted"
this.mute = true
end if
end if
 
Good stuff! Be sure to post the completed driver in the Premise Downloads section.


After you've grown bored of the Class Wizard, you can try using Builder's Expert Mode. While in Modules, select anything listed in the Content area. Now press Ctrl+Shift+A. A dialog box will be displayed warning you that you are now in Expert mode.

Expert mode suppresses the Class Wizard. In its place, you gain the ability to create new base classes, functions, methods, virtual methods, class relationships (inheritance, extension, or containment), properties, and more. Just right-click the Class section of a Module to see all of the functionality available in Expert mode.
 
Sorry to bump an old thread but I was wondering if anyone ever had any success with ISCP over ethernet? I have an onkyo receiver that I would love to use ethernet control with.
 
I am having trouble with the fake UDS10 to send network packets. Just to try things out I made a serial receiver and put 'hello' into the power toggle rs232 command. I have a UDS10 that is set to the IP address of the computer that premise is running on with a port of 20000. The UDS10 is bound to the receiver. When I test the command I can see the hex commands going out in port spy but I don't see any network activity in wireshark. Am I doing something wrong here?
 
Back
Top