Webservice Example "HomeAutomation" using c and linux

The task is to implement a linux deamon in plain c that reads and writes ascii-data to/from a tcp socket and provides the data received on the socket as a webservice (see wsdl file), and vice versa receiving data from the webservices-interface and puts them out on a tcp socket.

Between the two worlds of crisp embedded controller commands and bloated webservice xml has to be a translator, which is to be implemented into the deamon.

So we want to switch Light on and of in different rooms, that have an ID.

Also we want lock and unlock doors in that building using the webservices

Housekeeping like service disable, reset and diagnsis are described in wsdl file.


Client (webservice-client maybe mobile "app")


Server-Node (to be implemented in c using linux and webservies.

<> Endpoint-Nodes which control a room or a flat. Endpoint is microcontroller with limited tcp/ip.

Software of endpoint will talk like this

tcp connect to


Node 2312 Flat Controller Node

req: nr?

resp: nr 8 //8 rooms

if we are in cofig mode:

reqset: nr=2 //set rooms to 2

sr 3 //select room 3


l? /status of light?

l 0 //light off

l=1 //order light on


l 1 //light on state message from endpoint

d? //door state

d 1 //open door door is open

s? //get state of endpoint

s OK //ok

d=0 //lock door


s PEND //door motor moves knob

[url removed, login to view] //what is the outcome? door locked? (swich detected movement of lock)

[url removed, login to view] ERR //door was blocked

d=1 //unlock door

[url removed, login to view]

[url removed, login to view] OK //door unlocked and lock is ok.


d 1 //door is again open

More Use Cases like diagnosis can be seen from WSDL.

It is not so important to have the socket browser speaking exactly like the endpoints, since they are not developped,

as this is for learning and playing around in the house with automated systems.

But there might be a complete system later.


No 3rd-party closed source, deliver all sources, provide employer with all rights to the the source code and products.

No GPLv3, GPLv2. LGPL needs discussiuon. BSD is ok.

Because I might want to recycle the code for possible later commercial projects.


use doxygen and @syntax

Please document all variables function calls with doxygen @ tags like @returns.

Speification might change a bit. You can also suggest nice ideas for that thing.

Evner: Linux

Se mere: want to be a translator, translator on which i want to be like, system err, set bit in c, set a bit in c, open translator, nice systems, needs of translator, mobile client architecture, linux source code, i want a translator, get translator, file service architecture, app get linux, wsdl linux plain, linux webservice, homeautomation webservice, webservices linux, what is node, system linux, in house translator, i want to be translator, get linux, worlds, webservices

Om arbejdsgiveren:
( 0 bedømmelser ) Neubiberg, Germany

Projekt ID: #944256