Raspberry Pi

From ago control wiki
Revision as of 11:15, 17 July 2015 by Kezza (Talk | contribs)

Jump to: navigation, search
Pi2B1.jpeg
This is a full walk-through example install on a headless Raspberry Pi.

Contents

Installation

OS (headless)

Download Raspian from [1]
Get the image to an SD card, e.g. using one of these tutorials: Windows, Linux, Mac
Insert the SD card, connect an ethernet cable and power up the RPi.
Find the IP adress it has received, e.g. look at the DHCP table in your router
Open a term window (on windows use Putty) and ssh into the RPi

ssh pi@192.168.x.xx

login: pi password: raspberry

Set the password to something new

sudo passwd pi

Start the RPi configuration

sudo raspi-config

Use these options:

  • 1 (expand filesystem)
  • 3 (boot options) -- console
  • 8 (Advanced options)
    • A2 (change name) -- Set whichever host name you like
    • A3 (memory split) – 16
    • A0 (update)

Go into sudo-mode

sudo bash

Set your time zone:

dpkg-reconfigure tzdata  

Remove some unneeded packages

(( Experimental - still doing verifications that nothing broke! ))

sudo apt-get remove --purge x11-common -y
sudo tasksel remove gnome-desktop
sudo apt-get remove x11-* -y
sudo apt-get autoremove -y

((so far it seems OK, but the 2 below commands seems to have broken df. ago control still OK))

sudo apt-get purge lxappearance* lxde-common* lxde-icon-theme* lxpolkit* lxrandr* lxtask*
 lxterminal*
sudo apt-get purge desktop-base desktop-file-utils gnome-icon-theme gnome-themes-standard leafpad menu-xdg omxplayer scratch xarchiver zenity

Approx 1 GB will be removed

Upgrade the OS to latest version

apt-get update
apt-get upgrade


Get automatic updated date/time

Since the rpi doesn't contain a hwclock. you can install ntppdate. This will right after a netork is up, update to the current date/time

sudo apt-get install ntpdate
sudo nano  /etc/ntp.conf

Remember to add a time server in this file. I have added "time.nrc.ca"

#You do need to talk to an NTP server or two (or three).
#server ntp.your-provider.example
time.nrc.ca

aGo Control

Get the installation key & add installation source

wget http://mirror.at.agocontrol.com/debian/conf/agocontrol.gpg.key
apt-key add agocontrol.gpg.key
echo "deb http://mirror.at.agocontrol.com/raspbian testing main" >> /etc/apt/sources.list

Install aGo Control (Currently approx. 180 MB additional disk) You'll be asked for a QPID daemon password during the install: Set it to something

apt-get update
apt-get install agocontrol
apt-get install systemd systemd-sysv (optional, see "Sysvinit" section below)
reboot

Optional RPI packages:
RaspberryPi1Wire
RaspberryPiGPIO

Optional packages for hardware and extra feature support:

  • agocontrol-cloud - ago Cloud automation system suport on cloud.agocontrol.com
  • agocontrol-owfs - Device for 1-Wire Hardware
  • agocontrol-zwave - Device for Z-Wave Hardware
  • agocontrol-meloware - Device for Meloware iPhone App
  • agocontrol-mysensors - Device for Mysensors Hardware
  • agocontrol-alert - Device for to communicate via sms, email, tweet, push notifications
  • NOTE: This might not be needed anymore: agocontrol-rrdtool - Device for RRDtool graphs, plot, and lists of your measuring sensors


After reboot, ssh into the RPI again

ssh pi@192.168.x.xx

password: the new password you set before

Add your location to the config file

nano /etc/opt/agocontrol/conf.d/system.conf

add eg:

lat= 56.05
lon=12.7

Side note- do not use the absolute value of the coordinates (12.7 != -12.7). Here's a great resource for finding your position (http://itouchmap.com/latlong.html).

press [CTRL]X to save

start / stop / autostart services

Configue service autostart This will enable all services:

/opt/agocontrol/bin/agoctrl.sh enable

You can also use "systemctl enable <service>" to manually enable specific services. ""Start components"" This will start all installed components:

/opt/agocontrol/bin/agoctrl.sh start


Now open http://192.168.x.xx:8008 on another machine
In the Web UI, add rooms & floorplans

If you get some strange problems with sudo:

PATH=$PATH:/usr/bin
echo $PATH

Sysvinit

By default, raspi is pre-installed with sysv-init. You can replace it by systemd as explained above.

But if you don't want, you can copy this script into /etc/init.d/agocontrol file.

wget "http://git.agocontrol.com/agocontrol/agocontrol/raw/develop/conf/sysvinit/agocontrol.in" -O /etc/init.d/agocontrol
chmod +x /etc/init.d/agocontrol

And execute this command to start agocontrol at raspi startup:

update-rc.d agocontrol defaults

Also make sure all your installed plugins are listed in APPS variable.

nano /etc/init.d/agocontrol
APP="agorpc agodatalogger agoevent agoresolver agoscenario agotimer <add here all your plugins bin name>"
[CTRL]X to save changes

If you want to remove agocontrol from startup execute this command

update-rc.d -f agocontrol remove

Troubleshoot

Agocontrol doesn't start

Make sure user agocontrol is the owner of these directories (and content):

  • /opt/agocontrol
  • /var/opt/agocontrol
  • /etc/opt/agocontrol

If not execute command:

chown -R agocontrol:agocontrol <dir>

Agocontrol doesn't start (sysvinit)

If you use sysvinit, make sure BIN_PATH variable of /opt/init.d/agocontrol is correct

BIN_PATH=/opt/agocontrol/bin/

Some processes stops just after launch

If some processes stops just after launch with this error:

pthread_mutex_lock.c:62: __pthread_mutex_lock: Assertion `mutex->__data.__owner == 0' failed

Please make sure you aptitude source list is pointing to raspbian repository and not debian.

Personal tools