Domotiga/Server

DomotiGaServer

Usage

Very new is the DomotiGaServer project. It's DomotiGa without the GUI, you can create an executable by loading it's project into Gambas IDE and choose Project -> Make -> Executable. And save it in your domotiga directory.

Then run it from a shell with:

$ cd ~/domotiga
$ ./DomotiGaServer.gambas
2009/11/11 20:02:34   ---- Program Restart ----
2009/11/11 20:02:34 Starting DomotiGaServer V0.1.172 last updated on 2009-11-11 at 20:02:33
2009/11/11 20:02:34 Running on server (pid 11779) as user ron (id 1000) with language en_US.UTF-8
2009/11/11 20:02:34 Program base directory is '/home/ron/domotiga/'.
2009/11/11 20:02:34 Database settings are loaded from 'domotiga.conf'.
2009/11/11 20:02:34 Active logfiles are 'server-main-2009-11.log', 'server-speak-2009-11.log' and 'server-debug-2009-11.log'.
2009/11/11 20:02:34 Running on Gambas version 2.17.0
2009/11/11 20:02:34 Server uptime is  20:02:34 up 10 days, 8:41, 4 users, load average: 0.22, 0.10, 0.0
2009/11/11 20:02:34 Checking directory structure ...
2009/11/11 20:02:34 Connecting to database ...
2009/11/11 20:02:34 Loading modules ...
...
...

It will output the normal log text to stdout.

You can also give it an -d argument and it will start as a daemon, detached from the command line. But I haven't tested that enough, had an issue with the log buffers being written to the logfiles correctly.

$ ./DomotiGaServer.gambas -d

You can stop the daemon like this, until we created a decent init.d script.

$ ps aux|grep gb
ron      11657 18.0  0.0  21676  2852 ?        Rs   19:57   0:02 gbr2 ./DomotiGaServer.gambas -d
ron      11674  0.0  0.0   3036   804 pts/2    S+   19:58   0:00 grep --color=auto gb

$ kill 11657

You can monitor DomotiGaServer by looking at it's logfiles, those are written in DomotiGa's normal logs directory and are called server-[main|debug|speak]-<date>.log.

Until we have build a web gui to change the program settings, you have to use the normal DomotiGa program to do this. From version 0.1.173 you can start the DomotiGa program in client/server mode. Just change it's domotiga.conf to use the servers mysql and xmlrpc services.

Some notes about client/server setup between 2 different machines; Default mysqld is connected to localhost only, so you cannot connect to it from other hosts.

Change the config file:

$ sudo vi /etc/mysql/my.conf

#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address            = 127.0.0.1
bind-address            = 0.0.0.0

Restart mysql server.

$ sudo /etc/init.d/mysql restart

Now you have to grant the domotiga user access to the database.

$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 132
Server version: 5.1.37-1ubuntu5 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> GRANT ALL ON domotiga.* TO domouser@'%' IDENTIFIED BY 'kung-fu';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye

This is also a nice moment to change your mysql password from the default to your own!

MySQL server has gone away error

Change wait_timeout parameter value to prevent database connection lost.

$ sudo vi /etc/mysql/my.conf
wait_timeout            = 2147483

System Init Script

Egon build a system init script for Fedora 11/12, it probably works on Redhat too.

Copy tools/domotiga.fedora script to system:

$ sudo cp tools/domotiga.fedora /etc/init.d/domotiga
$ cd /etc/init.d

Edit basedir path to reflect your domotiga location:

$ sudo vi domotiga
BASEDIR=/opt/domotiga

Create a settings file so it starts in daemon mode:

sudo vi /etc/sysconfig/domotiga
OPTIONS="-d" 

Add script to startup configuration:

chkconfig --add domotiga

You can now start and stop DomotiGaServer with:

"service domotiga start" en "service domotiga stop".