Menu

using linknx as rule processing engine

Help
RR
2008-12-12
2012-12-14
  • RR

    RR - 2008-12-12

    Hi,

    I like knxweb, but don't have EIB. I'm using other automation system, but would still like to use knxweb as its visualization.

    So I'll probably write my own "linknx" equivalent, but the problem remains rule processing that seems to be quite well solved in linknx.

    Can parts of linknx be used outside linknx ? Can I have XML rule processing server out of linknx ? is it hard or easy to do it ?

    Can I easily customize linknx to work with some other automation interface ?

    Thanks in advance,

    regards,

    Bulek.

     
    • jef2000

      jef2000 - 2008-12-14

      Hi,

      You can re-use any code from Linknx as long as you follow the GPL license. I don't think it's easy to extract rule processing out of Linknx, if linknx is what you need, I think it's easier to keep the base code and modify the EIB specific code (mosly in objectcontroller.cpp , knxconnection.cpp, and corresponding .hpp files).

      The difficulty of the task depends on your c/c++ programming skills and which automation interface you want to use.

      Regards,

      Jean-François

       
    • RR

      RR - 2009-06-19

      Hi,

      thanks for info. I see that modification of EIB specific code is the way to go.... I'm now considering two options :
      - just make EIB part inactive and try to communicate with linknx over TCP port, but several questions arise :
          - can I control linknx devices from outside ?
          - will I receive all changes in devices' states as consequence of rule processing ?
          - is this way feasible at all ?
        I like this option cause I already have written Perl counter part of linknx, so it communicates with my home automation and serves xmls to KnxWeb... Now I'd just connect to linknx and send all device changes to it and receive any changes as a consequence of rule processing.... Is this possible ?

      - the harder option is to write automation counter part of EIB...

      - are there any plans to maybe make linknx more opened in sense that it can be used for other automation systems and external control from other apps ?

      - can I find any more info about recent enhancements that in my understanding are right thing for my situation (IO port, TCP port) ?

      Last but not least, thanks to everyone for such a great project...

      Thanks in advance for responses,

      regards,

      Bulek.

       
    • jef2000

      jef2000 - 2009-06-24

      Hi,

      > - can I control linknx devices from outside ?
      Using the XML interface, you can set the value of any linknx object
      > - will I receive all changes in devices' states as consequence of rule processing ?
      Version 0.0.1.26 doesn't allow to be notified when an object's value changes. KnxWeb does a polling to update its status.
      If you want to register and receive notifications when an object is modified, you can have a look at the patch discussed here:
      https://sourceforge.net/forum/message.php?msg_id=7387181
      > - is this way feasible at all ? 
      > I like this option cause I already have written Perl counter part of linknx, so it communicates with my home automation and serves xmls to KnxWeb... Now I'd just connect to linknx and send all device changes to it and receive any changes as a consequence of rule processing.... Is this possible ?
      Everything is possible, but I dont see it as a very elegant solution.

      > - the harder option is to write automation counter part of EIB...
      > - are there any plans to maybe make linknx more opened in sense that it can be used for other automation systems and external control from other apps ?
      Yes, somebody else already proposed to support 1-Wire bus. I'm not against other home automation systems, but KNX is the only one I can test because that's the only one I have.
      For the moment, the KNX data format is embedded inside the existing object types. What I see as a solution to support other automation systems is to create other object types. And use "#ifdef" to choose one (or more) supported home automation system(s) at compile time.
      What Home automation system are you using? how can we interface with that system? What would be the relevant object types?

      > - can I find any more info about recent enhancements that in my understanding are right thing for my situation (IO port, TCP port) ?

      Indeed using IO ports could be a solution for you. The results of your linknx rules could be ioport actions that send predefined messages on the ioport (TCP or UDP) and have your perl app at the other hand of the connection to receive the notification. The problem is that for the moment IO ports can only send hard-coded messages, not include object values.

      I would be happy to help you but I don't have enough time to run in all directions simultaneously ;-)

       
      • RR

        RR - 2009-06-24

        Hi,

        >Version 0.0.1.26 doesn't allow to be notified when an object's value changes. KnxWeb does a polling to update its status.
        >If you want to register and receive notifications when an object is modified, you can have a look at the patch discussed here:
        >https://sourceforge.net/forum/message.php?msg_id=7387181

        Seems like exactly to suit my needs....

        ***Yes, somebody else already proposed to support 1-Wire bus. I'm not against other home automation systems, but KNX is the only one I can test because that's the only one I have.
        For the moment, the KNX data format is embedded inside the existing object types. What I see as a solution to support other automation systems is to create other object types. And use "#ifdef" to choose one (or more) supported home automation system(s) at compile time.
        What Home automation system are you using? how can we interface with that system? What would be the relevant object types? ****

        I'm using Cybrotech home automation system. I hope you received my email describing my system a bit more. I interface it via open, but specific protocol via Ethernet... In my case I define variable names that follow some regular expression pattern, so name tells me also the place of device and its type. For instance shutter has 3 variables : generic BM_shutter_south_00 is for binary indicator whether shutter is travelling or not, then BM_shutter_south_00_state tells me current state (0-100%) and BM_shutter_south_00_set is variable that sets shutter to newer level...
        #ifdef seems quick and easy solution - although files will get more unreadable... Do we have an option of maybe configuration file that could be specific to automation system ?

        ***I would be happy to help you but I don't have enough time to run in all directions simultaneously ;-) 

        Of course. We will do the job as much as we can. Your help is really helpful on this level, cause few sentences and advice from you can really help a lot and save a lot of efforts to us. You know KnxWeb really well and can give really useful advices and guidance...

        Thanks again for great project,

        we only need to find convenient way to open it a bit more towards other systems,

        regards,

        Bulek.
         

         

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.