Difference between revisions of "Install dawnDusk"

From xPL
Jump to: navigation, search
(Ubuntu)
(Debian with SystemD)
Line 55: Line 55:
 
  su
 
  su
 
  systemctl enable xpl-dawnDusk.service
 
  systemctl enable xpl-dawnDusk.service
 +
service xpl-dawnDusk start
  
 
Reboot and check:
 
Reboot and check:

Revision as of 16:15, 29 December 2017

The dawnDusk device sends an xPL message at dawn, sunrise, sunset and dusk.

Before all, make sure you have installed an xPL hub.

Install xPL dawnDusk device

Download the xPL device script.

Move the script to xPL scripts directory:

SCRIPTS_BASE_DIR=/home/control/Documents/Controls
mv xpl-dawnDusk.pl $SCRIPTS_BASE_DIR
chown control:users $SCRIPTS_BASE_DIR/*.pl
chmod 775 $SCRIPTS_BASE_DIR/*.pl

Test xPL dawnDusk device

Open a terminal window and launch the device:

SCRIPTS_BASE_DIR=/home/control/Documents/Controls
$SCRIPTS_BASE_DIR/xpl-dawnDusk.pl -v

Open a second terminal window (on any machine with xPL installed) and monitor the xPL protocol:

SCRIPTS_BASE_DIR=/home/control/Documents/Controls
$SCRIPTS_BASE_DIR/xpl-monitor.pl -vf

Open a third terminal window (on any machine with xPL installed) and monitor the xPL protocol:

SCRIPTS_BASE_DIR=/home/control/Documents/Controls
$SCRIPTS_BASE_DIR/xpl-send.pl -c dawnDusk.basic command=status query=all

The monitor should report dawn and dusk times for the current day.

Launch the xPL dawnDusk device at startup

The xPL dawnDusk device is to be launched after the xPL hub.

Debian with SystemD

On Debian with systemd (such as Raspbian or Ubuntu), the scripts can be defined as services.

Edit /lib/systemd/system/xpl-dawnDusk.service:

[Unit]
Description=xPL dawnDusk
After=xpl-hub.service

[Service]
Type=simple
User=control
Group=users
ExecStart=/home/control/Documents/Controls/xpl-dawnDusk.pl -n home
Restart=always

[Install]
WantedBy=multi-user.target

Activate the service:

su
systemctl enable xpl-dawnDusk.service
service xpl-dawnDusk start

Reboot and check:

ps aux | grep -v grep | grep -i xpl
ps ax | grep -i xpl | grep -v grep | sed 's/.*\/Controls\///'
systemctl list-units --type=service --state=running | grep xpl
service xpl-dawnDusk status

Ubuntu with Upstart

On Ubuntu, the xPL dawnDusk device starts-up once xpl-hub_started has been emitted.

Edit /etc/init/xpl-dawnDusk.conf:

################################################################################
# xPL dawnDusk, sends dawn and dusk occurence messages
#
description "xPL dawnDusk"
version     "1.0"
author      "Francois Corthay"

#-------------------------------------------------------------------------------
# Configuration variables
#
env SCRIPTS_DIR='/home/control/Documents/Controls'
env SCRIPT_NAME='xpl-dawnDusk.pl'
env PARAMETERS='-n home'

#-------------------------------------------------------------------------------
# Start and stop conditions
#
start on xpl-hub_started
stop on shutdown
respawn
setuid control
setgid users

#-------------------------------------------------------------------------------
# Start daemon
#
exec $SCRIPTS_DIR/$SCRIPT_NAME $PARAMETERS

Start the device and check it is up and running:

su root
service xpl-dawnDusk start
service xpl-dawnDusk status
initctl list | grep xpl

Mac OS

On Mac OS, the xPL dawnDusk device starts-up later than the hub.

Edit /Library/LaunchDaemons/xpl-clock.plist:

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>xPL dawn-dusk indicator</string>
    <key>OnDemand</key>
    <false/>
    <key>UserName</key>
    <string>control</string>
    <key>ProgramArguments</key>
    <array>
      <string>/Users/control/Documents/Controls/xpl-dawnDusk.pl</string>
      <string>-n</string>
      <string>home</string>
      <string>-w</string>
      <string>25</string>
      <string>-l</string>
      <string>46.0037</string>
      <string>-o</string>
      <string>18</string>
    </array>
  </dict>
</plist>

Start the device and check it is up and running:

su root
launchctl load /Library/LaunchDaemons/xpl-dawnDusk.plist
launchctl list | grep -i xpl