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

Andreas Götz cpuidle at gmail.com
Tue Jun 21 16:21:09 CEST 2016


Ps.: interesant wäre evtl auch Deine Raspbian Version- ich weiss nicht ob die neuen vielleicht DeviceTree für die 1wire Sensoren brauchen?

Udo kann das sicher aufklären...

Viele Grüße, Andreas 

> Am 21.06.2016 um 15:58 schrieb Heiko Baumann <hbcs at gmx.de>:
> 
> 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 ?        Ss     0:00 /usr/local/sbin/1wirevz // Ok, Dienst läuft mit PID 3108
>  4804 pts/0    S+     0:00 grep --color=auto 1wire   // das ist nur der Such-Prozess
>  
> pi at BauratPi ~ $ ps ax|grep s0vz
>  3132 ?        Ss     0:08 /usr/local/sbin/s0vz
>  4809 pts/0    S+     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:
> <clip_image002.jpg>
> 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/f1816667/attachment-0001.html>


More information about the volkszaehler-users mailing list