meta-talologger provides OpenEmbedded metadata / BitBake recipes for taloLogger home automation software suite. The metadata can be used to include taloLogger software in any distribution built based on and for any machine supported by Yocto.
Additionally meta-talologger provides a taloLogger image for Raspberry Pi, which directly allows for building a completely custom image for Raspberry Pi that contains taloLogger software.
meta-talologger is based on Yocto Project. See the Yocto website for more information on Yocto.
No attempts have been made to secure the installation / system! It is assumed that the system will be run on a private trusted LAN.
meta-talologger currently only packages taloLogger, taloLoggerGraph and their dependencies. dialEye is still to be added.
taloLogger and taloLoggerGraph use the default configuration files included in the taloLogger and taloLoggerGraph releases. Suitable configuration files need to be added to the final system to make it useful.
The system should have network connectivity for time synchronization using NTP.
- meta-python: Python required by taloLogger
- meta-webserver: nginx for taloLoggerGraph
- meta-oe: PHP for taloLoggerGraph
- meta-raspberrypi: rpi-hwup-image for the Raspberry Pi image
Additionally some recipes have been imported from other layers in order to avoid creating a dependency.
Set up your Yocto build environment. See Yocto Project Quick Start for more information.
Add the dependencies to your
BBLAYERS ?= " \ /path/to/poky/meta \ /path/to/poky/meta-yocto \ /path/to/poky/meta-yocto-bsp \ /path/to/poky/meta-raspberrypi \ /path/to/poky/meta-openembedded/meta-oe \ /path/to/poky/meta-openembedded/meta-python \ /path/to/poky/meta-openembedded/meta-webserver \ /path/to/poky/meta-talologger \ "
The generated image can / should be customized using the following variables e.g. in local.conf:
DEFAULT_TIMEZONE: the desired timezone. Will be used to set the system timezone (
/etc/localtime) and the PHP
date.timezoneconfiguration option. An example:
Europe/Helsinki. The default:
hostname_pn-base-files: the desired hostname. See the Yocto manual for more information.
An example of items to be added to local.conf:
DISTRO ?= "talologgerdistro" hostname_pn-base-files = "myhostname" TALOLOGGER_SYSTEM_TIMEZONE = "Europe/Helsinki"
Build: in the
build directory run
bitbake talologger-rpi and
dd the resulting image (
tmp/deploy/images/raspberrypi2/talologger-rpi-raspberrypi2.rpi-sdimg) to an SD card.
In absence of proper documentation this section provides a short summary of the design of the meta-talologger layer.
The system uses
systemd as its init mechanism.
systemd-networkd is used for managing network interface(s), and
systemd-timesyncd is used for time synchronization.
systemd-journald is used to capture all logs instead of individual log files wherever possible.
systemd-journald also naturally handles log rotation. Independent
systemd targets are defined to group logging and visualization related services.
File System Hierarchy Standard (FHS) is followed in the filesystem layout as far as possible. The local service directory
/srv is used for storing taloLogger and taloLoggerGraph related files including the www document root. Configuration files are stored in
/etc as usual with the exception of
taloLoggerGraph.conf, which needs to be accessible by PHP code. Data collected by taloLogger is stored in an sqlite database.
nginx serves as the HTTP server, and
PHP-FPM runs PHP code.
Configuration file directories are favored over large monolithic configuration files wherever possible, especially in
/etc. This makes it easier for independent BitBake recipes to install their configuration fragments without needing to patch single monolithic configuration files.
Hannu Lounento <hannu.lounento (at) iki.fi>