Messages - davidsmoot

Coming to this community as someone with programming skills but no multimedia / AV knowledge, my first impression was the wiki sucked. I had trouble finding basic answers like what exactly is LMCE? Where do I find a list of all currently supported alarm systems? What are the pro's and cons of various automation protocols? Etc. The information is somewhat there, just scattered and not well organized.

Now I have not contributed anything, wiki, code, or otherwise (I just bought a house, spare time is an oxymoron). I hit the forums a couple times a day while my code is compiling at work.

If I jump in the wiki and start trying to make stuff easier to find will I be welcomed for helping out or will I get my butt chewed for changing stuff when I'm a clueless newb?

No promises here, I've got all the usual excuses of a full time job plus kid plus I'm studying for my PE certification. But this community has a little "abrasiveness" some times that makes me hesitant to stick my neck out.

I've been poking around at the micasaverde.com site and stumbled across a post for a fairly inexpensive alarm system from GE that has an RS232 adapter available. http://www.homesecuritystore.com/p-175-80-860-4-concord-4-wireless-alarm-kit.aspx and if you click on the accessories there is a 232 adapter and the protocol can be downloaded from GE's site. Have not bought it yet but thinking about it. Need to learn a little more.

No details on the underlying tech but they route the data to their servers and let you view it via a web interface. The catch is you agree to let them cycle your AC off during peak periods for 10-15 minutes but you can manually override their ability to do this

Seems a cheap way to get your thermostat connected. Gonna give it a try I think.

Bump only because I am interested too. I've looked at the Wiki and tried some google searches but no luck. I'm willing to write drivers to do the connection into MCE but I'm having trouble finding alarm systems that have an output of RS232/ Z-wave / TCP-IP to even make the connection. The only thing I could find in the wiki is the Honeywell documentation that is now being obsoleted. David

I could then run two networks, wired and wireless with two separate DHCP servers but going through the same gateway to the outside world. Still trying to decide if all this extra work is worth it but I have no feel for how stable the core as the sole path to the internet is.

Internet access has become a necessity at my house, just like electricity and running water. My family expects it to "just work" and will call my cell if it doesn't so I am hesitant to make the core my single point failure for everyone.

You know now that I think about it, the simplest answer is probably just keep a spare cheap wireless router handy with the same SSID and keys configured but just unplugged. If the core goes down, just unplug the yellow cable from the core and plug it into the spare router and turn it on. Then all the wireless clients are back up and running until I can fix the core. I've got a decent G router on the shelf I could set up. That's my plan

This topic interests me too. If I bring the network down to play with LMCE, it annoys the family. (if momma ain't happy, ain't nobody happy).

The wiki page shows two variations where the core is between the cable modem and all the other network users. If the core hiccups, everyone loses internet until you fix it or reconfigure.

I think I understand Jimbodude's comment... you can run two separate networks. Your "everybody network" that has a direct path to the internet through a router and your "LMCE network" that has all your LMCE devices. Your core lives on both networks and is the gateway to the outside for devices on the LMCE network. As long as your core gets a fixed IP on its "everybody" side and allows port 80 connections incoming, orbiters on the "everybody network" can point to that fixed IP and control the core.

The downside is every network resource either lives on one side or the other or you have to know how to do all the plumbing to bridge them.

My solution: Use the standard "core as the gateway" configuration and get a long oddly colored cable for the patch between your cable modem and the core. If the internet does not work and I am not there to troubleshoot it, I just tell my wife to pull the long yellow cable from the core and plug it straight into her laptop.

Do the wrappers have to be wrappers? Let's say I wrote a simple GUI program to control my sprinkler system through an Arduino. Could I make my application have DCERouter support built in?

The more I learn about LMCE, the more it rocks. I was (irrationally) worried about having my LMCE core lag behind the latest ubuntu stuff. In the past I've been so cramped my tinkering system had to be my server and my playground for all my projects. I could not afford the clutter and cabling to have one box dedicated to one task and another box to another. But I realized my new house is literally twice the square footage as my old one so I can afford to dedicate one box to LMCE.

However since the LMCE box will be the gateway device connected to my cable modem with a public IP address, I still want to do a few non standard things like SSH, SVN, OpenVPN, etc. I'll figure it out I'm sure.

Now I'm working on figuring out my voip options... looks like my N900 has a SIP client built in so this should be fun.David

So I'm starting to wrap my head around what LMCE is. Here's my concept of LMCE, correct me if I am wrong.

The core of LMCE is the DCErouter that is basically a "post office". Open source applications like Xine, Myth, Asterisk, etc have a LMCE "wrapper" that interfaces them to the DCERouter. This wrapper can do multiple things:

create messages to be passed into DCErouter

register for messages that it is interested in receiving

respond to messages it receives by making the wrapped application do something

So LMCE at its simplest is a framework for automating the interaction of various standalone open source applications. Asterisk and Xine were never designed to work together to pause a movie when the phone rings. But that can happen through LMCE. LMCE creates wrappers for both applications. The Xine wrapper registers with DCERouter and says he wants to know when a phone call message is received by DCERouter. The wrapper for Asterisk registers with DCERouter and says I am going to create phone call messages. When the phone call happens, the wrapper around asterisk creates a message that is passed to DCERouter and then to the Xine Wrapper. The Xine Wrapper then makes Xine pause the movie. Is that roughly correct?

So in theory, D-Bus could provide a lot of this functionality if the "wrapped" applications built in support correct? Could / does DCERouter interact over D-Bus? Probably would be PITA to handle the registration process.

So what are the pros and cons of LMCE versus D-Bus for this type of event driven message passing? I know LMCE was up and working before D-Bus was mature so it had mature functionality first. Plus D-Bus support has to be built into the application where the wrapper model can be applied after the fact. But the wrapper model means LMCE has to lag behind upstream development to make sure the integration is correct, right? Plus D-Bus is application specific where LMCE is more "event driven", you can send messages directly to xine or asterisk using D-bus but there is not a generic D-Bus API for registering for all home security events?

I want to play with some of this home automation stuff but I'm really not a big media consumer (at least not TV / Movies anyway) and I'm trying to figure out which framework makes more sense. LMCE is much more mature but if I want a new wrapper, I write it or pay someone to write it. If I use something like D-Bus then it becomes more likely that hardware and software will be supported out of the box in the future. Or maybe a middle path of building a D-Bus plug-in for DCERouter where the two protocols could interact?

Slowly cobbling together my first core. Have one of these left over from a Mac setup I had for a while. It appears to have linux drivers. Has anyone made it work with LMCE? I know I could just build the core and see what happens but if it is not gonna work I'd rather spend the cash on hardware that will work instead of building my core up more than once.David

I don't think the serial port does what you think it does... I went and looked at the product web page and this is an interesting device but not really a good fit for LinuxMCE (not like I am an MCE expert). LinuxMCE expects to be the central "brain" that talks to a number of controllers and actuators and sensors. This "Ocelot" device is not a controllable peripheral, it is its own "brain" that expects to be in control of one or more actuators and read one or more sensors.

The Ocelot is a PLC (Programmable Logic Controller) so it is closer to an FPGA than a microcontroller or computer. The serial port is for loading the PLC with your own custom logic that then responds to inputs with appropriate outputs.

Now you could make the Ocelot some kind of smart adapter / converter that took input in one form and created an output in another (for example, it could receive an IR command and then create an X10 message). It can do very complex logic but it is not designed or suitable to be controlled over a serial port in real time from a host PC.

All those other devices are peripherals designed to be controlled by the Ocelot over its proprietary RS485 system.

Basically this is an "instead of" LinuxMCE system, not a integratable peripheral to LinuxMCE. David

I'm fine with blunt and direct but here's my take:I've been poking and reading the wiki and I can't even get a good grip on what LinuxMCE is and the high level architecture.

I get that DCERouter is important. I get that it is some kind of message passing / event driven interface / glue layer for various multimedia systems within linux. But I've read the FAQ and it sounds fairly complex to build the whole system. Without knowing where to start and how to do a hello world type starting point, I'm hesitant to dive into code and hope I figure it out.Never mind, apparently I did not read the wiki well enough. Found the starting point... time to read.

The promise of MCE is tremendous but for me at least, finding answers has been hard.

Plus I have all the usual excuses of job, kid, just bought a new house (which is why I am even here).

By the way, I think this is a tremendous project that has applications way beyond media. Once I get a few more spare hours after my old house sells and I'm moved into my new place I'll sort through all the developer documentation, read the wiki, post some questions here, and then create the wiki page I think needs to be created to describe the high level architecture.