[vz-users] Fehlersuche-HowTo: 1wirevz und s0vz

Heiko Baumann hbcs at gmx.de
Tue Jun 21 15:58:05 CEST 2016


So, hier bin ich nochmal: nach einem Update (apt-get, git pull 
volkszähler) läuft zwar "an sich" alles noch, aber es werden keine neuen 
Messwerte mehr gespeichert. Ich hatte so ein Problem schon mal früher, 
hab mir aber jetzt die einzelnen Schritte zur Fehlersuche mal 
zusammengeschrieben.

Vielleicht möchte mir ja jemand bei der Suche und der Beschreibung der 
Vorgehensweise behilflich sein. Ich würde das fertige Dokument dann ins 
wiki stellen, es kommt ja öfter vor, dass jemand fragt.. ;)

Vorbemerkung: auf meinem pi läuft kein vzlogger, ich habe ausschließlich 
1wire und s0 Zähler und nehme dafür (warum eigentlich?) die beiden 
Dienste von Henrik.
Ich habs bequemlicherweise in Word zusammengetippt, ich hoff man kann es 
hier trotzdem lesen...

Also: vielen Dank für die Hilfe!!


1)Erforderlich: Zugriff auf den Pi direkt über die Tastatur oder per SSH 
Shell (putty)

2)Gesamtsituation?

Mysql ist aktiv und erreichbar (phpmyadmin ok, frontend zeigt alte 
gespeicherte Werte problemlos an, neue Kanäle lassen sich hinzufügen, 
keine neuen Werte sichtbar)

3)Stimmt die Systemzeit?

Kleine Ursache, große Wirkung: evtl. vergisst der Pi die Systemzeit. 
Probe mit:

pi at BauratPi ~ $ *date*

Di 21. Jun 09:36:14 CEST 2016-> korrekte aktuelle Zeit, passt

Wenn nicht: Zeit neu setzen in der Form:

pi at BauratPi ~ $ *sudo date -s "17 JUN 2016 23:07:00"*

evtl. Abgleich mit

pi at BauratPi ~ $ *sudo sntp pool.ntp.org*

4)Laufen die Dienste?

Prüfe, ob die Daemons für 1wirevz und s0vz überhaupt aktiv sind:

pi at BauratPi ~ $ *ps ax|grep 1wire*

*3108*?Ss0:00 /usr/local/sbin/1wirevz // Ok, Dienst läuft mit PID *3108*

4804 pts/0S+0:00 grep --color=auto 1wire// das ist nur der Such-Prozess

pi at BauratPi ~ $ *ps ax|grep s0vz*

*3132*?Ss0:08 /usr/local/sbin/s0vz

4809 pts/0S+0:00 grep --color=auto s0vz

Gut, die Dienste laufen also schon mal. Ansonsten: dienste neu starten mit

pi at BauratPi ~ $ *sudo 1wirevz restart*

pi at BauratPi ~ $ *sudo s0vz restart*

5)Was sagen die Logfiles?

Bei intensiverer Fehlersuche kann man mehrere Terminalfenster öffnen, um 
einen besseren Überblick zu bekommen.

In einem Fenster kann man z.B. dauerhaft das syslog überwachen:

pi at BauratPi ~ $ *tail -f /var/log/syslog*

Beim Stop/Start eines Dienstes müsste im syslog angezeigt werden, was 
passiert:

pi at BauratPi ~ $ *cat /var/log/syslog | grep 1wire*

Jun 21 10:03:38 BauratPi 1wirevz: DS2482 I²C 1-Wire® Master to 
Volkszaehler deamon 1.5 (2) -2

Jun 21 10:03:38 BauratPi 1wirevz: VzServer: 127.0.0.1

Jun 21 10:03:38 BauratPi 1wirevz: VzPort: 80

Jun 21 10:03:38 BauratPi 1wirevz: VzPath: middleware.php

Jun 21 10:03:38 BauratPi 1wirevz: Metering interval: 60 sec

FEHLER – hier sollten dann eigentlich die angehängten Sensoren 
aufgelistet werden!

pi at BauratPi ~ $ *cat /var/log/syslog | grep s0vz*

Jun 21 10:06:34 BauratPi s0vz: S0/Impulse to Volkszaehler RaspberryPI 
deamon 1.4.4

Jun 21 10:06:34 BauratPi s0vz: VzServer:localhost

Jun 21 10:06:34 BauratPi s0vz: VzPort:80

Jun 21 10:06:34 BauratPi s0vz: VzPath:middleware.php

Jun 21 10:06:34 BauratPi s0vz: GPIO0 = 7b6afe30-f2dc-11e2-a117-6b7d90ba87df

Jun 21 10:06:34 BauratPi s0vz: GPIO1 = ae9d1b00-f2f5-11e2-8a1f-0dad1c039958

Jun 21 10:06:34 BauratPi s0vz: GPIO2 = 89277390-f2dc-11e2-94d6-9984a2fec1dc

Jun 21 10:06:34 BauratPi s0vz: GPIO3 = drei-frei

Jun 21 10:06:34 BauratPi s0vz: GPIO4 = 90da22c0-f2dc-11e2-a59d-e9b55d71b128

Jun 21 10:06:34 BauratPi s0vz: GPIO5 = 9a7ed6c0-f2dc-11e2-b13e-b9abb50897a8

… das sieht eigentlich ok aus, oder?

6)Wie sieht die Konfigurationsdatei /etc/1wirevz.cfg aus?

pi at BauratPi ~ $ *cat 1wirevz.cfg*

/**************************************************************************

Part of DS2482 I²C 1-Wire® Master to Volkszaehler 'RaspberryPI deamon'.

**************************************************************************/

/* Hostname, FQDN or IP of your VZ - normaly this should be 'localhost' */

vzserver = "127.0.0.1"

/* Path to the VZ middleware.php script, WITHOUT preposed and trailing 
slash */

vzpath = "middleware.php"

/* HTTP Port of your VZ */

vzport = 80

/* Metering interval in seconds for ALL sensors */

interval = 60

/* DS1820 SensorID to VZ UUID mapping - SensorID start with 'asterisk' */

/* Check your IDs 'cat /var/log/syslog|grep 1wirevz' */

/* T4 Aussentemperatur channel 10 */

**28-0000045c5c7e*= "*53e45780-f2dc-11e2-bb40-e1626f6aa1bd*"

/* T2 Sole WP Eintritt channel 7 */

*28-0000045d7eb0 = "37e34a40-f2dc-11e2-a9f5-617f327e9a54"

/* T2 Sole WP Austritt channel 8*/

*28-000004a2845a = "3e744e20-f2dc-11e2-ab3d-e5709e8f1bd3"

… usw…

Für jeden Sensor also ein Eintrag. Links (blau) ist die Sensor-ID, die 
im Syslog stehen, rechts (rot) die UUID, die vom System beim Anlegen 
eines neuen Kanals über das Frontend vergeben wird (auslesen auch übers 
Frontend ausgelesen durch Klick auf den blauen „i“ Button am Ende des 
Kanals:

7)Wie sieht die Konfigurationsdatei /etc/s0vz.cfg aus?

pi at BauratPi ~ $ *cat s0vz.cfg*

#################################################################################

#

# S0/Impulse to Volkszaehler 'RaspberryPI deamon'.

…

/* Hostname, FQDN or IP of your VZ - normaly this should be 'localhost' */

vzserver = "localhost"

/* Path to the VZ middleware.php script, WITHOUT preposed and trailing 
slash */

vzpath = "middleware.php"

/* HTTP Port of your VZ */

vzport = 80

/* Define S0 inputs here, use these types in volkszaehler frontend */

/* Channel type: Strom_messer for S0 PowerMeters */

/* Gas for Gas-Meters via reed sensor or direct (Style: steps) */

/* PV-WR */

GPIO0 = "*7b6afe30-f2dc-11e2-a117-6b7d90ba87df*"

/* Betrieb WP */

GPIO1 = "ae9d1b00-f2f5-11e2-8a1f-0dad1c039958"

…

Auch hier sind die UUIDs (rot) aus dem Frontend auszulesen.

8)Wie sieht /etc/rc.local aus?

pi at BauratPi / $ *cat /etc/rc.local*

#!/bin/sh -e

#

# rc.local

#

# This script is executed at the end of each multiuser runlevel.

# Make sure that the script will "exit 0" on success or any other

# value on error.

#

# In order to enable or disable this script just change the execution

# bits.

#

# By default this script does nothing.

# Print the IP address

_IP=$(hostname -I) || true

if [ "$_IP" ]; then

printf "My IP address is %s\n" "$_IP"

fi

#killall vzlogger

#/usr/local/bin/vzlogger

#/usr/local/bin/vzlogger-c

owfs

# Part of DS2482 I2C 1-Wire Master to Volkszaehler 'RaspberryPI deamon'.

*#Raspberry Rev1 *

#echo ds2482 0x18 > /sys/bus/i2c/devices/i2c-0/new_device

#echo ds2482 0x19 > /sys/bus/i2c/devices/i2c-0/new_device

#echo ds2482 0x1a > /sys/bus/i2c/devices/i2c-0/new_device

*# Raspberry Rev2*

echo ds2482 0x18 > /sys/bus/i2c/devices/i2c-1/new_device

echo ds2482 0x19 > /sys/bus/i2c/devices/i2c-1/new_device

echo ds2482 0x1a > /sys/bus/i2c/devices/i2c-1/new_device

# Part of S0/Impulse to Volkszaehler 'RaspberryPI deamon'

#echo 17 > /sys/class/gpio/export && echo "in" > 
/sys/class/gpio/gpio17/direction && echo "falling" > 
/sys/class/gpio/gpio17/edge

#echo 18 > /sys/class/gpio/export && echo "in" > 
/sys/class/gpio/gpio18/direction && echo "falling" > 
/sys/class/gpio/gpio18/edge

#echo 22 > /sys/class/gpio/export && echo "in" > 
/sys/class/gpio/gpio22/direction && echo "falling" > 
/sys/class/gpio/gpio22/edge

#echo 23 > /sys/class/gpio/export && echo "in" > 
/sys/class/gpio/gpio23/direction && echo "falling" > 
/sys/class/gpio/gpio23/edge

#echo 24 > /sys/class/gpio/export && echo "in" > 
/sys/class/gpio/gpio24/direction && echo "falling" > 
/sys/class/gpio/gpio24/edge

#echo 27 > /sys/class/gpio/export && echo "in" > 
/sys/class/gpio/gpio27/direction && echo "falling" > 
/sys/class/gpio/gpio27/edge

echo 17 > /sys/class/gpio/export && echo "rising" > 
/sys/class/gpio/gpio17/edge

echo 18 > /sys/class/gpio/export && echo "rising" > 
/sys/class/gpio/gpio18/edge

echo 22 > /sys/class/gpio/export && echo "rising" > 
/sys/class/gpio/gpio22/edge

echo 23 > /sys/class/gpio/export && echo "rising" > 
/sys/class/gpio/gpio23/edge

echo 24 > /sys/class/gpio/export && echo "rising" > 
/sys/class/gpio/gpio24/edge

echo 27 > /sys/class/gpio/export && echo "rising" > 
/sys/class/gpio/gpio27/edge

exit 0

9)Wie sieht /etc/modules aus?

pi at BauratPi ~ $ *cat /etc/modules*

# /etc/modules: kernel modules to load at boot time.

#

# This file contains the names of kernel modules that should be loaded

# at boot time, one per line. Lines beginning with "#" are ignored.

# Parameters can be specified after the module name.

snd-bcm2835

# Part of DS2482 I²C 1-Wire® Master to Volkszaehler 'RaspberryPI deamon'.

i2c-bcm2708

i2c-dev

ds2482

w1-therm

10)Werden die Sensoren gemountet, liefern sie aktuelle Werte?

Sofern bis hier alles richtig ist, werden die Sensoren als „device“ 
eingebunden und legen ihre Werte ab. Jeder Sensor legt ein Verzeichnis 
mit seiner ID (z.B. 28-000004508eec, siehe oben unter 5. die Einträge 
„1wirevz“ im syslog) unter ////sys/bus/w1/devices// ab.

pi at BauratPi / $ *ls -la /sys/bus/w1/devices*

ls: Zugriff auf /sys/bus/w1/devices nicht möglich: Datei oder 
Verzeichnis nicht gefunden

Richtig wäre also pro Sensor-ID ein Verzeichnis

FEHLER – mir fehlen die Sensoren..!!

11)Wenn keine Sensoren da sind: ist die Hardware defekt?

Neue SD-Karte nehmen, fertiges vz-Image von hier:

http://wiki.volkszaehler.org/howto/raspberry_pi_image

runterladen und auf die Karte ziehen, starten.

Im Image ist zumindest ein 1wire und s0 Controller aktiv. Mit obigem 
Schritt 10) sieht man, ob jetzt die Sensoren da sind. Wenn ja: Hardware 
ist ok, ansonsten Kabel prüfen etc. Bei mir: Hardware läuft, Sensoren 
sind da. Habe mal in der /etc/vzlogger.conf zwei Channel eingerichtet, 
das klappt auch (Frontend zeigt neue Messwerte).


Fazit: in „meinem“ Image ist nach dem Upate der Wurm drin, obwohl ich 
die Konfig nicht angefasst habe. Weiß jemand, wie ich da jetzt 
weitersuchen muss?

[Ergänzung: ich hab auf „meinem“ Image ein paar Erweiterungen, z.b 
autom. Dropbox-Backup, die will ich ungern aufgeben.. deswegen ist das 
Neu-Konfigurieren des fertigen Images nur die zweite Wahl..]

Bin gespannt und harre der Dinge :)

Danke und schöne Grüße!
Heiko


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20160621/0ce81281/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: clip_image002.jpg
Type: image/jpeg
Size: 17744 bytes
Desc: not available
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20160621/0ce81281/attachment-0001.jpg>


More information about the volkszaehler-users mailing list