Which software should I use for 13 blinds and shutters?



  • Hello,

    i want to control 13 blinds and shutters so i need 26 Relay output and 27 Digital inputs (13x up + 13x down + wind sensor).

    The new Neuron L203 fits perfect (2 relays, 4 Transistor outputs, 9 digital inputs, analog in and output still free for some other cool stuff).

    The question for me is which software i should use.

    For the basic "normal" function (press up button and the up relay closes for 40 seconds) almost every SW should be good but i also want a easy web access (control with smartphone and tablet) and some "smart" features like program every day a alarm for opening of the shutter of the bedroom (alarm time easy changeable by webinterface).
    There are also some other "nice to have" features planed like integration of EnOcean and HomeMatic components for light control of the living room (and lots of other "smart" functions).

    For future-proof i only want to use open source but this is not an must have.

    I think all required features would be not complicated with fhem.de (http://www.fhemwiki.de/wiki/ROLLO looks very easy) but there is no support for Neuron yet or?

    What other SW do you recommend for this usecase?
    openHAB?


  • administrators

    Hello,

    nice application :) It would be great if you share your progress and result here.

    I think that FHEM would be the solution. There are commercial platforms but it wont meet the EnOceand and HomeMatic requirements.

    FHEM is not officially supported, however implementation is pretty easy because we provide TCP modbus interface to read/control the IOs and FHEM is capable of TCP modbus too....



  • Thank you for the fast answer.

    I am not sure if it is "pretty easy" for me. I have never worked with Modbus, FHEM or PEARL before.

    Where could i download the "TCP modbus" firmware? I guess Products->Neuron->firmware but which file?
    Cold i try with my own RaspberryPi or does the system not start without slave controllers?


  • administrators

    I will create a github repository next week where all the required steps to make the TCP modbus work will be described (or even automatized with a script).

    Right now it is only implemented in the mervis image available in downloads. So you can use that one too.



  • Hi,

    my Neuron L203 arrived and i now have the time for system setup.

    Installing Raspian was no problem and its running fine now.

    With your manual at neuron_tcp_modbus_overlay i tried to install the modbus TCP server.

    First small problem was that with

    bash neuron_tcp_modbus_overlay-1.0.0/install.sh
    

    the scipt fails because of wrong paths. It works with:

    wget https://github.com/UniPiTechnology/neuron_tcp_modbus_overlay/archive/v1.0.0.zip
    unzip v1.0.0.zip
    cd ./neuron_tcp_modbus_overlay-1.0.0/
    sudo bash ./install.sh
    

    After reboot i can see with htop that "/opt/neurontcp/neuron_tcp_server -p 502 --check-firmware" is running.
    The RUN1, RUN2 and RUN3 LEDs are still blinking with 2 seconds on and 2 seconds off. According to the manual this means "Communication timeout reached MWD".

    Did the installation really work as it should?

    How can i check if the server runs correct?

    Is there an easy way to switch relay 2.1 ON with command line?


  • administrators

    Have you tried to run the server manually by hand? Could you paste the output of that?

    /opt/neurontcp/neuron_tcp_server -p 502 --check-firmware
    

    Also see the output of the installation script if everything goes well.



  • running installation again:

    pi@raspberrypi:~/neuron_tcp_modbus_overlay-1.0.0 $ sudo bash ./install.sh
    Installing libmodbus
    Ign http://dl.bintray.com stable InRelease
    OK   http://archive.raspberrypi.org jessie InRelease
    OK   http://mirrordirector.raspbian.org jessie InRelease
    Holen: 1 http://dl.bintray.com stable Release.gpg [821 B]
    Holen: 2 http://dl.bintray.com stable Release [6.050 B]
    OK   http://archive.raspberrypi.org jessie/main armhf Packages
    OK   http://archive.raspberrypi.org jessie/ui armhf Packages
    OK   http://mirrordirector.raspbian.org jessie/main armhf Packages
    OK   http://mirrordirector.raspbian.org jessie/contrib armhf Packages
    Holen: 3 http://dl.bintray.com stable/main armhf Packages [77,8 kB]
    OK   http://mirrordirector.raspbian.org jessie/non-free armhf Packages
    OK   http://mirrordirector.raspbian.org jessie/rpi armhf Packages
    Ign http://dl.bintray.com stable/main Translation-de_DE
    Ign http://dl.bintray.com stable/main Translation-de
    Ign http://dl.bintray.com stable/main Translation-en
    Ign http://archive.raspberrypi.org jessie/main Translation-de_DE
    Ign http://archive.raspberrypi.org jessie/main Translation-de
    Ign http://archive.raspberrypi.org jessie/main Translation-en
    Ign http://archive.raspberrypi.org jessie/ui Translation-de_DE
    Ign http://archive.raspberrypi.org jessie/ui Translation-de
    Ign http://archive.raspberrypi.org jessie/ui Translation-en
    Ign http://mirrordirector.raspbian.org jessie/contrib Translation-de_DE
    Ign http://mirrordirector.raspbian.org jessie/contrib Translation-de
    Ign http://mirrordirector.raspbian.org jessie/contrib Translation-en
    Ign http://mirrordirector.raspbian.org jessie/main Translation-de_DE
    Ign http://mirrordirector.raspbian.org jessie/main Translation-de
    Ign http://mirrordirector.raspbian.org jessie/main Translation-en
    Ign http://mirrordirector.raspbian.org jessie/non-free Translation-de_DE
    Ign http://mirrordirector.raspbian.org jessie/non-free Translation-de
    Ign http://mirrordirector.raspbian.org jessie/non-free Translation-en
    Ign http://mirrordirector.raspbian.org jessie/rpi Translation-de_DE
    Ign http://mirrordirector.raspbian.org jessie/rpi Translation-de
    Ign http://mirrordirector.raspbian.org jessie/rpi Translation-en
    Es wurden 84,6 kB in 10 s geholt (8.192 B/s).
    Paketlisten werden gelesen... Fertig
    Paketlisten werden gelesen... Fertig
    Abhängigkeitsbaum wird aufgebaut.
    Statusinformationen werden eingelesen.... Fertig
    libmodbus-dev ist schon die neueste Version.
    0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
    Enabling SPI overlay
    Warning (unit_address_vs_reg): Node /fragment@0 has a unit name, but no reg property
    Warning (unit_address_vs_reg): Node /fragment@1 has a unit name, but no reg property
    mkdir: das Verzeichnis „/opt/neurontcp“ kann nicht angelegt werden: Die Datei existiert bereits
    Compiling neurontcp server...
    make: Nothing to be done for 'all'.
    Installing Neuron TCP server into /opt/neurontcp/
    Enabling neurontcp service for systemd
    Created symlink from /etc/systemd/system/neurontcp.service to /lib/systemd/system/neurontcp.service.
    Created symlink from /etc/systemd/system/multi-user.target.wants/neurontcp.service to /lib/systemd/system/neurontcp.service.
    Reboot is required. Is it OK to reboot now? [y/n]
    

    after reboot:

    pi@raspberrypi:~ $ /opt/neurontcp/neuron_tcp_server -p 502 --check-firmware
    modbus_tcp_listen: Permission denied
    Abgebrochen
    pi@raspberrypi:~ $ sudo /opt/neurontcp/neuron_tcp_server -p 502 --check-firmware
    modbus_tcp_listen: Address already in use
    pi@raspberrypi:~ $ sudo systemctl disable neurontcp.service
    Removed symlink /etc/systemd/system/neurontcp.service.
    Removed symlink /etc/systemd/system/multi-user.target.wants/neurontcp.service.
    pi@raspberrypi:~ $ sudo /opt/neurontcp/neuron_tcp_server -p 502 --check-firmware
    modbus_tcp_listen: Address already in use
    

    again reboot:

    pi@raspberrypi:~ $ sudo /opt/neurontcp/neuron_tcp_server -p 502 --check-firmware
    New connection from 127.0.0.1:44698 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:45210 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:45722 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:46234 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:46746 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:47258 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:47770 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:48282 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:48794 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:49306 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:49818 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:50330 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:50842 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:51354 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:51866 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:52378 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:52890 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:53402 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:53914 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:54426 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:54938 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:55450 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:55962 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:56474 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:56986 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:57498 on socket 13
    Closed connection on descriptor 13
    New connection from 127.0.0.1:58010 on socket 13
    Closed connection on descriptor 13
    

    ...



  • The above logs were done with openHAB installation on the same Pi. To make clear that i don't have a problem with the not configured openHAB i have done an new clean installation:

    pi@raspberrypi:~ $ wget https://github.com/UniPiTechnology/neuron_tcp_modbus_overlay/archive/v1.0.0.zip
    --2016-12-02 20:07:00--  https://github.com/UniPiTechnology/neuron_tcp_modbus_overlay/archive/v1.0.0.zip
    Auflösen des Hostnamen »github.com (github.com)«... 192.30.253.113, 192.30.253.112
    Verbindungsaufbau zu github.com (github.com)|192.30.253.113|:443... verbunden.
    HTTP-Anforderung gesendet, warte auf Antwort... 302 Found
    Platz: https://codeload.github.com/UniPiTechnology/neuron_tcp_modbus_overlay/zip/v1.0.0[folge]
    --2016-12-02 20:07:01--  https://codeload.github.com/UniPiTechnology/neuron_tcp_modbus_overlay/zip/v1.0.0
    Auflösen des Hostnamen »codeload.github.com (codeload.github.com)«... 192.30.253.120, 192.30.253.121
    Verbindungsaufbau zu codeload.github.com (codeload.github.com)|192.30.253.120|:443... verbunden.
    HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
    Länge: nicht spezifiziert [application/zip]
    In »»v1.0.0.zip«« speichern.
    v1.0.0.zip              [  <=>                 ]  38,20K   155KB/s   in 0,2s   
    2016-12-02 20:07:02 (155 KB/s) - »v1.0.0.zip« gespeichert [39120]
    pi@raspberrypi:~ $ unzip v1.0.0.zip
    Archive:  v1.0.0.zip
    d66ef41199393d9b095c0acd43910f2aeac4e5e7
       creating: neuron_tcp_modbus_overlay-1.0.0/
      inflating: neuron_tcp_modbus_overlay-1.0.0/LICENSE  
      inflating: neuron_tcp_modbus_overlay-1.0.0/README.md  
      inflating: neuron_tcp_modbus_overlay-1.0.0/install.sh  
       creating: neuron_tcp_modbus_overlay-1.0.0/neuron_tcp_server/
      inflating: neuron_tcp_modbus_overlay-1.0.0/neuron_tcp_server/Makefile  
      inflating: neuron_tcp_modbus_overlay-1.0.0/neuron_tcp_server/README.md  
      inflating: neuron_tcp_modbus_overlay-1.0.0/neuron_tcp_server/armpty.c  
      inflating: neuron_tcp_modbus_overlay-1.0.0/neuron_tcp_server/armpty.h  
      inflating: neuron_tcp_modbus_overlay-1.0.0/neuron_tcp_server/armspi.c  
      inflating: neuron_tcp_modbus_overlay-1.0.0/neuron_tcp_server/armspi.h  
      inflating: neuron_tcp_modbus_overlay-1.0.0/neuron_tcp_server/bandwidth-client.c  
      inflating: neuron_tcp_modbus_overlay-1.0.0/neuron_tcp_server/nb_modbus.c  
      inflating: neuron_tcp_modbus_overlay-1.0.0/neuron_tcp_server/nb_modbus.h  
      inflating: neuron_tcp_modbus_overlay-1.0.0/neuron_tcp_server/neuron_tcp_server.c  
      inflating: neuron_tcp_modbus_overlay-1.0.0/neuron_tcp_server/neuronspi.c  
      inflating: neuron_tcp_modbus_overlay-1.0.0/neuron_tcp_server/neurontcp.service  
      inflating: neuron_tcp_modbus_overlay-1.0.0/neuron_tcp_server/spicrc.c  
      inflating: neuron_tcp_modbus_overlay-1.0.0/neuron_tcp_server/spicrc.h  
       creating: neuron_tcp_modbus_overlay-1.0.0/spi_overlay/
      inflating: neuron_tcp_modbus_overlay-1.0.0/spi_overlay/compile-dtc  
      inflating: neuron_tcp_modbus_overlay-1.0.0/spi_overlay/neuron-spi.dts  
    pi@raspberrypi:~ $ cd ./neuron_tcp_modbus_overlay-1.0.0/
    pi@raspberrypi:~/neuron_tcp_modbus_overlay-1.0.0 $ sudo bash ./install.sh
    Installing libmodbus
    OK   http://mirrordirector.raspbian.org jessie InRelease
    OK   http://archive.raspberrypi.org jessie InRelease                    
    OK   http://mirrordirector.raspbian.org jessie/main armhf Packages      
    OK   http://mirrordirector.raspbian.org jessie/contrib armhf Packages
    OK   http://archive.raspberrypi.org jessie/main armhf Packages   
    OK   http://archive.raspberrypi.org jessie/ui armhf Packages     
    OK   http://mirrordirector.raspbian.org jessie/non-free armhf Packages
    OK   http://mirrordirector.raspbian.org jessie/rpi armhf Packages
    Ign http://archive.raspberrypi.org jessie/main Translation-de_DE 
    Ign http://archive.raspberrypi.org jessie/main Translation-de    
    Ign http://archive.raspberrypi.org jessie/main Translation-en
    Ign http://archive.raspberrypi.org jessie/ui Translation-de_DE
    Ign http://archive.raspberrypi.org jessie/ui Translation-de
    Ign http://archive.raspberrypi.org jessie/ui Translation-en
    Ign http://mirrordirector.raspbian.org jessie/contrib Translation-de_DE
    Ign http://mirrordirector.raspbian.org jessie/contrib Translation-de
    Ign http://mirrordirector.raspbian.org jessie/contrib Translation-en
    Ign http://mirrordirector.raspbian.org jessie/main Translation-de_DE
    Ign http://mirrordirector.raspbian.org jessie/main Translation-de
    Ign http://mirrordirector.raspbian.org jessie/main Translation-en
    Ign http://mirrordirector.raspbian.org jessie/non-free Translation-de_DE
    Ign http://mirrordirector.raspbian.org jessie/non-free Translation-de
    Ign http://mirrordirector.raspbian.org jessie/non-free Translation-en
    Ign http://mirrordirector.raspbian.org jessie/rpi Translation-de_DE
    Ign http://mirrordirector.raspbian.org jessie/rpi Translation-de
    Ign http://mirrordirector.raspbian.org jessie/rpi Translation-en
    Paketlisten werden gelesen... Fertig          
    Paketlisten werden gelesen... Fertig
    Abhängigkeitsbaum wird aufgebaut.       
    Statusinformationen werden eingelesen.... Fertig
    Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
      libboost-filesystem1.55.0 libboost-program-options1.55.0 libboost-regex1.55.0 libcwiid1 libjs-prettify libqscintilla2-11 libqscintilla2-l10n libqt4-network libqt4-xmlpatterns libqtwebkit4 libruby1.9.1 libruby1.9.1-dbg libtcl8.5
      libtcltk-ruby1.9.1 libtk8.5 ri1.9.1 ruby1.9.1 ruby1.9.1-dev ruby1.9.1-examples ruby1.9.1-full ruby1.9.3 supercollider supercollider-common supercollider-ide supercollider-language supercollider-supernova tcl8.5 tk8.5
    Verwenden Sie »apt-get autoremove«, um sie zu entfernen.
    Die folgenden zusätzlichen Pakete werden installiert:
      libmodbus5
    Die folgenden NEUEN Pakete werden installiert:
      libmodbus-dev libmodbus5
    0 aktualisiert, 2 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
    Es müssen 97,9 kB an Archiven heruntergeladen werden.
    Nach dieser Operation werden 140 kB Plattenplatz zusätzlich benutzt.
    Holen: 1 http://mirrordirector.raspbian.org/raspbian/ jessie/main libmodbus-dev armhf 3.0.6-1 [77,0 kB]
    Holen: 2 http://mirrordirector.raspbian.org/raspbian/ jessie/main libmodbus5 armhf 3.0.6-1 [20,9 kB]
    Es wurden 97,9 kB in 1 s geholt (82,8 kB/s).
    Vormals nicht ausgewähltes Paket libmodbus5:armhf wird gewählt.
    (Lese Datenbank ... 130665 Dateien und Verzeichnisse sind derzeit installiert.)
    Vorbereitung zum Entpacken von .../libmodbus5_3.0.6-1_armhf.deb ...
    Entpacken von libmodbus5:armhf (3.0.6-1) ...
    Vormals nicht ausgewähltes Paket libmodbus-dev wird gewählt.
    Vorbereitung zum Entpacken von .../libmodbus-dev_3.0.6-1_armhf.deb ...
    Entpacken von libmodbus-dev (3.0.6-1) ...
    Trigger für man-db (2.7.0.2-5) werden verarbeitet ...
    libmodbus5:armhf (3.0.6-1) wird eingerichtet ...
    libmodbus-dev (3.0.6-1) wird eingerichtet ...
    Trigger für libc-bin (2.19-18+deb8u6) werden verarbeitet ...
    Enabling SPI overlay
    Warning (unit_address_vs_reg): Node /fragment@0 has a unit name, but no reg property
    Warning (unit_address_vs_reg): Node /fragment@1 has a unit name, but no reg property
    Compiling neurontcp server...
    gcc -g -c  -I .  armspi.c -o armspi.o
    gcc -g -c  -I .  spicrc.c -o spicrc.o
    gcc -g -c  -I .  nb_modbus.c -o nb_modbus.o
    gcc -g -c  -I .  armpty.c -o armpty.o
    gcc -g -c  -I .  neuron_tcp_server.c -o neuron_tcp_server.o
    gcc -g neuron_tcp_server.o armspi.o spicrc.o nb_modbus.o armpty.o  -lmodbus -lutil -o neuron_tcp_server
    gcc -g -c  -I .  neuronspi.c -o neuronspi.o
    gcc -g neuronspi.o armspi.o spicrc.o -o neuronspi
    gcc -g -c  -I .  bandwidth-client.c -o bandwidth-client.o
    gcc -g bandwidth-client.o armspi.o spicrc.o nb_modbus.o armpty.o  -lmodbus -lutil -o bandwidth-client
    Installing Neuron TCP server into /opt/neurontcp/
    Enabling neurontcp service for systemd
    Created symlink from /etc/systemd/system/neurontcp.service to /lib/systemd/system/neurontcp.service.
    Created symlink from /etc/systemd/system/multi-user.target.wants/neurontcp.service to /lib/systemd/system/neurontcp.service.
    Reboot is required. Is it OK to reboot now? [y/n]
    
    • two warnings occurred:

    Enabling SPI overlay
    Warning (unit_address_vs_reg): Node /fragment@0 has a unit name, but no reg property
    Warning (unit_address_vs_reg): Node /fragment@1 has a unit name, but no reg property

    are they relevant?

    • after reboot:
    pi@raspberrypi:~ $ systemctl status neurontcp
    ? neurontcp.service - Unipi Neuron Modbus/Tcp Server
       Loaded: loaded (/lib/systemd/system/neurontcp.service; enabled)
       Active: active (running) since Fr 2016-12-02 20:12:19 CET; 6min ago
     Main PID: 404 (neuron_tcp_serv)
       CGroup: /system.slice/neurontcp.service
               +-404 /opt/neurontcp/neuron_tcp_server -p 502 --check-firmware
    pi@raspberrypi:~ $ sudo systemctl stop neurontcp.service 
    pi@raspberrypi:~ $ systemctl status neurontcp
    ? neurontcp.service - Unipi Neuron Modbus/Tcp Server
       Loaded: loaded (/lib/systemd/system/neurontcp.service; enabled)
       Active: inactive (dead) since Fr 2016-12-02 20:19:13 CET; 4s ago
      Process: 404 ExecStart=/opt/neurontcp/neuron_tcp_server -p 502 --check-firmware (code=killed, signal=TERM)
     Main PID: 404 (code=killed, signal=TERM)
    pi@raspberrypi:~ $ 
    pi@raspberrypi:~ $ /opt/neurontcp/neuron_tcp_server -p 502 --check-firmware
    modbus_tcp_listen: Permission denied
    Abgebrochen
    pi@raspberrypi:~ $ sudo /opt/neurontcp/neuron_tcp_server -p 502 --check-firmware
    

    no further message for 4 hours...

    It seams that the "New connection from 127.0.0.1:45210 on socket 13" messages from the first install were caused by openHAB or something else i have done playing around.

    Could you please give me some hint what i am doing wrong or is the blinking normal without active connection to the server?


  • administrators

    Alright I have not tested it with the PIXEL desktop, but only with the lite version. But it should not make any difference.

    How many devices do you see in /dev/spi*



  • Hi,

    4 devices:

    • spidev0.0
    • spidev0.1
    • spidev0.2
    • spidev0.3

  • administrators

    That looks OK. Are you sure there is no output after you run the daemon manually? There must be something :)



  • Yes i am sure. Shall i take a video?


  • administrators

    Ok, please run it with more verbose output and pate the output:

    /opt/neurontcp/neuron_tcp_server -p 502 --check-firmware -vvv
    


  • pi@raspberrypi:~ $ sudo /opt/neurontcp/neuron_tcp_server -p 502 --check-firmware -vvv
    Board on /dev/spidev0.1 firmware=4.6  hardware=0.16 (B-1000-1)
    Board on /dev/spidev0.3 firmware=4.6  hardware=8.16 (E-16Di-1_U-14Ro-1)
    Board on /dev/spidev0.2 firmware=4.6  hardware=8.16 (E-16Di-1_U-14Ro-1)
    Board0 PTY0 /dev/pts/1
    Starting loop
    

    and then nothing more for two hours


  • administrators

    @armin this means that the hw and sw (tcp modbus server) is working ok. Now it is ut to you to send the commands...

    You shouldd use the modbus protocolfor communicating with neuron - see the modbus map of your device at downloads.unipi.technology

    So far no command line tool. But modbus is pretty easy.



  • Hi,

    the LEDs are still blinking (2 seconds on, 2 seconds off).
    Is this normal behavior if no client is connected to the server?


  • administrators

    According to the manual: https://files.unipi.technology/index.php/s/zTmrEbQEvifNd6W?path=%2FProducts%2FNeuron%2FDocumentation#pdfviewer

    chapter 2.2.1 LED diodedescription

    and later MWD description. It means you do not communicate with the devices. Which is also notable that there is no output when you run the server by hand.