[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