====== Frequently Asked Questions ======
===== Zähler =====
==== Wird mein Zähler denn schon unterstützt? ====
Am Besten wirfst Du einen Blick in die Kategorie [[hardware/channels/meters|Verbrauchsmessgeraete]].
==== Meine Zählerausgabe weicht vom Beispiel im Wiki ab! ====
Energiezähler werden von den Herstellern auf Wunsch der Messstellenbetreiber kundenspezifisch konfiguriert, daher kann es zu unterschiedlichen Ausgaben kommen.
Sieh auch: [[https://wiki.volkszaehler.org/faq#mein_eh-zaehler_gibt_nur_volle_kwh_oder_keine_leistung_aus]]
==== 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 [[software/obis?s[]=d0#easymeter_q3d|so]], [[software/obis?s[]=d0#emh_ehz_fw8e2a500ak1|so]] oder [[software/obis?s[]=d0#hager_ehz|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. [[/hardware/channels/meters/power/edl-ehz/edl21-ehz#rohdaten|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 oder keine Leistung aus ====
Manche Netzbetreiber schränken die Funktion der IR-Schnittstelle an den eHZ ein. Für volle 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. Teilweise muss auch ein Parameter der Art "Info" oder "Inf" aktiviert ("on") werden.
[[https://www.netze-bw.de/zähler/Modernemesseinrichtungen|Netze BW: Bedienungsanleitung Moderne Messeinrichtung]]
==== Mein eH-Zähler gibt keine Leistung aus ====
Selbe Ursache und mögliche Abhilfe wie bei "[[faq#mein_eh-zaehler_gibt_nur_volle_kwh_aus|volle kWh]]".
==== Zählertausch - und nun? ====
Wenn der Messstellenbetreiber die Zähler tauscht beginnt der Zählerstand üblicherweise wieder bei 0. Für Kanäle die keine Aktualwerte darstellen raten wir in dem Fall dazu für den neuen Zähler neue Kanäle im Frontend anzulegen. Möchte man eine durchgehende Auswertung bietet es sich an die neuen und alten Werte über einen virtuellen Kanal zusammen zu fassen.
===== 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:
- - [] "POST /middleware/index.php/data/.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 [[http://de.wikipedia.org/wiki/S0-Schnittstelle|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.) 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.\\
Sind die Kanäle in den Einstellungen als "öffentlich" markiert werden diese in der Liste aufgeführt. Wenn nicht muss man für das neue Abonnement die UUID kennen und eingeben.
Alternativ besteht die Möglichkeit Kanäle (und Gruppen) über die UUID in der URL gezielt aufzurufen. [[https://demo.volkszaehler.org/?uuid=236d6850-1cd0-11e9-b76e-9f6531d1eb3a]]
==== Warum zeigt ein Kanal mit Zählerständen keine stetig aufsteigende Linie? ====
Bei Volkszähler ist die X-Achse stets die Zeit. Daraus folgt für eine mathematisch korrekte Darstellung der y-Achse das aus Zählerständen Leistung wird. [[software:frontends:frontend|Details dazu.]]
==== Warum wird bei mir kein Gesamtzählerstand in der Tabelle angezeigt? ====
Der Initialwert in den Kanaleigschaften muss eingetragen sein und die Daten müssen über einen Datumswechsel reichen. [[software:frontends:frontend#darstellung|Frontend Darstellung]]
==== Wo kann ich Zählerstände zum Monats-/Jahreswechsel ablesen? ====
Falls in einem Kanal Zählerstände geloggt werden kann die Middleware diese aus der Datenbank hervorholen. Z.B. in der Art:
http://demo.volkszaehler.org/middleware.php/data/57acbef0-88a9-11e4-934f-6b0f9ecd95a8.txt?from=31-12-2020 23:59&options=raw
==== 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 .php on line "
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 [[howto/git|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 [[contact#mailing-listen|Mailinglisten]] oder bei [[https://github.com/volkszaehler|github]] melden. Fertigen Code am besten direkt als Pullrequest oder Wikiseite einreichen. Beiträge in Liste und [[https://www.photovoltaikforum.com/board/131-volkszaehler-org/|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 [[contact#mailing-listen|Mailingliste]] oder [[https://www.photovoltaikforum.com/board/131-volkszaehler-org/|Forum]] anfragen.