Benutzer-Werkzeuge

Webseiten-Werkzeuge


faq

Frequently Asked Questions

Zähler

Wird mein Zähler denn schon unterstützt?

Am Besten wirfst Du einen Blick in die Kategorie Verbrauchsmessgeraete.

Woher weiß ich, ob mein Zähler das Protokoll "sml" oder das Protokoll "d0" (oder DIN-EN 62056-21) spricht?

Das ist ganz einfach. Im Gegensatz zu sml ist d0 in ASCII codiert. Die Ausgabe sieht dann eben so, so oder so aus. sml hingegen ist binär codiert und sieht daher bei direkter Betrachtung auf der Console deutlich unübersichtlicher aus (wenn man's durch ein „hexdump -d“ laufen lässt, sieht's z. B. so aus). Kurzum: sobald in der Ausgabe sowas wie „1.8.1“ enthalten ist, spricht der Zähler „d0“ und nicht „sml“.

Mein eH-Zähler gibt nur volle kWh aus

Manche Netzbetreiber schränken die Funktion der IR-Schnittstelle an den eHZ ein. Für voll Funktionalität des Zählers ist es nötig eine PIN am „Lichttaster“ des Zählers einzugeben. Diese PIN muss beim Messstellenbetreiber (in der Regel der Netzbetreiber) angefordert werden.
Damit hat man zum Beispiel Zugriff auf den Tagesverbrauchszähler, die Leistungsanzeige oder auch mehr Daten über die IR-Schnittstelle. Konkret: Zählerstände mit Nachkommastellen und vielleicht auch zusätzliche OBIS-Codes.

Netze BW: Bedienungsanleitung Moderen Messeinrichtung

Datenbank

Löschen eines Kanals schlug fehl

Eine Kanal wurde falsch oder zum Test angelegt und soll gelöscht werden. Es erscheint aber eine Fehlermeldung:

An exception occurred while executing 'DELETE FROM data WHERE channel_id = ?' with params [12]:
SQLSTATE[42000]: Syntax error or access violation: 1142 DELETE command denied to user 'vz'@'localhost' for table 'data'

In Standardeinstellung hat der Standarduser keine Löschrechte. Die können aber nachträglich erteilt werden:

sudo mysql --user=root -praspberry
mysql> grant select, update, insert, delete on volkszaehler.* to vz@localhost;
mysql> flush privileges;
mysql> exit

Wie kann man einen Spaltennamen ändern?

ALTER TABLE `properties` CHANGE `key` `pkey` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL

Table 'volkszaehler.data' doesn't exist

Der Fehler tritt auf wenn man Datenbank und User manuell angelegt, aber vergessen hat die Tabellen anzulegen bevor man sie mit (Demo-) Daten füllt.

Zum Erstellen der Tabellen siehe: https://github.com/volkszaehler/volkszaehler.org/tree/master/misc/sql.

Fehlender TIMESTAMP / keine Daten in DB

falls beim Middleware Server unter Apache in der access_log die Einträge in der folgenden Art gelistet sind:

<IP> - - [<DATE>] "POST /middleware/index.php/data/<UUID>.json?ts=0000&value=1 HTTP/1.1" 400 232

fehlt der TIMESTAMP des controllers (ts=0000).
In diesem Fall kann man diesen testweise auch durch den Server erzeugen lassen, indem man ethersex (e6) ohne timestamp konfiguriert:

make menuconfig
  Applications:
    watchasync service:
      Include unix timestamp: ausschalten
      Summarize Events: ausschalten
      Path at the end: ".json"

Größe der Datenbank und access_log

Bei Einsatz meherer hoch auflösender Energiezähler mit S0-Schnittstelle (DIN 43864) und überdurchschnittlichem Energiefluss kann der Speicherbedarf rapide auf mehrere hunder MB ansteigen.

Da MySQL jede Änderung in einem Logfile mitschreibt (z.B. mysqld-bin.<nnnnnn>) kann der Speicherbedarf reduziert werden indem man die Maximalgröße des Logs reduziert und ältere automatisch löschen lässt. Beispiel: /etc/mysql/my.cnf

[mysqld]
expire_log_days = 7
max_binlog_size = 10M

Dies erstellt eine neues Log alle 10MB und löscht sie wenn sie älter sind als 7 Tagen.
Weitere Reduktion kann bei den Apache Logs z.B. mittels logrotate erreicht werden.

Frontend- bzw. Middleware

Keine Kanäle auf anderem Browser/Endgerät

Das Abonnement der Kanäle wird lokal als Cookie gespeichert. Andere Geräte oder Browser können darauf nicht zugreifen und man muss die Kanäle für das andere End„gerät“ separat abonnieren. Das ist auch der Fall wenn man die Cookies gelöscht hat.

Alternativ besteht die Möglichkeit Kanäle (und Gruppen) über die UUID in der URL gezielt aufzurufen. http://https://demo.volkszaehler.org/?uuid=236d6850-1cd0-11e9-b76e-9f6531d1eb3a

Bad Request 400: Property tokens does not exist

Nach Aktualisierung eures Volkszählers durch „git pull“ muss euer Webserver „etc/init.d/apache2 restart“ neu gestartet werden.

Bad Request 400: Could not find driver

Hier fehlt euch der PDO Datenbanktreiber. In der ./etc/config.yaml habt ihr den verwendeten Treiber konfiguriert. Dazu müsst ihr ihn in der php.ini laden:

extension=pdo_mysql.so

Parse error: syntax error, unexpected T_STRING

Fehlermeldung: „Parse error: syntax error, unexpected T_STRING, expecting T_CONSTANT_ENCAPSED_STRING or '(' in <filename>.php on line <line_number>“ Ursache liegt in einer zu alten PHP-Version. Zu prüfen mit dem Befehlt php -v.

Was ist git und wie geht man damit um?!?

Dazu haben wir ein git-HowTo.

Fehlermeldungen / Probleme bei TFTPD

Sollte im TFTPD32 kein Request für eine IP-Adresse ankommen, dann ggf. die Verkabelung vereinfachen um hier Fehlerquellen auszuschliessen. Der sicherste Fall sind feste IP-Adressen und ein Cross-Kabel mit nur 4Adern (10 MBit).

Controller Sourcecode

Wo ist denn der Volkszähler Code im Controller? Im Prinzip nirgends. Es wird je Impuls über den Dienst watchasync ein Aufruf an den eingestellten Server abgesetzt. Der Controller speichert selbst nichts - ggf. können Impulse zusammengefasst werden (was zu einem Auflösungsverlust führt – dafür den Traffic und die SQL Einträge reduziert).

Distribution

Gentoo Linux

Ein paar Hinweise zu Gentoo

- Profile: hardened/linux/x86
- make.conf: USE="logrotate unicode userlocales -X -tcpd"
- package.use: "dev-lang/php apache2 gd mysql pdo"
- "emerge git jpgraph mysql pecl-apc phpmyadmin"

Diverse

Ganz andere Hardware

Wenn man mit einem Arduino-Board Daten eines eHZ auslesen und dazu die SoftwareSerial-Bibliothek verwendet, muss man unbedingt auf mySerial.overflow() prüfen. Sonst kann es passieren, dass unerkannt Bytes „verschluckt“ werden. Die Bibliothek hat nur 64 Byte Puffer, das ist nicht viel - und wenn man die Daten nicht schnell genug abnimmt, sind sie weg.

Helfen?

Wie kann ich das Projekt unterstützen?

Einfach in den Mailinglisten oder bei github melden. Fertigen Code am besten direkt als Pullrequest oder Wikiseite einreichen. Beiträge in Liste und Forum sind für Hilfesuchende aber auch ein Ansatzpunkt.

Ich würde gerne am Wiki mithelfen, habe aber die Berechtigung nicht!

Neue User müssen manuell freigeschalten werden, bitte mit Username oder Emailadresse an einen der Admins wenden. Du kannst gerne auch über Mailingliste oder Forum anfragen.

faq.txt · Zuletzt geändert: 2021/06/20 20:54 von jau