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 - chrisbirkinshaw

Pages: [1] 2 3 ... 6
Developers / Help deciphering Denon AVC and Onkyo templates
« on: October 07, 2010, 12:13:23 am »

I have had a problem with my Denon AVC and Onkyo AV Receivers in that every once in a while (days or weeks) the serial port settings are removed and the devices set to disabled. This has followed me through 710, 810, 3 motherboards, PCI based serial, USB based serial, so there doesn't seem to be any hardware issue.

I have seen the following in the Process Initialize section of both the Denon and Onkyo device templates:

if initok==false
   DisableDevice( device_.devid_, true )
   print "The device wouldn't respond. Disabling it.\n"

I have 2 questions:

1. Why is this done? If nobody knows what do you think about me changing it to not disable the device?
2. Does the DisableDevice clear the serial port settings? Is this the desired behaviour if something is temp unavailable?

Thanks in advance,


Marketplace / Web DT 366 for sale
« on: July 27, 2010, 08:19:12 pm »
I have 2x Web DT 366 with wifi cards and the linux mce orbiter software installed. They should just be plug and play. Batteries seem quite good but bear in mind these units are second hand.

100 Euros each + shipping

PM me if you are interested

Users / IR Codes Deleted
« on: July 02, 2010, 07:53:28 pm »

IR codes seem to have been deleted for 3 out of 4 of my AV devices. I created all codes manually as they were not in the db.

Has anyone seen this before?


Developers / Reinventing the wheel
« on: June 08, 2010, 04:08:25 am »
In the daytime I work as a presales solutions architect for a software company. I've had chance recently to sit back from linuxMCE and have a think about things in a broader sense, as if I were approaching a project at work, and try to think objectively. Here are my thoughts.

LinuxMCE is a media center. Cool.

What is great about it? Well it can turn on my lights when the film has finished, I have easy touch screen access to lighting scenarios around the home, when I'm watching TV I can see who is calling when the phone rings, etc etc.

What makes LMCE indispensible and unique is the cool integration between security, HA, media, etc. What everyone complains about? Media playback.

I have heard some of the core devs getting very dispondent at the mountain of work to do on LMCE to do things like remove non open source code, bring it up to the current standards for media center UIs such as XBMC, write new plugins for things like Hulu, Mame, Pandora, etc. I feel sorry for the small handful of devs who are literally recoding a mammoth system, so complex and interconnected that probably not even one person alive knows every inch of it and never will. Maybe it's time to stand back and ask if the task is really too big, and also if it is justifiable (read on!)?

I also did a bit of playing around with Boxee and XBMC and suddenly thought - if the only thing stopping me using these packages full time was the lack of cool HA/security/climate integration, then wouldn't it be better to take the media playback from XBMC into LinuxMCE all get all those Hulu, Netflix, iPlayer, Pandora plugins for free, and not have to maintain this huge beast anymore? There is even now a mythtv plugin for XBMC which allows liveTV and recorded program watching, and of course it's very much under active development by a large community.

XBMC is all easily controllable via a HTTP API, which is even better.

I would propose to strip frontend duties away from the orbiter (except for non MD devices) and have XBMC launched by the DCERouter on startup. The HA, security, and telephone menus would all then be XBMC plugins. It should be possible to get devs in the XBMC community to write these plugins if we get them excited enough, which would be great news obviously.

- Leverage existing iphone/smartphone apps for XBMC control
- UI3 for things like webDT goes into XBMC dev pool and you get their dev support and involvement
- No more coding new plugins for media playback as new web portals launch (there will be a lot over the next few years you can bet! - how many do you want to code?!!)
- Development on things like the mame plugin becomes an XBMC plugin, and again gets a wider audience and contribution from XBMC devs
- DCERouter stays in there and modularity is preserved

Seems like a win/win situation.

Does linux need separate teams writing competing media centre applications? Is this for the best? It kind of defeats the whole open source philosophy of contributing code to make the pool better so that it benefits everyone involved. Lots of separate pools reduces the chance of benefits being shared.



Users / Zwave Out of Frame Flow error
« on: June 07, 2010, 10:22:32 pm »
Has anyone seen this before?

Code: [Select]
01 06/07/10 20:38:17.867 ERROR! Out of frame flow!! <0xb7261b90>
05 06/07/10 20:38:20.975 No callback received: await_callback: -1 timer: 31 <0xb7261b90>
01 06/07/10 20:38:21.078 ERROR! Out of frame flow!! <0xb7261b90>
01 06/07/10 20:38:21.216 ERROR! Out of frame flow!! <0xb7261b90>

Using the tricklestar USB stick.



Users / Remote control strategy for video source feeding two rooms
« on: June 07, 2010, 03:55:19 pm »

I have a Satellite Receiver in the living room I have split via a 2x4 HDMI matrix to also feed the living room.

HD SAT --> HDMI In 1
Other video src --> HDMI In 2

HDMI Out 1 --> Living Room TV
HDMI Out 2 --> Bedroom TV

I have a USB-UIRT in the cupboard with the source equipment and have all devices working for the living room setup.

What is the best approach for remote control from the bedroom? Should I add another instance of the SAT receiver to the devices list and assign to the bedroom? I notice that I cannot route the SAT device to both TVs from the web admin, which would be the best solution. Having the device defined twice is going to cause problems with the standby status getting confused I expect.

I would also have to split the matrix template in 2, and have one half assigned to the bedroom and one to the livingroom.

Would be interested to see how you've all tackled this one.



Feature requests & roadmap / Unified log files
« on: June 04, 2010, 10:52:49 am »
I have to tail loads of logs to debug my system. I've never seen a linux app package with so many separate log files. This is actually quite prohibitive.

How about Core.log and Devices.log and get rid of all those spawn device and device logs? The Devices.log could have a column for device id so with grep I can still filter things out. Or... maybe just one log!

Any thoughts?


Users / Solution for front door peephole security camera
« on: June 03, 2010, 01:42:47 pm »

I wish to have a camera in my front door which looks through a small peephole at whoever is ringing my doorbell. The cameras I can find on ebay are composite video out.

Did anyone get a good solution working here? Preferably to USB (have no free PCI slots).



1. It would be nice to have a page in the orbiter which displays a list of all devices which have either failed to start or have died and not restarted. At the moment I have problems whereby the zwave device dies but I never know unless I try to switch some lights on/off.

2. If a device is not started then more verbose logging should be provided somewhere, and it should be easily accessible. I have some GSD devices which no not start, are not disabled, but nothing is logged to any logs (grepped for the device name and also id in the log dir with no results). The /var/log/pluto/<device_id> log should be opened as early as possible so it can be logged into. I have devices which do not start but  never even have a log file created.

3. If the core dcerouter crashes then the media players and orbiters etc should continue running and try to reconnect in the background. The current behaviour has the effect of making the system quite infuriating sometimes (and as a result I have moved all media playback to dedicated devices - such as Xtreamers - under IR control)

Users / Strange zwave device failure
« on: April 23, 2010, 01:47:31 am »
My zwave lights stopped responding, so I check in the device logs and see this:
Code: [Select]
dcerouter_1009446:~# tail -f /var/log/pluto/49_ZWave.log

1 04/22/10 14:14:41 49 (spawning-device) Found /usr/pluto/bin/ZWave
05 04/22/10 14:14:42.883 Connect() failed, Error Code 111 (Connection refused)) <0xb71426c0>
05 04/22/10 14:14:43.882 Connect() failed, Error Code 111 (Connection refused)) <0xb71426c0>
05 04/22/10 14:14:44.882 Connect() failed, Error Code 111 (Connection refused)) <0xb71426c0>
05 04/22/10 14:14:45.882 Connect() failed, Error Code 111 (Connection refused)) <0xb71426c0>
05 04/22/10 14:14:46.882 Connect() failed, Error Code 111 (Connection refused)) <0xb71426c0>
Return code: 255
3 04/22/10 14:14:48 49 (spawning-device) Device died... count=50/50 dev=49
Thu Apr 22 14:14:48 BST 2010 died
3 04/22/10 14:14:59 49 (spawning-device) Aborting restart of device 49...

Seems a bit odd. Any ideas how to debug?



Users / USB-UIRT device not started
« on: April 16, 2010, 05:57:18 pm »
I have added a USB-UIRT to 810 beta and it is all there in the web interface but does not start at all. There is nothing about it in the App_Server log, and the devices are not disabled. Where else could I look?

Starting /usr/pluto/bin/USB_UIRT_0038 manually works and I can learn codes etc.



Installation issues / 0810 installation script seems broken
« on: April 07, 2010, 02:32:51 pm »

1. Install snapshot DVD of 810
2. Run the Desktop shortcut to /root/new-installer/
3. After installing a few packages I am asked to reboot
4. After reboot nothing happens - presented with a login prompt (KDE no longer starts as the symlinks were remove by the installer)
5. Manually run /root/new-installer/ again
6. Install of pluto-dcerouter fails as linuxmce sources have not been added to apt sources.list

I did some digging around and found a function in which adds the LinuxMCE sources called Setup_Apt_Conffiles, which seems to add either remote or local sources based on whether the core currently has internet connectivity (neat!). However, the part of where this is called from is commented out:

Code: [Select]

if [[ "$c_netExtKeep" != "true" ]] ;then


#trap 'RemoveOfflineSource' EXIT

apt-get update

I did find however that the script adds some repos, but this is not called at all from the script which is included in the DVD distribution.

Is there a reason for this? I assume this script is working for other users? How can it work for everyone else? I would go ahead an post a Trac ticket but it seems odd that nobody else would have run into this issue.



ps. my setup is a VMware virtual machine with 2 network interfaces (both appear in ifconfig output and are working)

Users / No DB access for web admin and DCERouter doesn't start
« on: March 29, 2010, 10:40:12 am »
Yesterday my system filled up to 100% on the root partition and stopped working. I cleared out some files and rebooted, but when I tried to access the web admin I got:

Fatal error: mysql error: [1044: Access denied for user ''@'localhost' to database 'pluto_main'] in CONNECT(, '****', '****', pluto_main) in /var/www/lmce-admin/include/adodb/ on line 77

This seemed very odd! I went into mysql and added permissions:

grant all on pluto_main.* to  ''@'localhost';
flush privileges;

The webadmin then gave me a similar message for pluto_media, so I repeated the above for that database.

Now the web admin worked! Phew. But, when I restarted the system again the DCERouter does not start. I see the following in the Launch Manager log:

Code: [Select]
10 03/29/10 10:53:54.662 Starting... <0xb71476c0>
10 03/29/10 10:53:54.662 =>initialize_Connections() <0xb71476c0>
10 03/29/10 10:53:54.675 Opening DB connection.. <0xb71476c0>
10 03/29/10 10:53:54.702 Successful <0xb71476c0>
05 03/29/10 10:53:54.713 Detected core as device #1 <0xb71476c0>
10 03/29/10 10:53:54.713 =>initialize_VideoSettings() <0xb71476c0>
10 03/29/10 10:53:54.713 =>initialize_AudioSettings() <0xb71476c0>
10 03/29/10 10:53:54.714 =>initialize_LogOptions() <0xb71476c0>
10 03/29/10 10:53:54.715 =>initialize_Start() <0xb71476c0>
10 03/29/10 10:53:54.715 Checking for mysql... <0xb71476c0>
10 03/29/10 10:53:54.715 Done checking for mysql...connection OK <0xb71476c0>
10 03/29/10 10:53:54.715 Checking for core services... <0xb71476c0>
10 03/29/10 10:53:54.715 Checking if core is up... <0xb71476c0>
10 03/29/10 10:53:54.741 No router lock file found, core is down <0xb71476c0>
10 03/29/10 10:53:54.741 Done checking for core services...core is not running <0xb71476c0>
10 03/29/10 10:53:54.741 AlarmManager::AddRelativeAlarm current time 1269856434 delay 5 type 2 <0xb71476c0>
10 03/29/10 10:53:54.742 AlarmManager::AddAbsoluteAlarm time 1269856439 type 2 <0xb71476c0>
21 03/29/10 10:53:54.742 lock(0x895737c) (>4) alarm: AlarmManager.cpp:185  <0xb71476c0>
21 03/29/10 10:53:54.742 acquired(0x895737c) #0 (>4) alarm AlarmManager.cpp:185  <0xb71476c0>
21 03/29/10 10:53:54.744 unlock(0x895737c) #0 (>4) alarm: AlarmManager.cpp:185  <0xb71476c0>
21 03/29/10 10:53:54.744 removed from map (0x895737c) #1 (>4) alarm: AlarmManager.cpp:185  was: 3 size, now 2 Rel: Y Got: Y <0xb71476c0>
21 03/29/10 10:53:54.744 end cond wait AlarmManager.cpp:102 (0x895737c)  <0xb7146b90>
21 03/29/10 10:53:54.754 start cond 0x89573b4 timed wait till 1269856439.0 now 1269856434.754391000 AlarmManager.cpp:102 (0x895737c)  <0xb7146b90>
21 03/29/10 10:53:54.755 end cond wait AlarmManager.cpp:102 (0x895737c)  <0xb6945b90>
21 03/29/10 10:53:54.755 start cond wait AlarmManager.cpp:102 (0x895737c)  <0xb6945b90>

Hmm. So I manually started the DCERouter and the App_Server in separate terminal sessions and a lot of stuff comes to life, however I see some stuff in their logs I have never seen before.


Code: [Select]
This program is distributed according to the terms of the GNU Public License, available at:
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Public License for more details.

21 03/29/10 9:23:43.550 lock(0x8887bac) (>2) messagequeue: DCERouter.cpp:1862  <0xb65a5b90>
21 03/29/10 9:23:43.551 acquired(0x8887bac) #0 (>2) messagequeue DCERouter.cpp:1862  <0xb65a5b90>
10 03/29/10 9:23:43.551 ProcessQueue going to sleep <0xb65a5b90>
21 03/29/10 9:23:43.552 start cond wait DCERouter.cpp:1862 (0x8887bac)  <0xb65a5b90>
10 03/29/10 9:23:43.633 Running as device: 2 installation: 1005237 using path: /usr/pluto/ <0xb65a66c0>
10 03/29/10 9:23:43.634 AlarmManager::AlarmManager 0x88a4dd8 <0xb65a66c0>
21 03/29/10 9:23:43.634 lock(0x88a4e1c) (>3) alarm: AlarmManager.cpp:87  <0xb65a66c0>
21 03/29/10 9:23:43.634 acquired(0x88a4e1c) #0 (>3) alarm AlarmManager.cpp:87  <0xb65a66c0>
21 03/29/10 9:23:43.634 unlock(0x88a4e1c) #0 (>3) alarm: AlarmManager.cpp:87  <0xb65a66c0>
21 03/29/10 9:23:43.634 removed from map (0x88a4e1c) #0 (>3) alarm: AlarmManager.cpp:87  was: 2 size, now 1 Rel: Y Got: Y <0xb65a66c0>
21 03/29/10 9:23:43.635 lock(0x88a4e1c) (>4) alarm: AlarmManager.cpp:102  <0xb5bffb90>
21 03/29/10 9:23:43.635 acquired(0x88a4e1c) #0 (>4) alarm AlarmManager.cpp:102  <0xb5bffb90>
21 03/29/10 9:23:43.635 start cond wait AlarmManager.cpp:102 (0x88a4e1c)  <0xb5bffb90>
21 03/29/10 9:23:43.635 lock(0x88a4e1c) (>6) alarm: AlarmManager.cpp:102  <0xb4bfdb90>
21 03/29/10 9:23:43.636 acquired(0x88a4e1c) #0 (>6) alarm AlarmManager.cpp:102  <0xb4bfdb90>
21 03/29/10 9:23:43.636 start cond wait AlarmManager.cpp:102 (0x88a4e1c)  <0xb4bfdb90>
21 03/29/10 9:23:43.636 lock(0x88a4e1c) (>7) alarm: AlarmManager.cpp:102  <0xb43fcb90>
21 03/29/10 9:23:43.636 acquired(0x88a4e1c) #0 (>7) alarm AlarmManager.cpp:102  <0xb43fcb90>
21 03/29/10 9:23:43.636 start cond wait AlarmManager.cpp:102 (0x88a4e1c)  <0xb43fcb90>
21 03/29/10 9:23:43.635 lock(0x88a4e1c) (>5) alarm: AlarmManager.cpp:102  <0xb53feb90>
21 03/29/10 9:23:43.646 acquired(0x88a4e1c) #0 (>5) alarm AlarmManager.cpp:102  <0xb53feb90>
21 03/29/10 9:23:43.646 start cond wait AlarmManager.cpp:102 (0x88a4e1c)  <0xb53feb90>
10 03/29/10 9:23:43.672 Executed query UPDATE Device SET Registered=0,psc_mod=psc_mod (39 rows) <0xb65a66c0>
10 03/29/10 9:23:43.678 Executed query UPDATE Device JOIN Device AS Parent ON Device.FK_Device_ControlledVia=Parent.PK_Device SET Device.FK_Installation=Parent.FK_Installation (0 rows) <0xb65a66c0>
10 03/29/10 9:23:46.084 Created the server device: 1 CORE <0xb65a66c0>

App Server:

Code: [Select]
App_Server, v.
Visit for source code and license information

10 03/29/10 9:25:01.470 Device: 0 starting.  Connecting to: dcerouter <0xb6fc56c0>
10 03/29/10 9:25:01.517 Setting timeout for socket 4 to 20 <0xb6fc56c0>
10 03/29/10 9:25:01.598 ALSA Master volume: 66% <0xb6fc56c0>
10 03/29/10 9:25:01.598 Starting signal handler thread <0xb6fc56c0>
10 03/29/10 9:25:01.598 Started signal handler thread <0xb6fc56c0>
21 03/29/10 9:25:01.599 lock(0x8cb3ab4) (>81) MessageQueue: Command_Impl.cpp:822  <0xb67c3b90>
21 03/29/10 9:25:01.599 acquired(0x8cb3ab4) #0 (>81) MessageQueue Command_Impl.cpp:822  <0xb67c3b90>
21 03/29/10 9:25:01.599 start cond wait Command_Impl.cpp:822 (0x8cb3ab4)  <0xb67c3b90>
10 03/29/10 9:25:01.613 Requesthandler 0x8cb3968 (device: 1) runThread now running <0xb5fc2b90>
10 03/29/10 9:25:01.613 Connect OK <0xb6fc56c0>
05 03/29/10 9:25:01.613 Creating child 2 <0xb6fc56c0>
10 03/29/10 9:25:01.613 Got CreateEvent for unknown type 1. <0xb6fc56c0>
05 03/29/10 9:25:01.613 Note: Device manager has attached a device of type 1 that this has no custom event handler for.  It will not fire events. <0xb6fc56c0>
10 03/29/10 9:25:01.613 Got CreateCommand for unknown type 1. <0xb6fc56c0>
05 03/29/10 9:25:01.613 Note: Device manager has attached a device of type 1 that this has no custom handler for.  This is normal for IR. <0xb6fc56c0>
05 03/29/10 9:25:01.613 Creating child 3 <0xb6fc56c0>
10 03/29/10 9:25:01.614 Spawning device: 3 File_Grids_Plugin on display:  ip: <0xb6fc56c0>
10 03/29/10 9:25:01.598 SignalHandler_Thread: Started <0xb6fc4b90>
Linux signal handler: Started
Linux signal handler: Exited
10 03/29/10 9:25:01.639 SignalHandler_Action: Started <0xb6fc4b90>
21 03/29/10 9:25:01.639 lock(0x8cf2dac) (>88) MessageQueue: Command_Impl.cpp:357  <0xb6fc56c0>
21 03/29/10 9:25:01.639 acquired(0x8cf2dac) #0 (>88) MessageQueue Command_Impl.cpp:357  <0xb6fc56c0>
21 03/29/10 9:25:01.639 unlock(0x8cf2dac) #0 (>88) MessageQueue: Command_Impl.cpp:357  <0xb6fc56c0>
21 03/29/10 9:25:01.640 removed from map (0x8cf2dac) #0 (>88) MessageQueue: Command_Impl.cpp:357  was: 4 size, now 3 Rel: Y Got: Y <0xb6fc56c0>
05 03/29/10 9:25:01.640 Creating child 4 <0xb6fc56c0>
10 03/29/10 9:25:01.640 Spawning device: 4 General_Info_Plugin on display:  ip: <0xb6fc56c0>
21 03/29/10 9:25:01.639 lock(0x8cb3b84) (>89) AppServer: SignalHandler.cpp:74  <0xb6fc4b90>
21 03/29/10 9:25:01.654 acquired(0x8cb3b84) #0 (>89) AppServer SignalHandler.cpp:74  <0xb6fc4b90>
10 03/29/10 9:25:01.654 SignalHandler_Action: Exited <0xb6fc4b90>
21 03/29/10 9:25:01.654 unlock(0x8cb3b84) #0 (>89) AppServer: SignalHandler.cpp:74  <0xb6fc4b90>
21 03/29/10 9:25:01.654 removed from map (0x8cb3b84) #0 (>89) AppServer: SignalHandler.cpp:74  was: 3 size, now 2 Rel: Y Got: Y <0xb6fc4b90>
Linux signal handler: Started
Linux signal handler: Exited

It looks to me like something odd is going on. Can anyone comment on this?



Users / Maybe found an issue with
« on: March 26, 2010, 05:19:06 pm »

The part in the code below which adds FK_Device_ControlledVia = '$PK_Device' as a condition for the found storage devices means that only storage devices which are controlled by a core or MD are picked up by the script. I have some shares attached to a NAS which are not picked up, as this final constraint does not permit it.

Does anyone know why it's like this? I'm also surprised that nobody else has noticed this, as it would mean they could not record to NAS. Am I doing something odd here?



Code: [Select]
## Get a list of storage devices that use the pluto dir structure
if ($CommaSeparatedDeviceList eq '') {
        print 'Finding devices in DB';
                JOIN Device_DeviceData ON FK_Device = PK_Device
                FK_DeviceTemplate IN (" . join(",",@TPL_STORAGE_DEVICES) . ")
                FK_DeviceData = $DD_USERS
                IK_DeviceData LIKE '%-1%'
                FK_Device_ControlledVia = '$PK_Device'
        ORDER BY PK_Device
        foreach $row (@results) {

I started work on a RoR app which models the pluto DB and offers a simple web interface and also a RESTful XML interface as a free bonus. I will make a few changes next weekend to provide an iPhone interface to it using IUI. I've literally only done about 2 hours work or less but there is a beginning of something. The webpages are very basic.

The code is on github:

I just found out that there is an XML plugin being developed for LMCE anyway, so this work is probably redundant, but it was a fun exercise for me anyway, and gives me a platform on my test system in which I can mess around a bit. Someone out there might find this useful perhaps.


Pages: [1] 2 3 ... 6