Author Topic: Some general questions  (Read 6955 times)

archived

  • Hello, I'm new here
  • Posts: 0
    • View Profile
Some general questions
« on: December 01, 2004, 06:46:55 am »
Hi,

I'm not sure if I may post general questions to this forum. I didn't find suitable forum for general discussion.

I have following newbie questions:
- where can I read PLUTO license ?
- I cannot complete custom installation procedure. After first screen I get error :
Fatal error: mysql error: [1146: Table 'pluto_main.USER' doesn't exist] in EXECUTE("UPDATE USER SET FK_Installation_Main=65 WHERE PK_User=33174") in /var/www/virtual/plutohome.com/plutohome/include/adodb/adodb-errorhandler.inc.php on line 77

- I'm using another great open source application ( newbielink:http://www.misterhouse.com [nonactive]) that could do role of backend in this system with lots new features. I'd like to connect to Pluto system and get/send every possible message with Perl code. I guess that could be done writting data client, but any advice would be welcome.

- I've tried to post to Symbian Orbiter group but can't display message, although it's shown in mai screen. Anyway, what mobile phones can be used with Pluto (please name the brand the type - from pictures I guess one of them is NOKIA, but what type ? )

Thanks in advance,

Robert.

archived

  • Hello, I'm new here
  • Posts: 0
    • View Profile
... license...
« Reply #1 on: December 01, 2004, 06:53:39 am »
You can see the license informations at this link:
newbielink:http://plutohome.com/support/index.php?section=license&package=0 [nonactive]
You can find this kind of usefull links in the menu bar above...

archived

  • Hello, I'm new here
  • Posts: 0
    • View Profile
Some general questions
« Reply #2 on: December 01, 2004, 07:40:36 am »
Yes, we've seen misterhouse, and it would be nice to find a way to make our products work together.  misterhouse has been around a while and seems to have matured well.  Our projects are different--misterhouse targets techies, and Pluto's ultimate intention is to offer a mainstream consumer product.  Also misterhouse focuses on the home automation aspect, while Pluto is intended to be a whole house solution with media, telecom, etc. too.

We're not familiar enough with misterhouse, though, to know how to get it's home automation features to work with our product (or vice-versa).  Our DCE library has not been ported to perl--it's C++.  However, it should be possible to make it work with perl, and then both systems would be able to communicate together.  When we get caught up on our coding we will look into it.

archived

  • Hello, I'm new here
  • Posts: 0
    • View Profile
Some general questions
« Reply #3 on: December 01, 2004, 08:47:05 am »
Quote from: "aaron.b"
Yes, we've seen misterhouse, and it would be nice to find a way to make our products work together.  misterhouse has been around a while and seems to have matured well.  Our projects are different--misterhouse targets techies, and Pluto's ultimate intention is to offer a mainstream consumer product.  Also misterhouse focuses on the home automation aspect, while Pluto is intended to be a whole house solution with media, telecom, etc. too.

We're not familiar enough with misterhouse, though, to know how to get it's home automation features to work with our product (or vice-versa).  Our DCE library has not been ported to perl--it's C++.  However, it should be possible to make it work with perl, and then both systems would be able to communicate together.  When we get caught up on our coding we will look into it.


Hi,

let me comment a little bit. Misterhouse is really more than home automation system (mine plays 4 independent stereo channels, announce things, does motion detection, gets all kind of news, weather forecasts,I can even correspond with it (great AI tehcnology), in near future system will also get own robot to move through house). I really think that MH could be great backend system to complement features of Pluto. Pluto is great GUI (among other things of course), MH can help filling that GUI with all kind of content - and writting module for MH is quite easy (in Perl).

I'm willing to help on MH side, but would like to get some help on Pluto side.
I don't know much about it, but if MH could connect through socket to Pluto (is DCE router the main crossroad for messages?) and get all messages from Pluto system then it could also send messages and corespond with DCE devices and initiate some actions (reminders, etc..) ?

 I'd kindly aks if you can point me to more info on socket connection and protocol of messages in Pluto system. In this way I could start contributing.

Also short question:
- how do you estimate dificulties if Pluto is used on another Linux distros - or how strong Pluto depends on Debian ?


Regards,

Robert.

archived

  • Hello, I'm new here
  • Posts: 0
    • View Profile
Some general questions
« Reply #4 on: December 02, 2004, 11:52:46 am »
Hey Robert,

That's great.  I didn't realize Mr. House did so much.  We'll help in any way possible.  I added some more detailed information about our DCE protocol and put it in our documentation: newbielink:http://plutohome.com/support/index.php?section=document&docID=51 [nonactive].

DCE (Data, Commands & Events), is the mechanism through which all the devices communicate and share data and send each other commands & events.  It is socket-based, and will run on any platform.  We don't have any good PERL guys here (we're all C++), but it should work just fine.  

I'm not sure the best way to do it, though.  Here are the issues: Our DCEGen tool makes it really comfortable to create new devices.  You just use the pluto-admin web-site, add a device, specify what data it needs, commands it implements, and events it fires.  It builds a C++ project for you already, with a gcc Makefile, an MS VS.net project file.  All the classes are derived from common classes in our DCE library which implements the protocol.  The generated code is really very simple--it's basically just some switch blocks that handle receiving commands in the form of a message with an ID, and calling a virtual function, which the programmer implements.  The DCE library (the base classes) are not too complex, either.  The main object is the Message class, which contains the actual command or event, and knows how to serialize itself into a stream of binary data and be sent across a socket.

The most elegent solution would be to re-write everything in PERL from the ground up.  But then there would be quite a bit of work to do since the DCE Library, the Socket code, the Message class, etc. would need to be re-written.  Also, there would need to be a new version of the DCE generator since, if you're going to implement lots of devices, you won't want to have to do everything by hand.

But there might be an easier solution if PERL and C++ are able to work together.  I don't know PERL at all, and one of my colleagues here who knows it somewhat said it can be difficult to get them to work together.  However, if you know a way, here's what we could do...  We could modify DCEGenerator so that when it outputs a C++ program for the DCE Device, rather than just function stubs for the C++ programmer, it instead calls a function in the PERL program.  The trickier part would probably getting the PERL program to call member functions in the C++ class to fire events.  However, if we got that to work, then theoretically we could just go into the database, create a new Device that had the same data, commands and events as the existing Mr. House one, and DCE Generator would make a C++ wrapper that worked with the PERL module.

We can handle any modifications to the DCE Generator and the C++ classes if you tell us how it should work.  To see the C++ code, go to Downloads and get "Pluto Disk Drive Source".  It's a really simple DCE Device which is an interface for a cd/dvd drive.  Disk_Drive.h and .cpp are the files which DCE Generator created, and the programmer implelemented.  You can see in the header that the device was given 1 data paremeter ("Drive"), and so it has members Set_Drive and Get_Drive.  It has some members to call to fire events: Media_Inserted, and it has functions to implement its commands: Eject_Disk, Start_Burning, etc.  Is there a way to use the same structure and just call your own PERL command handlers, and have your PERL program call our C++ event methods?

As far as Debian...  The code is not OS or distro specific.  It's mainly scripts to automate tasks for non-techies.  Our product was intended to be used as an appliance where the user may have no clue about computers.  So, for example, if the homeowner adds a new family member to the system using the Pluto Admin site, it will create a new user, export a "personal" files folder for that user as a samba share, create an email account for him, create a personal web home page for him, and so on.  The Debian-specific scripts are those that automate every possible task for a total non-computer user.  So, if you want a 'closed box' appliance that does nothing but Pluto, and automates absolutely everything, without ever logging in to the console, you will need to use a Debian platform for now.  But, aside from these scripts, there is nothing Debian-specific.

Aaron

archived

  • Hello, I'm new here
  • Posts: 0
    • View Profile
Some general questions
« Reply #5 on: December 02, 2004, 09:07:17 pm »
Hi,

thanks for all info. I must say that I'm still talking about Pluto without having it actually working ...

So I'll make some better suggestions then. But berfore then I'll reveal my thoughts how to approach from MH to Pluto:
- phase 1: connect MH to message passing Pluto system: receive all messages, parse them, initiate events on other devices - actually just use devices that are available. AFAIK that won't be so hard.
- phase 2: try to implement some devices also through MH system, that will probably be a little harder.. One fo the obstacle would be object serialization, etc... But in another way, when we do that MH is so easy to add anything so it could be useful in anyway.

I'll post my progress and expect quite some questions :-) ...

Regards,

Rob.