Install OpenHAB2 on emonSD / emonPi

sudo systemctl disable openhab.service

echo 'deb http://dl.bintray.com/openhab/apt-repo2 stable main' | sudo tee /etc/apt/sources.list.d/openhab2.list
sudo apt-get update
sudo apt-get install openhab2
sudo apt-get install openhab2-addons

 

sudo nano /usr/lib/systemd/system/openhab2.service

    [Unit]
    Description=openHAB 2 - empowering the smart home
    Documentation=http://docs.openhab.org
    Documentation=https://community.openhab.org
    Wants=network-online.target
    After=network-online.target

    [Service]
    EnvironmentFile=/etc/default/openhab2
    User=openhab
    Group=openhab
    WorkingDirectory=/usr/share/openhab2
    PermissionsStartOnly=true
    ExecStartPre=/bin/mkdir -p /var/log/openhab2
    ExecStartPre=/bin/chown -R openhab:openhab /var/log/openhab2/
    ExecStartPre=/bin/sh -c '/usr/bin/test -d /var/lib/openhab2/cache || /bin/mkdir /var/lib/openhab2/cache'
    ExecStartPre=/bin/sh -c '/bin/mountpoint -q /var/lib/openhab2/cache || /bin/mount -t tmpfs tmpfs /var/lib/openhab2/cache'
    ExecStartPre=/bin/sh -c '/usr/bin/test -d /var/lib/openhab2/tmp || /bin/mkdir /var/lib/openhab2/tmp'
    ExecStartPre=/bin/sh -c '/bin/mountpoint -q /var/lib/openhab2/tmp || /bin/mount -t tmpfs tmpfs /var/lib/openhab2/tmp'
    ExecStart=/usr/share/openhab2/start.sh server
    ExecStop=/usr/share/openhab2/runtime/bin/stop
    # Shutdown delay in seconds, before process is tried to be killed with KILL (if configured)
    TimeoutStopSec=120
    Restart=on-failure

    [Install]
    WantedBy=multi-user.target

 

sudo systemctl daemon-reload
sudo systemctl start openhab2
sudo systemctl status openhab2
sudo systemctl enable openhab2.service

sudo systemctl stop openhab2.service

 

sudo nano ./var/lib/openhab2/etc/org.ops4j.pax.logging.cfg

    # File appender - openhab.log
    log4j.appender.out=org.apache.log4j.RollingFileAppender
    log4j.appender.out.layout=org.apache.log4j.PatternLayout
    log4j.appender.out.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n
    log4j.appender.out.file=${openhab.logdir}/openhab.log
    log4j.appender.out.append=true
    log4j.appender.out.maxFileSize=5MB
    log4j.appender.out.maxBackupIndex=1

    # File appender - events.log
    log4j.appender.event=org.apache.log4j.RollingFileAppender
    log4j.appender.event.layout=org.apache.log4j.PatternLayout
    log4j.appender.event.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} [%-26.26c{1}] - %m%n
    log4j.appender.event.file=${openhab.logdir}/events.log
    log4j.appender.event.append=true
    log4j.appender.event.maxFileSize=5MB
    log4j.appender.event.maxBackupIndex=1

sudo reboot

sudo systemctl enable openhab2.service
sudo systemctl start openhab2
    pi@emonpi(ro):~$ sudo systemctl status openhab2
    ? openhab2.service - openHAB 2 - empowering the smart home
       Loaded: loaded (/usr/lib/systemd/system/openhab2.service; enabled)
       Active: active (running) since Sat 2017-03-11 19:29:17 UTC; 10min ago
         Docs: http://docs.openhab.org
               https://community.openhab.org
      Process: 930 ExecStartPre=/bin/sh -c /bin/mountpoint -q /var/lib/openhab2/tmp || /bin/mount -t tmpfs tmpfs /var/lib/openhab2/tmp (code=exited, status=0/SUCCESS)
      Process: 908 ExecStartPre=/bin/sh -c /usr/bin/test -d /var/lib/openhab2/tmp || /bin/mkdir /var/lib/openhab2/tmp (code=exited, status=0/SUCCESS)
      Process: 892 ExecStartPre=/bin/sh -c /bin/mountpoint -q /var/lib/openhab2/cache || /bin/mount -t tmpfs tmpfs /var/lib/openhab2/cache (code=exited, status=0/SUCCESS)
      Process: 877 ExecStartPre=/bin/sh -c /usr/bin/test -d /var/lib/openhab2/cache || /bin/mkdir /var/lib/openhab2/cache (code=exited, status=0/SUCCESS)
      Process: 862 ExecStartPre=/bin/chown -R openhab:openhab /var/log/openhab2/ (code=exited, status=0/SUCCESS)
      Process: 844 ExecStartPre=/bin/mkdir -p /var/log/openhab2 (code=exited, status=0/SUCCESS)
     Main PID: 938 (karaf)
       CGroup: /system.slice/openhab2.service
               +- 938 /bin/bash /usr/share/openhab2/runtime/bin/karaf server
               +-1622 /usr/bin/java -Dopenhab.home=/usr/share/openhab2 -Dopenhab.conf=/etc/openhab2 -Dopenhab.runtime=/usr/share/openhab2/runtime -Dopenhab.userdata=/var/lib/openhab2 -Dopenhab.logdir=/var...

    Mar 11 19:29:40 emonpi start.sh[938]: at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:318)
    Mar 11 19:29:40 emonpi start.sh[938]: at org.eclipse.osgi.container.Module.doStart(Module.java:571)
    Mar 11 19:29:40 emonpi start.sh[938]: at org.eclipse.osgi.container.Module.start(Module.java:439)
    Mar 11 19:29:40 emonpi start.sh[938]: at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
    Mar 11 19:29:40 emonpi start.sh[938]: at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1562)
    Mar 11 19:29:40 emonpi start.sh[938]: at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
    Mar 11 19:29:40 emonpi start.sh[938]: at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)
    Mar 11 19:29:40 emonpi start.sh[938]: at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
    Mar 11 19:29:40 emonpi start.sh[938]: at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    Mar 11 19:29:40 emonpi start.sh[938]: at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

It is working right now. But looks like I need to put the FS in RW mode when installing bindings or UI/Actions etc. Otherwise they end op in an infinite loop.