Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:controllers:ferrariszaehler_lesekopf_rpi_gpio

Dies ist eine alte Version des Dokuments!


Ferrariszähler Lesekopf für Raspberry Pi

!! in Erstellung !!

In vielen Haushalten wird eine Ferrariszähler vom Energieversorger eingesetzt. Auch bei Photovoltaikanlage wurde / wird dieser als Einspeise-, Summen- Zäler verbaut. Es sind zum Teil zwar auch S0 Ausgänge an den alten Ferrariszälern vorhanden, welche aber durch den Energieversorger verplompt wurden. Für einen Anschluss am Ferrariszähler S0 Ausgagn muss daher ein Energieversorgertecniker anrücken. (im Raum SHK schlägt dies mit 180€ zu buche).

Mit dem Ferrariszähler Lesekopf für Raspberry Pi kann die Drehscheibe abgetastet und die Anzahl der Durchläufe der Rot Markierung ermittelt werden. Somit ist kein Energieversorgertecniker nötig.

Eine Test System ist hier zu finden (Photovoltaik Summenzähler).

Features

  • eine Leuchtdiodenanzeige um den Lesekopf richtig aus zu richten
  • Potenziometer zur Justage der Empfindlichkeit des Lesekopfs
  • Anschluss am GPIO Port des Raspberry
  • Erfassung bis zu 7 Stück über den GPIO Port möglich
  • durch Doppelseitiges Klebeband jederzeit demonierbar

Stromlaufplan

Die Grundschaltung wurde von hier verwendet. Das Leiterplattenlayout wurde mit Target 3001 (Conrad Edition) erstellt und dort gefertigt.

Bestückungsplan

Durch die Verwendung der trationellen HMD Löttechnik kann die Leiterplattenbestück ohne spezielle Werkzeug erfolgen.

Stückliste

Software -> Anbindung an Volkszählermiddleware

Zur Datenerfassung verwende ich eine kleine Java Aplikation welche mit Hilfe pi4j Bibliotheken den GPIO Port Überwacht und die Impulse erfasst und Summiert.

Auf dem Rapberry muss die Java JRE installiert sein:

apt-get update && apt-get install openjdk-7-jre

Für die Installation von pi4j sind folgende Schritte nötig:

wget http://pi4j.googlecode.com/files/pi4j-0.0.5.deb
sudo dpkg -i pi4j-0.0.5.deb

Für Debuggin Zwecke wird log4j benutzt. Dies ist zum Debugging im Java s0_logger implementier und muss daher mit installiert werden:

wget http://mirror.derwebwolf.net/apache/logging/log4j/2.0.2/apache-log4j-2.0.2-bin.tar.gz
tar -xzf apache-log4j-2.0.2-bin.tar.gz && rm apache-log4j-2.0.2-bin.tar.gz
mv apache-log4j-2.0.2-bin/ /opt/log4j

Der Java s0_logger:

mkdir /opt/s0_logger
 wget java aplikattion
ln -s /opt/log4j/log4j-1.2-api-2.0.2.jar /opt/log4j/log4j-api-2.0.2.jar /opt/log4j/log4j-core-2.0.2.jar /opt/s0_logger/

Es müssen noch zwei Konfigurationsdateien im Verzeichniss „/opt/s0_logger/“ angelegt werden:

config.properties

## SERVER eigener Volkszaehler Remote-Server !nicht localhost!
serv.url=http://
serv.page=middleware.php/data/
serv.timeout=5600

## Datenbank local, middleware Volkszaehler (Hier nur das Unterverzeichniss angeben) (http://localhost/"Unterverzeichniss")
vz.page=volkszaehler.org/htdocs/middleware.php/data/
vz.timeout=5400

## GPIO Zuordnung für Java Aplikation
#	PIN 11:Port 0
#	PIN 12:Port 1
#	PIN 13:Port 2
#	PIN 15:Port 3
#	PIN 16:Port 4
#	PIN 18:Port 5
#	PIN 22:Port 6
#	PIN 7 :Port 7

## Hier sind die auszulesenden GPIO Ports zu aktivieren; der Port 0-7, aktiv 1 / inaktiv 0
gpio.ports=1,0,0,0,0,0,0

## S0 Bezeichungen
s0.name=Verbraucher1, Verbraucher2, Verbraucher3, Verbraucher4, Verbraucher5, Verbraucher6, Verbraucher7

##Hier sind die Impulse/kWh ein zu tragen
s0.impulse=500,1000,1200,300,700,1500,900

## S0 Volkszaehler UUID: Erzeugt über das Frontend des VZ, Typ S0-Impulse (z.B. Eklektrische Energie (S0-Impulse))
s0.uuid=XXX-XXX-XXX-XXX-XXX,XXX-XXX-XXX-XXX-XXX,XXX-XXX-XXX-XXX-XXX,XXX-XXX-XXX-XXX-XXX,XXX-XXX-XXX-XXX-XXX,XXX-XXX-XXX-XXX-XXX,XXX-XXX-XXX-XXX-XXX

## Intervall [s]: Intervall Akkumulierung, Datenübertragung
s0.interval=30

## Impulslänge [ms]: Mindestlänge S0-Impulse
## um Fehldetektionen des Ferraris Zähler zu verhindern muss hier eine minimale erforderliche Zeit in ms zwichen zwei Impulsen festgelegt werden.
s0.duration=100

log4j.properties

# Der Root-Logger hat den Level DEBUG
log4j.rootLogger=ERROR, file

# Konfiguration der Log-Datei
log4j.appender.file=org.apache.log4j.RollingFileAppender

## Ziel und Name ggf. anpassen!
log4j.appender.file.File=/var/log/log4j_S0.log
log4j.appender.file.MaxFileSize=300KB

# Eine Backup-Datei behalten
log4j.appender.file.MaxBackupIndex=20

log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

Zum automatischen starten kann folgender Script verwendet und über den Cronjob aufgerufen werden: startS0.sh

#!/bin/bash
S0=$(pgrep -f "S0.jar" > /dev/null 2>&1 && echo "aktiv" || echo "inaktiv")

	if  [ $S0 == inaktiv ];
		then
		cd /opt/pi4j/lib/
		java -Xmx64m -Djava.awt.headless=true -classpath .:classes:/opt/pi4j/lib/'*' -cp .:S0.jar:log4j-core-2.0.2.jar:pi4j-core.jar  de.solarautonomie.classS0_Sensor >S0-startup-log 2>&1 &
	fi

Ausführbar machen:

 chmod a+x startS0.sh

crontabe Beispiel

@reboot root (cd /Verzeichniss/wo/start/Script_liegt && ./startS0.sh)

GPIO Anschluss

Bilder

hardware/controllers/ferrariszaehler_lesekopf_rpi_gpio.1410444608.txt.gz · Zuletzt geändert: 2014/09/11 16:10 von ronny_w