DAS SMART METER FÜR JEDEN

Installationsleitfaden

Schön das du dich für unser Projekt interessierst. Auf dieser Seite wollen wir euch eine Schritt-für-Schritt Anleitung für die eigene Installation liefern.

Die Installation gliedert sich folgendermaßen:

  1. Hardware: Sensoren/Zähler und Controller
  2. Software: Serverseite (Middleware)

Hardware

Möchtest du den Stromverbrauch deines Hausanschlusses messen, solltest du die Installation des Zählers einem Fachmann überlassen

Die Installation der Zähler/Sensoren und des Controllers ist stark von der verwendeten Hardware abhängig. Bei Fragen wende dich bitte an die Mailing-Liste.

  • Sensoren/Zähler

Der Morphologische Kasten gibt euch eine Übersicht über die möglichen und unterstützten Sensoren/Zähler.

  • Controller

Bisher unterstützen wir das AVR NET-IO Board von Pollin und den 2xS0-Hutschienencontroller bzw. 5xS0-Hutschienencontroller.

Die drei Controller basieren auf der ethersex Firmware. Bisher müssen wir dort die UUID, die wir im vorherigen Schritt erzeugt haben, statisch in den Controller flashen.

Die Installation wird hier beschrieben.

Software

  • Serverseite (Middleware)

Voraussetzungen

  • PHP 5.3 (als Modul oder [F]CGI auf Apache2/nginx) (Anm.: die Version 5.3 ist ein k.O.-Kriterium - mit 5.2 funktioniert's definitiv nicht!)
  • Doctrine 2.0.1
  • mySQL, PostgreSQL oder SQLite + PDO Treiber
  • APC (optional, aber empfohlen)
  • jpGraph (optional, zum Plotten von PNG Grafiken)
  • Apache mod_rewrite (optional)

Am besten eigenen sich hier Debian Squeeze oder Ubuntu Lucid. Die Abhängigkeiten lassen sich schnell mit folgendem Befehl installieren:

apt-get install git-core libapache2-mod-php5 php5-cli php5-mysql php-apc mysql-server mysql-client
bzw. für PostgreSQL
apt-get install git-core libapache2-mod-php5 php5-cli php5-pgsql php-apc postgresql-8.4

Install-Skript (empfohlene Installationsmethode)

$ wget --no-check-certificate https://github.com/volkszaehler/volkszaehler.org/raw/master/misc/tools/install.sh
...
$ chmod a+x install.sh 
$ ./install.sh 

doctrine setup...
doctrine path? [/usr/local/lib/volkszaehler.org/doctrine] 
installing doctrine into /usr/local/lib/volkszaehler.org/doctrine
Cloning into /usr/local/lib/volkszaehler.org/doctrine...
...

volkszaehler path? [/var/www/vz] 
installing volkszaehler.org into /var/www/vz
Cloning into /var/www/vz...
remote: Counting objects: 3025, done.
...

configure volkszaehler.org (database connection)? [y] 
...

Das Script fragt, was es wohin installieren soll.

Sollte es zu einem PHP Fehler beim Anlegen der Datenbank kommen versucht mal Doctrine per Hand zu Installieren.

Apache konfigurieren

  • mod_rewrite aktivieren:

a2enmod rewrite

  • Default VirtualHost bearbeiten:

/etc/apache2/sites-enabled/000-default:
    DocumentRoot /var/www/volkszaehler.org/htdocs/

  • unter <Directory /var/www/>:

AllowOverride FileInfo Limit Options Indexes

Manuelle Installation

Download der volkszaehler.org Skripte

Download der Skripte aus dem git Repository:

git clone git://github.com/volkszaehler/volkszaehler.org.git /var/www/volkszaehler.org
sudo chown -R www-data: /var/www/volkszaehler.org

Apache konfigurieren

  • mod_rewrite aktivieren:

a2enmod rewrite

  • Default VirtualHost bearbeiten:

/etc/apache2/sites-enabled/000-default:
    DocumentRoot /var/www/volkszaehler.org/htdocs/

  • unter <Directory /var/www/>:

AllowOverride FileInfo Limit Options Indexes

Installation von Doctrine

wget -O - http://www.doctrine-project.org/downloads/DoctrineORM-2.0.1-full.tar.gz | tar xz -C /usr/local/
cd /var/www/volkszaehler.org/lib/vendor
ln -s /usr/local/doctrine-orm/Doctrine/ .

Alternativ aktualle Version aus dem Git installieren

git clone git://github.com/doctrine/doctrine2.git /usr/local/doctrine-orm

cd /usr/local/doctrine-orm

git submodule init
git submodule update

cd /var/www/volkszaehler.org/lib/vendor

ln -s /usr/local/doctrine-orm/lib/Doctrine/ .
ln -s /usr/local/doctrine-orm/lib/vendor/Symfony/ ./Doctrine/

cd Doctrine

ln -s /usr/local/doctrine-orm/lib/vendor/doctrine-dbal/lib/Doctrine/DBAL/ .
ln -s /usr/local/doctrine-orm/lib/vendor/doctrine-common/lib/Doctrine/Common/ .

Konfiguration der Middleware

cd /var/www/volkszaehler.org/etc/
cp volkszaehler.conf.template.php volkszaehler.conf.php
edit volkszaehler.conf.php:
    $config['db']['host']               = 'localhost';
    $config['db']['user']               = 'vz';
    $config['db']['password']           = '<shhh!>';
    $config['db']['dbname']             = 'volkszaehler';

Alternativ wird die Installation in der Doctrine Dokumentation beschrieben. Falls du also Probleme bei der Installation haben solltest, kannst du dir hier noch ein paar Informationen holen.

Datenbank konfigurieren

  • Datenbank-User anlegen:

phpmyadmin:
    Home -> "Rechte" -> "Neuen Benutzer hinzufügen"
        Benutzername: vz
        Host: localhost
        Passwort: <shhh!>
        keine globalen Rechte vergeben!
        -> ok
oder:
    CREATE USER 'vz'@'localhost' IDENTIFIED BY '<shhhh!>';

  • Datenbank anlegen:

phpmyadmin
    Home -> "Datenbank anlegen", Name: "volkszaehler" -> "Anlegen"
oder:
    CREATE DATABASE `volkszaehler`;

  • Tabellen anlegen:

    Datenbank "volkszaehler" auswählen (ggf. phpmyadmin neu laden, falls die neue DB noch nicht angezeigt wird)
    Struktur importieren: 
      "Importieren" mysql.sql (siehe README im Verzeichnis share/sql)

  • Demoinhalte importieren:

      Tabelle "entities" auswählen (unbedingt zuerst diese importieren!)
      "Importieren"; das Gleiche mit "properties" und "data"
oder:
      cd /var/www/volkszaehler.org/misc/sql/demo
      cat entities.sql properties.sql data-demoset1.sql | mysql -uroot volkszaehler -p

  • Rechte setzen:

Datenbank "mysql", Tabelle "tables_priv":
    "Einfügen": 
        Host: "localhost"
        Db: "volkszaehler"
        User: "vz"
        Table_name: "data" (anschließend das Gleiche mit "entities", "entities_in_aggregator", "properties", "tokens"
        Table_priv: "select", "update" und "insert"
        
oder:
        GRANT select, update, insert ON volkszaehler.* TO vz@localhost;

  • Nun noch ein Passwort für den mysql-Administrator „root“ setzen und die Passwortdatenbank aktivieren:

mysqladmin password -u root "<neues, gutes passwort>"
mysqladmin reload -p

Zähler/Sensoren einrichten

Um die Installationen benutzen zu können müssen wir erst einen neuen Kanal (Zähler/Sensor) erstellen:

automatisch über Frontend

Im WebFrontend: Kanal hinzufügen → Kanal erstellen

Hier werden bisher noch nicht alle Zählertypen unterstützt!

manuell über HTTP Request

http://<server>/<path>/volkszaehler.org/middleware.php/channel.json?operation=add&title=Testzaehler&type=power&resolution=1000&description=Swissnox[...]

Die Middleware antwortet daraufhin mit einer JSON codierten Antwort, die die UUID des Kanals enthält.

Die UUID läßt sich auch per phpMyAdmin aus der Tabelle „entities“ entnehmen.

Testen

Mit folgendem Request können wir dan bereits die ersten Impulse/Messwerte simulieren:

http://<server>/<path>/volkszaehler.org/middleware.php/data/<uuid>.json?operation=add&value=<1|Sensor Wert>

Um uns nun die Daten anzeigen zu können müssen wir nur noch die Middleware mit der entsprechenden UUID aufrufen:

http://<server>/<path>/volkszaehler.org/frontend/?uuid=<uuid>

Die Demodaten besitzen die UUID:
a301d8d0-903b-1234-94bb-d943d061b6a8

Alternativ kann man die UUID auch über das Fenster im Frontend direkt eingeben.

howto/getstarted.txt · Zuletzt geändert: 2012/01/22 20:41 von Nils Wollek