Hier das neueste Volkszaehler.org Modul für fhem.
Das Reading, welches als state genommen werden soll, kann im define gewählt werden, also:
define <name> VOLKSZAEHLER <ip-address> <port-nr> <channel> <state:last/min/max/average/consumption> <poll-delay>
Beispiele:
#Kanal im Volkszaehler, der den Momentanverbrauch per I/R-Lesekopf ermittelt, alle 60 Sekunden davon der Mittelwert
define Verbrauch_aktuell VOLKSZAEHLER 192.168.178.45 80 635481a0-6fcd-11e2-8587-eda25228f8bf average 60
attr Verbrauch_aktuell delay 60
attr Verbrauch_aktuell group Strom
attr Verbrauch_aktuell room Volkszaehler
#In fhem loggen, um einen Graphen daraus zu zeigen
define FileLog_Verbrauch_aktuell FileLog ./log/Verbrauch_aktuell-%Y-%m.log Verbrauch_aktuell
attr FileLog_Verbrauch_aktuell group Volkszaehler
attr FileLog_Verbrauch_aktuell logtype text
attr FileLog_Verbrauch_aktuell room Z_Log
#der Graph dazu
define FilePlot_Verbrauch_aktuell weblink fileplot FileLog_Verbrauch_aktuell:Volkszaehler:CURRENT
attr FilePlot_Verbrauch_aktuell label "Stromverbrauch: $data{currval1}"
attr FilePlot_Verbrauch_aktuell room Volkszaehler
#Kanal im Volkszaehler, der den Zählerstand per I/R-Lesekopf ermittelt, jede Stunde davon der letzte Wert
define Zaehlerstand VOLKSZAEHLER 192.168.178.45 80 ebb9c9b0-7058-11e2-b5ed-d12ec87a3a7f last 1800
attr Zaehlerstand delay 1800
attr Zaehlerstand group Strom
attr Zaehlerstand room Volkszaehler
#Kanal im Volkszaehler, der den Zählerstand per I/R-Lesekopf ermittelt, alle 24 Stunden davon der Verbrauch
define Verbrauch_24h VOLKSZAEHLER 192.168.178.45 80 635481a0-6fcd-11e2-8587-eda25228f8bf consumption 86400
attr Verbrauch_24h group Strom
attr Verbrauch_24h room Volkszaehler
Die neuesten Versionen befinden sich im GIT: http://GitHub.de/bgewehr/fhem
Das File 23_VOLKSZAEHLER.pm kommt ins Verzeichnis \\fritz.box\FRITZ.NAS\fhem\FHEM
Zusätzlich braucht Ihr JSON for Perl, also cpan JSON eingeben und das Modul installieren.
Als Ergebnis erhält man (z. B.) folgendes:
(siehe Anhang / see attachement)
Hier noch die gplot-Datei für die Diagramme (nur 5 Anlagen zugelassen pro Post!)
Sie muss ins Verzeichnis \\fritz\FRITZ\fhem\www\gplot.
Diese muss noch individuell an das gewählte Reading angepasst werden!
Bitte schaut ab sofort ins fhem-Wiki, dort sind die aktuellen Dinge verlinkt!
http://www.fhemwiki.de/wiki/Volkszaehler (//www.fhemwiki.de/wiki/Volkszaehler)
Hallo
Ich nutze aktuell Dein Volkszähler-Modul im Probebetrieb, um später einmal bedingungsabhängig eine Steckdose zu schalten. Dabei taucht folgendes Problem auf, wenn sich der betreffende Zählerstand nicht verändert hatte, z.B. weil kein Bezug oder keine Lieferung im letzten Intervall erfolgt ist.
Dann liefert die Middlewareabfrage eine leere Rückantwort, z.B.:
{"version":"0.2","data":{"uuid":"<UUID>","from":"1380744043614","to":"1380744643473","average":0,"consumption":0,"rows":3}}
Wenn ich nun bei einem Zähler den "max"-Wert abfrage, ist die Antwort leer. Eigentlich bräuchte man eine numerische Null. Ist es als Abhilfe sinnvoll, in diesem Fall einen Rückgabewerte von Null im Modul zu erzeugen, damit keine leere Rückantwort erfolgt?
Die Rückgabe mit Zählerstandsänderung sieht z.B. so aus:
{"version":"0.2","data":{"uuid":"<UUID>","from":"1380744643473","to":"1380745242341","min":[1380744942402,304.862],"max":[1380744942402,304.862],"average":152.688,"consumption":25.4,"rows":3,"tuples":[[1380744942402,304.862,1]]}}
Ich könnte zwar "consumption" auslesen, da dort immer ein numerischer Wert zurückgegeben wird, hantiere aber bisher lieber mit dem Stundenwert aus "max", anstelle des 5 Minuten-Wertes in "consumption". -- Gerade sehe ich, daß "consumption" auch einen leeren Wert zurückliefert. In den Readings findet man ein Datum, statt der Null.
Readings
AVERAGE 2013-10-02 22:46:22
CONSUMPTION 2013-10-02 22:46:22
FROM 2013-10-02 22:35:40
LAST 1970-01-01 01:00:00
MAX 1970-01-01 01:00:00
MIN 1970-01-01 01:00:00
TO 2013-10-02 22:45:40
Geht also auch nicht. Was läuft da bei mir schief? Könnte es ein Problem bei der JSON-Dekodierung sein?
Viele Grüße
G.
Hallo!
Ich habe die Erfahrung gemacht, dass es sinnvoll ist, die Anzahl der abgefragten Tupel zu erhöhen, um sicherer eine vernünftige Antwort zu bekommen.
Probier das doch bitte zuerst aus!
Gruß Bernd
Hallo Bernd
es scheint eine Besonderheit der Middleware zu sein, keine Tupel auszugeben, wenn sich Zählerstände nicht ändern. Ich habe Deine Zeile im Browser eingegeben und die Anzahl der Tupel stark erhöht. es kommen trotzdem keine anderen Informationen. Ich nutze das z.B. aus, um per periodischem Shell-Script herauszufunden, wann der vzlogger neue Daten einliefert und schicke dann den Zählerstand eines Wechselrichters zeitnah hinterher, um die Zählerstände einigermaßen zu synchronisieren.
Noch ein paar Informationen. Die betreffenden Daten bei mir sind vom Typ "Stromzaehler", d.h. in der mysql-Datenbank stehen die Zählerstände. Der Erfassungszeitraum ist 5 min. Wenn es in dem Zeitraum, der bei Dir als delay definiert ist, keine Änderung gibt, kommen keine Tupel.
Dieses Verhalten der Middleware könnte man jetzt in volkszaehler-dev diskutieren. Möglicherweise ist das kein Bug, sondern ein Feature. was mich nur wundert, daß auch bei den reading "consumption" keine Null übergeben wird, sondern ein Datum drinsteht. Das muß irgendwie in Deinem Modul geschehen.
Soll ich mal eine Anfrage bei volkszaehler-dev initiieren? Vielleicht ist das inzwischen gelöst. Ich habe ein vz-Image auf dem Raspi vom Anfang des Jahres und seitdem nicht aktuallisiert. Soweit läuft es ja. Mit dem git-zeugs kenne ich mich auch nicht aus.
Viele Grüße
G.
Ja, ich denke das ist dort richtig platziert! Man hat vor kurzem so einige Optimierungen an der Middleware diskutiert .. Bin gespannt, wa Du erreichen kannst! Lass Dich von Thorben nicht abschrecken!
Hallo Bernd
Habe vorsichtshalber erstmal die Volkszähler-Scripte auf den aktuellen Stand gebracht. Damit hat sich das Problem der nicht vorhandenen Tupel erledigt. Den aktuellen Stand, z.B. vom Bezug erhält man mit dem Browseraufruf
http://<IP>/middleware.php/data/<Bezug_uuid>.json?from=now&tuples=1
Die Antwort der Middleware ist jetzt
{"version":"0.3","data":{"uuid":"<Bezug_uuid>","from":1381597809000,"to":1381598109000,"min":[1381597809000,567.6],"max":[1381597809000,567.6],"average":567.6,"consumption":47.3,"rows":1,"tuples":[[1381597809000,567.6,1]]}}
Ich habe in meinem Modul mal den Aufruf auf "from=now&tuples=1" geändert. Jetzt steht der letzte 5 min Wert in allen Readings, so wie in der Middleware-Rückgabe im Browser.
Das sollte zumindest für mich jetzt soweit passen.
Viele Grüße
G.
Hy bgwehr
Ich nutzte dein Volkszählermodul nun schon einige Zeit ohne Probleme. Es sind jedoch einige fragen bei mir aufgetaucht.
Ich habe zwei Tarife und möchte den "Verbrauch" einzeln erfassen. Ich lasse jede Stunde einmal den Zählerstand loggen. Ist es möglich daraus die Differenz zu erfassen ?
Alternativ erfasse ich alle 24h den Mittelwert des Verbrauchs
Ist es dort möglich
1. eine genaue Zeit anzugeben wann abgelesen wird und
2. den Verbrauch um den faktor 1000 zu dividieren um daraus die kwh zu ermitteln?
hier mal meine Konfiguration
###############
# Volkszähler #
###############
# Zählerstand NT #
define Tarif_NT VOLKSZAEHLER 192.168.178.26 80 aa22d480-5c40-11e3-981d-d510040c44ac last 1800
attr Tarif_NT delay 1800
attr Tarif_NT room Volkszaehler
define Tarif_WP_1 FileLog ./log/NT-%Y-%m.log Tarif_NT
attr Tarif_WP_1 logtype text
attr Tarif_WP_1 room Log
# Zählerstand HT #
define Tarif_HT VOLKSZAEHLER 192.168.178.26 80 8a044550-5c40-11e3-9614-cdae29693371 last 1800
attr Tarif_HT delay 1800
attr Tarif_HT room Volkszaehler
define WP_2 FileLog ./log/HT-%Y-%m.log Tarif_HT
attr WP_2 logtype text
attr WP_2 room Log
# Aktueller Verbrauch WP #
define Verbrauch_aktuell VOLKSZAEHLER 192.168.178.26 80 94bc6a00-5377-11e3-ab45-33131f4d2469 average 10
attr Verbrauch_aktuell delay 10
attr Verbrauch_aktuell room Volkszaehler
define Strom_WP_3 FileLog ./log/Strom_Cur-%Y-%m.log Verbrauch_aktuell
attr Strom_WP_3 logtype text
attr Strom_WP_3 room Log
define Verbrauch_24h VOLKSZAEHLER 192.168.178.26 80 94bc6a00-5377-11e3-ab45-33131f4d2469 consumption 86400
attr Verbrauch_24h delay 86400
attr Verbrauch_24h room Volkszaehler
define Strom_WP_3_24h FileLog ./log/Strom_24h-%Y-%m.log Verbrauch_24h
attr Strom_WP_3_24h logtype text
attr Strom_WP_3_24h room Log
Hi,
Zitat von: PowderK am 11 Dezember 2013, 10:35:59
.... Ist es möglich daraus die Differenz zu erfassen ?
...
2. den Verbrauch um den faktor 1000 zu dividieren um daraus die kwh zu ermitteln?
Ein Großteil deiner Fragen wird hier beantwortet => http://forum.fhem.de/index.php/topic,16868.0.html (http://forum.fhem.de/index.php/topic,16868.0.html)
Gruß
Thomas
Hallo Forum 8)
ich habe die JSON.pm, 23_VOLKSZAEHLER.pm sowie Convertert.pm und Parser so wie in der Anleitung beschrieben kopiert, aber FHEM liefert nur "Cannot load module VOLKSZAEHLER"
im Log steht immer: Compilation failed in require at ./FHEM/23_VOLKSZAEHLER.pm line 31, <$fh> line 144.
probehalber nach Tip vom bernd im /var/InternerSpeicher/fhem/FHEM darin:
23_VOLKSZAEHLER.pm
JSON.pm
JSON/Converter.pm
JSON/Parser.pm
leider immer der o.a. Fehler. Kann mir jemand helfen ? chown und chmod sind auch so wie die anderen pm Dateien
Hallo Bernd
Nochmal eine Frage. Wenn in der Volkszähler-Datenbank sich die Zählerstände nicht ändern, erhält man mit der Webabfrage
http://192.168.1.200/middleware.php/data/<uuid>.json?from=now&tuples=1
die Antwort
{"version":"0.3","data":{"uuid":"<uuid>","from":1390517166000,"to":1390517286000,"min":[1390517166000,0],"max":[1390517166000,0],"average":0,"consumption":0,"rows":1,"tuples":[[1390517166000,0,1]]}}
.
Dein Modul meldet aber dann keine Null zurück, sondern eine leere Antwort in allen Readings.
Wenn die Zähler sich ändern, werden Werte größer Null korrekt angezeigt.
Woran könnte das liegen?
Viele Grüße
G.
Hallo, Gernott,
dies ist eine Funktion der VZ-Middleware. Bitte stelle die Frage in der Volkszaehler Mailingliste!
Wenn Du was rausfindest, lass es mich bitte wissen.
Danke und Gruß
Bernd
Sent from my iPhone using Tapatalk
@Genott: Benutzt Du die letzte Version aus Github?
Sent from my iPhone using Tapatalk
Zitat von: bgewehr am 24 Januar 2014, 07:08:17
Hallo, Gernott,
dies ist eine Funktion der VZ-Middleware.
Hallo Bernd
Das sollte in Ordnung sein. Als Resultat meiner Browser-Abfrage kommt eine Antwort von der Middleware, in der die Nullen stehen.
{
"version": "0.3",
"data": {
"uuid": "<uuid>",
"from": 1390599006000,
"to": 1390599125000,
"min": [1390599006000,
0],
"max": [1390599006000,
0],
"average": 0,
"consumption": 0,
"rows": 1,
"tuples": [[1390599006000,
0,
1]]
}
}
Sie werden nur nicht gelesen, warum auch immer. Was müßte ich denn einstellen, um zum debugging die komplette Response der Middleware in fhem angezeigt zu bekommen? Nicht, daß fhem die Nullen verschluckt und dann ein leeres Feld zurückgibt.
Das ist übrigens eine Response mit Werten >0, die seltsamerweise korrekt gelesen werden:
{
"version": "0.3",
"data": {
"uuid": "<uuid>",
"from": 1390599006000,
"to": 1390599125000,
"min": [1390599006000,
381.176],
"max": [1390599006000,
381.176],
"average": 381.176,
"consumption": 12.6,
"rows": 1,
"tuples": [[1390599006000,
381.176,
1]]
}
}
Meine Version enspricht Deiner Github-Version. ich hatte nur mal den Abfragestring geändert (auf "from=now", siehe letztes Post und die Response dazu).
Gruß
G.
Ich habe es immer so gesehen:
Da der Volkszaehler in bestimmten Intervallen abgefragt wird, ist entweder der Maxwert oder der Mittelwert des Abfrageintervalls der beste Wert für fhem. From now kann man nicht viel erwarten, wenn die Daten vom Sensor nicht kontinuierlich geliefert werden. Also vielleicht wieder zurück auf meine Abfrage und ein längeres Intervall und Max als Reading auswählen?
Sent from my iPhone using Tapatalk
Hallo Bernd
Du brauchst ja meine Abfrage nur mal mit einer IP und uuid von Dir in der Browserzeile einzugeben. Wenn Du "from now" und "tuples=1" anhängst, bekommst Du das aktuellste Tupel mit den Werten (siehe mein Post oben).
Die Frage ist, warum Werte von Null nicht übergeben werden, obwohl sie vom Volkszähler in der Response zurückgeliefert werden. Könntest Du mir dabei helfen?
Mal der Versuch einer Eingrenzung:
Wenn ich die Zeile
my $max = $decoded->{data}->{max}[1]||"";
in diese ändere
my $max = $decoded->{data}->{max}[1]||0;
erscheint korrekt eine Null in den readings. Also steht im Feld {max}[1] von $decoded nichts drin. Ich bin mit Perl nicht gerade fit. Wie kann ich denn eine debug-Ausgabe erzeugen. Du hast ja schon eine print-Anweisung drin. Wo erscheint denn diese Ausgabe, wenn das Modul aufgerufen wird?
Gruß
G.
Debugging geht per Telnet auf die Fritzbox, dort siehst Du den stdout auf der console. Telnet muss man vorher einschalten per dtmf code. Dann den Print aktivieren, dann kannst Du zusehen...
Sent from my iPhone using Tapatalk
Jetzt habe ich einige Stunden herumprobiert und das Problem der verschluckten Null gefunden. Es ist das logische ODER in Deinen Variablenzuweisungen.
Wenn in einem Array-Element die dort stehende 0 (Null) zurückgegeben wird, und danach kommt im Code das ||"", wird statt der Null der leere Wert "" zurückgeliefert.
Wie gesagt, mit dem Volkszähler war alles in bester Ordnung.
Gruß
G.
Interessant! Ich habe immer angenommen, dass diese || nur greifen, wenn KEIN Wert erhalten wird. Danke für die Analyse und die Lösung. Machst Du in Github ein pull request?
Sent from my iPhone using Tapatalk
Zitat von: bgewehr am 25 Januar 2014, 17:01:38
Danke für die Analyse und die Lösung. Machst Du in Github ein pull request?
Keine Ursache. Das Github überfordert meine momentanen Fähigkeiten. Weiß nicht, wie das geht und habe auch keinen Account dort.
OK, macht nichts! Ich ändere dann einfach selbst. Schickst Du mir Deine Version zu?
Sent from my iPhone using Tapatalk
Hallo Bernd
Ich habe nur hinten jeweils das ODER weggenommen. Hier der Code aus diesem Bereich:
my $min = $decoded->{data}->{min}[1];
my $min_at = $decoded->{data}->{min}[0]||0;
$min_at = localtime($min_at/1000);
my $max = $decoded->{data}->{max}[1];
my $max_at = $decoded->{data}->{max}[0]||0;
$max_at = localtime($max_at/1000);
my $average = $decoded->{data}->{average};
my $consumption = $decoded->{data}->{consumption};
my $from = $decoded->{data}->{from}||0;
$from = localtime($from/1000);
my $to = $decoded->{data}->{to}||0;
$to = localtime($to/1000);
my $last = $decoded->{data}->{tuples}[0][1];
my $last_at = $decoded->{data}->{tuples}[0][0]||0;
$last_at = localtime($last_at/1000);
my $state=$last||"";
Eventuell kann man das bei den Zeitstempeln auch machen. Das Abfangen einer leeren Rückantwort des Volkszählers müßte man aber irgendwie noch lösen. Von daher ist das nicht wirklich fertig.
Meine Abfrage URL ist etwas vereinfacht (siehe etliche Posts weiter oben), was aber nicht im Sinne des Moduls ist. Von daher ist nicht meine komplette Datei angehängt.
Noch eine Frage. Warum übergibst Du die Werte "from" und "to" nicht als VAL an fhem, obwohl Du sie berechnest?
my $sensor5="FROM";
$hash->{READINGS}{$sensor5}{TIME} = $from->strftime('%Y-%m-%d %H:%M:%S');
$hash->{READINGS}{$sensor5}{VAL} = "";
my $sensor6="TO";
$hash->{READINGS}{$sensor6}{TIME} = $to->strftime('%Y-%m-%d %H:%M:%S');
$hash->{READINGS}{$sensor6}{VAL} = "";
Mir ist die Konvertierung in einen Zeitstempel nicht ganz schlüssig. Müßten nicht bei allen Readings dieselben Zeitstempel stehen wenn ihre Werte aus demselben Aufruf stammen?
Gruß
G.
Hallo,
versuche eben das volkszaehlermodul in meinem FHEM zu installieren.
bereits das erste Kommando :
define <name> VOLKSZAEHLER <ip-address> <port-nr> ..............
gibt den Fehler zurück :
Cannot load module VOLKSZAEHLER
Das Modul ist aber vorhanden in Raspi :
/root/opt/fhem/FHEM/23_VOLKSZAEHLER.pm
wo liegt der Fehler ?
Gruß Peter
Der Vollständigkeit halber: der Fehler lag an der fehlenden Installation von JSON.pm und dem JSON Ordner...
Gesendet von meinem iPad mit Tapatalk
Moin.
Ich habe in der letzten Woche auch das Modul installiert und es funktioniert gut.
Nun habe ich es erweitert, um am Ende das Tages den Verbrauch der letzten 24 Stunden zu speichern. Dazu lese ich mit einen ReadingsVal den State von Verbrauch_24h und schreibe diese in ein Logfile. Leider steht hier nun der Wert 0 drin. Habe ich etwas übersehen?
Schöne Grüße
Frank
## Berechnung Tageswert
define Strom_lastTag_log dummy
attr Strom_lastTag_log room Volkszaehler
define Berechnung_Tageswerte_Energie at *23:59:00 {\
my $sld = ReadingsVal("Verbrauch_24h","STATE",0);;\
fhem("set Strom_lastTag_log $sld ");; \
}
attr Berechnung_Tageswerte_Energie room Volkszaehler
define FileLog_Strom_lastTag FileLog ./log/Strom_lastTag-%Y.log Strom_lastTag_log
attr FileLog_Strom_lastTag logtype text
attr FileLog_Strom_lastTag room Volkszaehler
Hi, das mit den fhem perl scripten ist nicht so meine Baustelle.
Stell die Frage lieber in den Anfängerfragen, da wird mir auch immer geholfen... 8)
Zitat von: Frank S. am 15 Juni 2014, 17:10:48
Moin.
define Berechnung_Tageswerte_Energie at *23:59:00 {\
my $sld = ReadingsVal("Verbrauch_24h","STATE",0);;\
fhem("set Strom_lastTag_log $sld ");; \
}
attr Berechnung_Tageswerte_Energie room Volkszaehler
Ich würde vielleicht nicht den state nehmen, der ist ja mit dem Textzusatz c: verseucht. Nimm doch lieber das Consumption Reading direkt...
Moin.
Danke für den Tipp. Ich habe nun den Wert "CONSUMPTION" angefragt, und es hat funktioniert.
## Berechnung Tageswert
define Strom_lastTag_log dummy
attr Strom_lastTag_log room Volkszaehler
define Berechnung_Tageswerte_Energie at *23:59:00 {\
my $sld = ReadingsVal("Verbrauch_24h","CONSUMPTION",0);;\
fhem("set Strom_lastTag_log $sld ");; \
}
attr Berechnung_Tageswerte_Energie room Volkszaehler
Schöne Grüße
Frank
Moin.
Nach dem mein LogFile nun einige Zeit läuft, ist mir aufgefallen, dass der Wert CONSUMPTION nur einmal am Tag aktualisiert wird. Und zwar immer zu der Zeit, an dem der Server gestartet wurde. Dadruch kann es zur verfälschten Werten kommen. Wie bekommt man es hin, dass der Wert CONSUMPTION immer kurz vorher aktualisiert wird, wenn ich den Wert um Mitternacht abspeichere?
z.B. define at?
Schöne Grüße
Frank S.
Ich hab's so gemacht:
define Verbrauch_24h VOLKSZAEHLER 192.168.178.45 80 635481a0-6fcd-11e2-8587-eda252xxxxc consumption 86400
attr Verbrauch_24h group Strom
attr Verbrauch_24h room Volkszaehler
Das gibt immer wenn es aktualisiert wird den 24h Verbrauch. Ich weiß, dass das 24h nach dem Start von fhem sein wird und nicht an einer bestimmten Uhrzeit, aber das war mir egal.
Sent from my iPhone using Tapatalk
Ohne Veränderung des Modulcodes fällt mir kein Weg ein, um das genau um 23:59 zu machen, aber mal ehrlich, ist doch egal, der Verbrauch der letzten 24h ist doch OK, auch wenn er zufällig von 16:00 bis 16:00 geht, finde ich jedenfalls.
Sent from my iPhone using Tapatalk
Moin.
Ok, stimmt, es ist wirklich nicht wichtig.
Mal eine andere Frage. Kann ich meine Gas- und Wasserzähler auch auf diesem Weg einbinden? Muss ich nur die UUID ändern?
Schöne Grüße
Frank S.
Genau! Andere UID = anderer VZ-Kanal!
Sent from my iPhone using Tapatalk
Moin.
Ich habe seit einiger Zeit alle 2 Minuten Fehlermeldungen im Logfile vom Volkszaehler-Modul.
2014.08.28 20:21:36 2: VOLKSZAEHLER Can't get http://192.168.178.37:80/middleware.php/data/b755cfb0-1bb2-11e4-a3f9-e933ef90d940.json?from=120%20seconds%20ago&tuples=4 -- 404 Not Found
Diese Id habe ich aber nicht definiert, sonder 10b8ac80-27b3-11e4-9bd3-61c30b220800. Von dieser ID werden die Daten auch ohne Probleme gelesen. Wo raus kann die Fehlermeldung resultieren?
Meinde Konfiguration schaut wie folgt aus.
#Kanal im Volkszaehler, der den Momentanverbrauch per I/R-Lesekopf ermittelt, alle 120 Sekunden davon der Mittelwert
define Verbrauch_aktuell VOLKSZAEHLER 192.168.178.37 80 10b8ac80-27b3-11e4-9bd3-61c30b220800 average 120
attr Verbrauch_aktuell delay 120
attr Verbrauch_aktuell group Strom
attr Verbrauch_aktuell room Volkszaehler
#In fhem loggen, um einen Graphen daraus zu zeigen
define FileLog_Verbrauch_aktuell FileLog ./log/Verbrauch_aktuell-%Y-%m.log Verbrauch_aktuell
attr FileLog_Verbrauch_aktuell group Volkszaehler
attr FileLog_Verbrauch_aktuell logtype text
attr FileLog_Verbrauch_aktuell room Volkszaehler
#der Graph dazu
define FilePlot_Verbrauch_aktuell weblink fileplot FileLog_Verbrauch_aktuell:Volkszaehler:CURRENT
attr FilePlot_Verbrauch_aktuell label "Stromverbrauch: $data{currval1}"
attr FilePlot_Verbrauch_aktuell room Volkszaehler
#Kanal im Volkszaehler, der den Zählerstand per I/R-Lesekopf ermittelt, alle 24 Stunden davon der Verbrauch
define Verbrauch_24h VOLKSZAEHLER 192.168.178.37 80 10b8ac80-27b3-11e4-9bd3-61c30b220800 consumption 86400
attr Verbrauch_24h group Strom
attr Verbrauch_24h room Volkszaehler
## Berechnung Tageswert
define Strom_lastTag_log dummy
attr Strom_lastTag_log room Volkszaehler
define Berechnung_Tageswerte_Energie at *23:59:00 {\
my $sld = ReadingsVal("Verbrauch_24h","CONSUMPTION",0);;\
fhem("set Strom_lastTag_log $sld ");; \
}
attr Berechnung_Tageswerte_Energie room Volkszaehler
define FileLog_Strom_lastTag FileLog ./log/Strom_lastTag-%Y.log Strom_lastTag_log
attr FileLog_Strom_lastTag logtype text
attr FileLog_Strom_lastTag room Volkszaehler
Schöne Grüße
Fank
Also ich sehe die als Fehler gemeldete UNID auch nicht in dem Ausschnitt der Config. Bitte sieh mal die gesamte fhem.cfg durch, das Modul macht von selbst keine Anfragen an die Middleware...
Sent from my iPhone using Tapatalk
Moin.
Danke für den Tipp. Ich habe noch mal alle cfg-Dateien durchgesehn, aber keine weiteren Einträge zum Volkszähler gefunden.
Schöne Grüße
Frank
Hallo,
habe das Volkszähler Modul auf FRitzbox installiert und bekomme die Fehlermeldung:
Cannot load module VOLKSZAEHLER
Im Logfile sieht das so aus:
2014.09.06 18:36:34 1: reload: Error:Modul 23_VOLKSZAEHLER deactivated:
Can't locate JSON/backportPP.pm in @INC (@INC contains: /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2 /var/InternerSpeicher/fhem/lib/perl5/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/5.12.2 /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/mips-linux/JSON /opt/lib/perl5/site_perl/5.12.2/mips-linux /opt/lib/perl5/site_perl/5.12.2 /opt/lib/perl5/5.12.2/mips-linux /opt/lib/perl5/5.12.2 . ./FHEM) at (eval 18) line 2, <$fh> line 455.
at ./FHEM/23_VOLKSZAEHLER.pm line 30
Compilation failed in require at ./FHEM/23_VOLKSZAEHLER.pm line 30, <$fh> line 455.
BEGIN failed--compilation aborted at ./FHEM/23_VOLKSZAEHLER.pm line 30, <$fh> line 455.
Aber die JSON.pm ist da:
# pwd
/var/media/ftp/fhem/lib/perl5/site_perl/5.12.2/mips-linux
# ls -l
drwxrwxr-x 1 501 20 2048 Apr 17 2013 Attribute
drwxrwxr-x 1 501 20 2048 Apr 17 2013 DateTime
-rw-rw-r-- 1 501 20 116385 Apr 25 2012 DateTime.pm
-rw-rw-r-- 1 501 20 5282 Apr 25 2012 DateTimePP.pm
-rw-rw-r-- 1 501 20 1402 Apr 25 2012 DateTimePPExtra.pm
drwxrwxr-x 1 501 20 2048 Apr 17 2013 Device
drwxrwxr-x 1 501 20 2048 Apr 17 2013 HTML
drwxr-xr-x 1 501 20 2048 Sep 6 17:15 JSON
-rwxrwxr-x 1 501 20 64970 Sep 6 18:35 JSON.pm
drwxrwxr-x 1 501 20 2048 Apr 17 2013 List
drwxrwxr-x 1 501 20 2048 Apr 17 2013 Net
drwxrwxr-x 1 501 20 2048 Apr 17 2013 Params
-rw-rw-r-- 1 501 20 9804 Apr 25 2012 Socket6.pm
drwxrwxr-x 1 501 20 2048 Apr 17 2013 auto
und das Verzeichnis JSON ist auch da:
# pwd
/var/media/ftp/fhem/lib/perl5/site_perl/5.12.2/mips-linux/JSON
# ls -l
-rw-r--r-- 1 501 20 513615 Sep 6 18:33 Converter.pm
-rw-r--r-- 1 501 20 828279 Sep 6 17:14 Parser.pm
#
Leg bitte die JSON Files mal einfach ins fhem/FHEM Verzeichnis ab, das hat schon häufiger geholfen!
Danke für den Tip, hat aber leider nichts geändert :-[
es wird ja auch eine JSON/backportPP.pm gesucht und nicht gefunden. Wo hast Du die JSON Files her?
Gesendet von meinem iPad mit Tapatalk
Hallo,
ich hatte die JSON Files von http://cpansearch.perl.org/src/MAKAMAKA/JSON-1.15/lib/JSON/
allerdings nur Converter.pm und Parse.pm
jetzt habe ich die anderen drei noch dazu geladen und siehe da: es funktioniert
DANKE für die Hilfe!
Moin.
Ich habe seit einiger Zeit Meldungen vom Volkszaehler im Logfile, die ich nicht erklären kann.
'jsonToObj' will be obsoleted. Please use 'from_json' instead. at ./FHEM/23_VOLKSZAEHLER.pm line 110
Gibt es dort eine Erklärung?
Schöne Grüße
Frank
Die JSON.pm ist alt und die von mir verwendete Funktion jsonToObj wurde umbenannt. Solange Du kein Update der JSON Files machst, läuft das wie gewohnt weiter, denke ich!
Sent from my iPhone using Tapatalk
Moin.
Danke für die Info.
Ich mir den aktuellen Dateien (JSON.pm, converter.pm und parser.pm) von guthub noch mal geholt. Nun bekomme bekomme ich die Fehlermeldung "Cannot load module VOLKSZAEHLER"
Anscheinend nach ist da etwas schief gelaufen.
Schne Grüße
Frank
Sieh mal den Thread etwas weiter oben, da ist eine ähnliche Thematik aufgetreten und gelöst worden!
Gesendet von meinem iPad mit Tapatalk
Moin.
Ich habe es noch einmal wie oben versucht, bekomme aber weiterhin die Fehlermeldung, dass das Modul nicht geladen werden kann. Im Logfile habe ich folgende Einträge.
2014.10.09 19:31:18 1: reload: Error:Modul 23_VOLKSZAEHLER deactivated:
Unrecognized character \xC2; marked by <-- HERE after wehr/fhem <-- HERE near column 62 at ./FHEM/23_VOLKSZAEHLER.pm line 13, <> line 2.
2014.10.09 19:31:18 0: Unrecognized character \xC2; marked by <-- HERE after wehr/fhem <-- HERE near column 62 at ./FHEM/23_VOLKSZAEHLER.pm line 13, <> line 2.
2014.10.09 19:31:18 3: Please define Verbrauch_aktuell first
2014.10.09 19:31:18 3: Please define Verbrauch_aktuell first
2014.10.09 19:31:18 3: Please define Verbrauch_aktuell first
2014.10.09 19:31:18 1: reload: Error:Modul 23_VOLKSZAEHLER deactivated:
Unrecognized character \xC2; marked by <-- HERE after wehr/fhem <-- HERE near column 62 at ./FHEM/23_VOLKSZAEHLER.pm line 13, <> line 19.
2014.10.09 19:31:18 0: Unrecognized character \xC2; marked by <-- HERE after wehr/fhem <-- HERE near column 62 at ./FHEM/23_VOLKSZAEHLER.pm line 13, <> line 19.
2014.10.09 19:31:18 3: Please define Verbrauch_24h first
2014.10.09 19:31:18 3: Please define Verbrauch_24h first
2014.10.09 19:31:18 3: Please define Verbrauch_24h first
2014.10.09 19:31:18 1: Including ./FHEM/Anwesenheit.cfg
2014.10.09 19:31:19 1: Including ./FHEM/FHEM_Verbindung.cfg
2014.10.09 19:31:19 1: Including ./log/fhem.save
2014.10.09 19:31:21 1: configfile: Cannot load module VOLKSZAEHLER
Please define Verbrauch_aktuell first
Please define Verbrauch_aktuell first
Please define Verbrauch_aktuell first
Cannot load module VOLKSZAEHLER
Please define Verbrauch_24h first
Please define Verbrauch_24h first
Please define Verbrauch_24h first
Die aktuellen Dateien habe ich von github geholt und wie beschrieben im Ordner FHEM abgelegt.
Als zusätzliche Information, ich betreibe FHEM auf einem Raspberry pi.
Schöne Grüße
Frank
Wie lädst Du die Dateien runter? Mit GIT clone?
Sent from my iPhone using Tapatalk
wehr/FHEM ist nämlich Teil der Github URL und kommt in meinem Script nicht vor... Also vermute ich einen Download Fehler!
Sent from my iPhone using Tapatalk
Moin.
Danke für die Info und die Hilfe.
So häufig arbeite ich nicht mit github und habe dort wohl einen Fehler gemacht. Ich habe diese Seite (https://github.com/bgewehr/fhem) aus dem Wiki aufgerufen und die Dateien mit "Ziel speichern unter" gespeichert. Diese habe ich dann in FHEM gespeichert.
Nun habe ich die Dateiein aus dem Anfang dieses Threads genommen und siehe da, es funktioniert wieder.
Schöne Grüße
Frank
Mal zum testen: geh mal in das Pi Userhome. Dann gib "sudo git clone https://www.github.com/bgewehr/fhem vzfhem" ein.
Das erstellt eine Kopie des Git im neuen Ordner vzfhem. Darin sind dann die aktuellen Dateien!
Wenn Du diese Kopie aktualisieren möchtest, dann gehst Du wieder in den Ordner und gibst nur "sudo git pull" ein
Sent from my iPhone using Tapatalk
Moin.
Danke für die Anleitung. Ich habe es gerade probiert und es funktioniert.
Schöne Grüße
Frank
Prima...
Sent from my iPhone using Tapatalk
Hallo Zusammen,
Ich habe den Volkszähler auf einem raspberry laufen und dieser fängt ab und zu schon mal an zu chillen.
Der Sensor liefert weiter Daten, dieser werden aber nicht weiter verarbeitet, das Ganze kommt und Geht.
Hat hier jemand Software schon mal gesehen und hat vielleicht sogar eine Abhilfe?
Herzliche Grüße aus der Eifel
Nein, tut mir leid, frag lieber die Mailingliste auf Volkszaehler.org
Sent from my iPhone using Tapatalk
Zitat von: bgewehr am 19 Juni 2014, 18:44:34
define Verbrauch_24h VOLKSZAEHLER 192.168.178.45 80 635481a0-6fcd-11e2-8587-eda252xxxxc consumption 86400
Hallo zusammen,
ich habe einen Iskra MT681 Zähler zu Hause und weis leider nicht wie ich den channel von meinen Zähler erfahren kann um ihn aus zu lesen.
Ich hoffe ihr könnt mir vielleicht weiter helfen.
Hallo! Schau im Webinterface von Volkszaehler in die channel-list, dort hat jeder Channel ein (i). Klick drauf und Du bekommst die UID angezeigt. Wenn Dein Zähler hier noch nicht auftaucht, dann wende Dich bitte an die Mailing-List von Volkszaehler.org Gruß, Bernd
Gesendet von meinem iPad mit Tapatalk
Hallo,
ich habe nun auch vzlogger und das Volkszähler-Modul im Einsatz. Allerdings werden die Zählerstände nicht richtig dargestellt, kennt jemand das Problem? In der DB vom vzlogger kommen die Werte richtig an, siehe Bildschirmfoto von der MySQL-DB: drei Zählerstände mit korrekten Werten vom Typ "electric meter".
In meiner FHEM-Config habe ich die richtigen UUIDs eingetragen und frage den letzten Wert ab:
define Zaehlerstand_WP VOLKSZAEHLER 192.168.18.90 80 6fdf0aa0-9771-11e4-8a2f-1d45fd8b3483 last 1800
Statt dem Wert "7827718.8" wie er in der DB steht bekomme ich aber irgendeinen anderen Wert, siehe Bildschirmfoto von FHEM.
Gruß,
Sascha
Hallo!
Das fhem-vz-Modul befragt nicht die Datenbank, sondern die vz-Middleware, da diese sich um die Berechnung von Verbrauch usw. kümmert. Wenn die Eigenschaften Deines Kanals im vz nicht korrekt sind, wird auch bei fhem nicht das Richtige ankommen! Mach doch bitte mal einen Screenshot vom Volkszähler Web-Interface, dann können wir das besser prüfen! Wenn dort die gleichen falschen Werte stehen, dann musst Du die Kanaleigenschaften bearbeiten! Falls Du nicht weißt, wie das geht -> vz-Mailingliste!
Gruß, Bernd
Hallo Bernd,
vielen Dank für die Info. Ja, ich hab wohl im Frontend vom Volkszähler ein Problem. Hab hier mal zwei Screenshots angefügt, der eine zeigt die Graphen, der andere die Config von einem Zählerstand-Channel. Eine Kurve vom Zählerstand brauch ich ja gar nicht, aber den aktuellen Wert hätte ich gern. Es sieht so aus, als müsste ich den Initialverbrauch-Wert ändern, bin mir aber nicht sicher, was ich hier eintragen soll.
Danke,
Sascha
Ich glaube, dass steps für absolute Kanäle falsch war, Probier bitte mal die Alternativen aus. du willst ja nicht aktuellen Verbrauch sondern Zählerstand ermitteln...
Gesendet von iPhone mit Tapatalk
Hallo,
1. Man kann den lokalen HTTP-Daemon von vzlogger über die vzlogger.conf nutzen und damit die Daten des Stromzählers (egal ob D0, SML ...) ausgeben. Dies kann parallel zur Übergabe der Daten an die Middleware stattfinden.
2. Mit api=NULL kann komplett auf das Senden zur Middleware verzichtet werden. (Bei mir hat das ständig zu Abstürzen vom Raspi geführt.) Zur Visualisierung kann man ja FHEM verwenden.
Mein Clone vom Git repository habe ich gelöscht. Zum Auslesen von vzlogger gibt es nun ein eigenes Modul VZLOGGER (http://forum.fhem.de/index.php/topic,40766.0.html) .
Probiert es mal aus.
Gruß
Karlheinz
Zitat von: Peter aus Calw am 09 Mai 2014, 16:53:48
Hallo,
versuche eben das volkszaehlermodul in meinem FHEM zu installieren.
bereits das erste Kommando :
define <name> VOLKSZAEHLER <ip-address> <port-nr> ..............
gibt den Fehler zurück :
Cannot load module VOLKSZAEHLER
Das Modul ist aber vorhanden in Raspi :
/root/opt/fhem/FHEM/23_VOLKSZAEHLER.pm
wo liegt der Fehler ?
Gruß Peter
Ich habe das gleiche Problem. Da es mittlerweile gelöst scheint, wäre es schön wenn mir jemand helfen könnte, danke.
Wahrscheinlich fehlt das JSON Perl Modul. Mach cpan JSON und installiere Dir das Modul!
Zitat von: bgewehr am 08 März 2015, 17:51:32
Wahrscheinlich fehlt das JSON Perl Modul. Mach cpan JSON und installiere Dir das Modul!
Das habe ich natürlich getan und nach deinem Posting sicherheitshalber nochmal, aber es ändert nichts.
Ich habe deine Dateien auch nach Anweisung kopiert und nutze per copy&paste deine Beispiele mit meiner IP und eigener UUID.
Das ist die Fehlermeldung "Cannot load module VOLKSZAEHLER"
FHEM neu gestartet nach dem einfügen von dem Modul? Oder alternativ
reload 23_VOLKSZAEHLER
Gemacht?
Grüße Marius
Gesendet von iPhone mit Tapatalk
Ich glaube eher, dass eine fehlerhafte Modulinstallation der Grund ist. Welche Beschreibung zur Installation hast Du verwendet und welche Versionen der Dateien hast Du genommen? Mein Tip: alles aus dem Wiki, nichts aus dem Forum!
Zitat von: bgewehr am 09 März 2015, 06:59:12
Ich glaube eher, dass eine fehlerhafte Modulinstallation der Grund ist. Welche Beschreibung zur Installation hast Du verwendet und welche Versionen der Dateien hast Du genommen? Mein Tip: alles aus dem Wiki, nichts aus dem Forum!
@Marius: Ja ich habe das raspberry rebootet.
Ich habe mich komplett an dein Wiki gehalten. Hatte mich vorher im Forum gar nicht danach umgesehen. Btw: Danke, das du das entwickelt hast.
Habe die beiden Dateien aus dem Github heruntergeladen und in die entsprechenden Ordner gelegt. Hab sie nicht aufgemacht, sondern nur mit winscp kopiert. Das cpan JSON habe ich direkt im root gemacht. Ist es evtl. Verzeichnisabhängig?
Unter welchem User läuft Dein Fhem?
Zitat von: bgewehr am 09 März 2015, 14:03:41
Unter welchem User läuft Dein Fhem?
Ich denke standard pi. Leider bin ich mir hier nicht so sicher, da Linux für mich ziemlich neu ist. Letztlich boote ich das Teil und Fhem startet automatisch.
Zitat von: bgewehr am 09 März 2015, 14:03:41
Unter welchem User läuft Dein Fhem?
Hi, ich bin habe den ganzen Bootprozess mal mit angeschlossenem Display abgewartet und das Modul startet wohl nicht, weil es ein paar Fehler auswirft.
Ich gehe davon aus, das ich bei der Installation irgendwas falsch mache, denn es ist ja sonst überall lauffähig.
die Fehlermeldungen
"Bareword found where operator at ./FHEM/23_VOLKSZAEHLER.pm line 5 near ""en" class (Missing operator before class?)
"Bareword found where operator at ./FHEM/23_VOLKSZAEHLER.pm line 12 near "<title>fhem" (Missing operator before fhem?)
Having no space between pattern and following Word is deprecated at ./FHEM/23_VOLKSZAEHLER.pm line 12 <$fh> line 61
Hallo zusammen,
auch auf die Gefahr hin diesen Thread zu kapern stelle ich meine Frage hier ein, da ich denke sie passt.
Bei mir läuft Fhem seit einiger Zeit zu meiner Zufriedenheit auf einem OpenWrt Router. Nun habe ich versucht das Volkszähler Modul ans laufen zu bekommen und erhalte folgende Fehlermeldung: "Can't locate object method "export_to_level" via package "JSON" at /mnt/sda1/fhem/fhem-5.6/contrib/YAF/FHEM/YAF/libs/json/JSON.pm line 112". PERL5LIB ist m.E. korrekt gesetzt, Exporter.pm ist im Pfad vorhanden. Auf meinem Linux PC (Kubuntu) läuft die gleiche Fhem installation mit dem Volkszähler Modul einwandfrei. Ein Unterschied zwischen beiden Systemen liegt in der Perl Version: Kubuntu 5.18.2, OpenWrt 5.20.0.
Kann mir hier jemand weiterhelfen?
Gruß
Thomas
Zitat von: Jaykay187
"Bareword found where operator at ./FHEM/23_VOLKSZAEHLER.pm line 5 near ""en" class (Missing operator before class?)
"Bareword found where operator at ./FHEM/23_VOLKSZAEHLER.pm line 12 near "<title>fhem" (Missing operator before fhem?)
Having no space between pattern and following Word is deprecated at ./FHEM/23_VOLKSZAEHLER.pm line 12 <$fh> line 61
Du hast eine HTML Datei aus github heruntergeladen und nicht das Modul selbst... Rechte Maustaste speichern unter geht nicht du musst auf RAW umschalten bevor du sie downloaden kannst oder alternativ rechts auf der Seite das repo als zip downloaden...
Grüße Marius
Gesendet von iPhone mit Tapatalk
Zitat von: corny456 am 10 März 2015, 23:30:47
Du hast eine HTML Datei aus github heruntergeladen und nicht das Modul selbst... Rechte Maustaste speichern unter geht nicht du musst auf RAW umschalten bevor du sie downloaden kannst oder alternativ rechts auf der Seite das repo als zip downloaden...
Grüße Marius
Gesendet von iPhone mit Tapatalk
Hallo Marius, vielen Dank. Nun läuft die Abfrage. Das ZIP habe ich gar nicht gesehen:)
Vielen Dank
Jürgen
Hallo zusammen,
nutze auch dieses Modul. Leider wird mir im Attribut last immer der aktuelle Verbrauch angezeigt.
Folgendes hab ich definiert:
define Verbrauch_aktuell VOLKSZAEHLER IP 80 UUID average 90
attr Verbrauch_aktuell delay 90
attr Verbrauch_aktuell group Strom
attr Verbrauch_aktuell room Volkszaehler
define FileLog_Verbrauch_aktuell FileLog ./log/Verbrauch_aktuell-%Y-%m.log Verbrauch_aktuell
attr FileLog_Verbrauch_aktuell logtype text
Habe das Intervall auch schon hochgesetzt, aber kein Erfolg, last hat immer den Wert wie average (s. angehängten screenshot).
Normalerweise sollte doch der vorherige Wert ausgegeben werden, oder sehe ich das falsch?
Danke & Gruß,
Tobi
keiner der hier einen Tipp für mich hat?
Ich würde gerne die Differenz zwischen dem aktuellen und dem zuletzt ermitteltem Wert errechnen, um Muster zu erkennen und bspw. einen notify auszulösen.
Gruß,
Tobi
Update:
ok. Nachdem ich die Doku noch mal gelesen habe, scheint es ja zu sein, dass ich die Attribute falsch verstanden habe. Insofern wäre das so gar nicht vorgesehen.
Werde mir das ganze dann noch mal genau anschauen und mal gucken ob ich dafür eine Lösung finde.
Hallo zusammen,
hat einer von euch das aktuelle modul für fhem und den volkszaehler selbst auf einem raspberry laufen?
Ich habe bisher einen RPi für fhem und einen für den VZ, der VZ RPi stürzt aber in regelmäßigen Abständen ab.
Nun würde ich gerne einen RPi2 verwenden und alles auf einen installieren, habe aber etwas Angst, was die Abstürze/Performance angeht.
Was sind da eure Erfahrungen? Dadurch, dass die Daten über FHEM abgerufen und gespeichert werden, bräcuhte man die SQL DB für VZ ja auch nicht unbedingt.
Gruß & ein schönes Wochenende,
Tobi
Mein Volkszaehler läuft jetzt viele Monate stabil durch. Mal das aktuelle Image aus dem Wiki als Ausgangsbasis versucht?
Also wenn Du mit Fhem die Zähler lesen möchtest, dann ist ja auch kein Vz-Modul erforderlich, oder sehe ich das falsch?
Ich finde es an sich schon klasse, mit Volkszaehler einen generischen Datenlogger zu haben, in den ich alle Sensordaten reinspeichern kann, die ich irgendwo erhebe.
Die VZ Middleware kann daraus Verbrauchswerte integrieren, schnelle aggregierte Monats- und Jahrescharts liefern und eine sehr feine Auflösung live plotten. Wenn Du all das nicht brauchst, würde ich auf Volkszaehler auch verzichten und nur Fhem nehmen...
Danke für deine Antwort. Evtl. liegt es dann an meinem RPi, ist der 1er auf dem VZ lief.
Der ist mir regelmäßig (so alle 4-6 Wochen) abgeschmiert.
Klar sind die Auswertungen über vzlogger noch etwas schöner, aber eigtl. brauchen tue ich nur den Zählerstand und die aktuellen Verbrauchswerte.
Einen Wert zum Monatsende und das wars eigtl. Sofern ich das richtig gelesen habe, könnte ich auch über das SML Modul gehen, aber auch da gab es scheinbar Performance Probleme mit. Oder was meintest Du genau?
Gruß,
Tobi
Such mal auf github, da gab es jemanden, der mein Modul geforkt hat und direkt an den VZLogger geht, das spart frontend und Middleware von Volkszaehler.
Mein VZ ist auch ein Pi 1, daran liegt es sicher nicht! Hol Dir das aktuelle Image, dann wird es sicher stabiler!
Hallo Tobi,
wenn Du Volkszähler, bzw. vzlogger ohne Datenbank nutzen möchtest, probier mal das neue VZLOGGER Modul aus:
http://forum.fhem.de/index.php/topic,40766.msg329889.html#msg329889
Hallo,
ich wollte gerne die Temperatur- und Luftfeuchtigkeitswerte, die einige Homematic-Komponenten bei mir liefern, in die Datenbank des volkszaehlers speichern(loggen).
Installiert habe ich bei mir einen Raspberry mit Fhem und einen weiteren Raspberry, wo die Datenbank samt volkszaehler läuft.
Ich habe dafür versucht den Programmcode aus dem Fhem-Wiki-Eintrag "Volkszaehler" zu verwenden, welcher am Ende der Seite steht.
Wie dort beschrieben, habe ich ein notify erstellt, welches auf eine Temperaturänderung eines Sensors reagiert.
Leider kommt beim ausführen des notify eine Fehlermelder im Logfile. Der Wert wird ebenfalls nicht übertragen (logisch, wenn ein Fehler auftritt :-\).
Dabei meckert Fhem, dass es den "get"-Befehl nicht kennt, der zwei mal im Script vorkommt.
Log 4, get($update_url);
Wie kann ich das notify dazu bewegen zu arbeiten?
Ich habe alles nach dem Wiki-Artikel eingestellt. Ein Abrufen von Daten aus der Datenbank des volkszaehlers funktioniert tadellos.
Für eine Hilfe bedanke ich mich schon einmal im Voraus!
Falls noch Informationen fehlen, liefere ich diese gerne nach :)
Ich nutze folgenden notify:
wu_conditions:.* {
my $value = ReadingsVal($NAME, 'current_observation_precip_1hr_metric', 0);
my $vz_IP = AttrVal('vz_rain', 'vz_IP', undef);
my $uuid = AttrVal('vz_rain', 'vz_UUID', undef);
Log 4, GetHttpFile($vz_IP, '/middleware.php/data/' . $uuid . '.json?operation=add&value=' . $value);
}
Hallo, vielen Dank, so funktioniert es :)
Kann man nur noch einstellen, dass das GetHttpFile keinen Log-Eintrag verursacht? Sonst wird das Logfile von Fhem ganz schön unübersichtlich :-\
Ich war der Meinung, dass das log 4, dafür sorgt, dass nur wenn wenn dein Loglevel vier oder größer ist, ein Eintrag im log gemacht wird. Ich muss aber sagen das ich das nicht überprüft habe.
Hallo,
ich wollte mal ein bisschen mit dem Volkszähler spielen.
Als erstes habe ich die Module auf meinem Cubietruck installiert und als ServerUrl die DEMOUrl und die dortige UUID angegeben, dort habe ich dann die Daten in FHEM geplottet und ausgegeben bekommen.
Jetzt habe ich einen Pi mit dem aktuellen Image von Volkszähler versehen und dort einen DemoKanal mit Zufallswerten angelegt, dieser gibt auch Daten aus, in Fhem URL und UUID geändert und in FHEM kommt nichts an.
Hat einer eine Idee warum nicht?
Gruss Dirk
Wieso fhem URL?
in fhem habe ich das dann so angegeben: 192.168.178.97 80 c673b290-fdac-11e0-a470-1d9351203a00 last 1800, daher die URL vom Volkszähler in FHEM
Gesendet von meinem SGP771 mit Tapatalk
192...97 ist der Cubietruck? Versuch mal die URL im Browser:
Url
http://192...97/middleware.php/data/<Deine UUID>.json?from=1%20month%20ago
.97 ist der pi mit dem Volkszähler.
Gesendet von meinem SGP771 mit Tapatalk
Ja, das passt. Teste mal die URL!
was mir aufgefallen ist, wenn ich von einem anderen Rechner auf den Volkszähler zugreife, sind die daten nicht da, nur vom Tablet, wo dieDatenkanäle angelegt worden sind. die URL http://192.168.178.97/middleware.php/data/c673b290-fdac-11e0-a470-1d9351203a00.json?from=1%20month%20ago gibt folgendes aus. {"version":"0.3","exception":{"message":"No entity found with UUID: 'c673b290-fdac-11e0-a470-1d9351203a00'","type":"Exception","code":404}}
Gesendet von meinem SGP771 mit Tapatalk
was mir aufgefallen ist, wenn ich von einem anderen Rechner auf den Volkszähler zugreife, sind die daten nicht da, nur vom Tablet, wo dieDatenkanäle angelegt worden sind. die URL http://192.168.178.97/middleware.php/data/c673b290-fdac-11e0-a470-1d9351203a00.json?from=1%20month%20ago gibt folgendes aus. {"version":"0.3","exception":{"message":"No entity found with UUID: 'c673b290-fdac-11e0-a470-1d9351203a00'","type":"Exception","code":404}}
Gesendet von meinem SGP771 mit Tapatalk
Dann hast Du die Antwort: die UUID ist falsch!
(http://images.tapatalk-cdn.com/15/10/21/9601d8fef365a4e9eaf400fee5d382ff.jpg)
ich wurde sagen die uuid ist richtig, oder?
Gesendet von meinem SGP771 mit Tapatalk
Stimmt, der Fehler liegt in der Middleware. Die muss Lokal sein, nicht von Demo.....
das heisst um das zu testen, brauche ich erst den leser mit realen daten?
Gesendet von meinem SGP771 mit Tapatalk
Nein, es geht auch, wenn fhem auf das Internet zugreifen kann, aber darin vermute ich Dein Problem!
FHEM ist auch im netz, was muss ich denn da noch einstellen, also von aussen komme ich drauf
Gesendet von meinem SGP771 mit Tapatalk
Default Gateway ist korrekt eingestellt?
Sollte alles richtig sein.
Zitat von: hixhupf am 10 Januar 2015, 11:24:46
Hallo,
ich habe nun auch vzlogger und das Volkszähler-Modul im Einsatz. Allerdings werden die Zählerstände nicht richtig dargestellt, kennt jemand das Problem? In der DB vom vzlogger kommen die Werte richtig an, siehe Bildschirmfoto von der MySQL-DB: drei Zählerstände mit korrekten Werten vom Typ "electric meter".
In meiner FHEM-Config habe ich die richtigen UUIDs eingetragen und frage den letzten Wert ab:
define Zaehlerstand_WP VOLKSZAEHLER 192.168.18.90 80 6fdf0aa0-9771-11e4-8a2f-1d45fd8b3483 last 1800
Statt dem Wert "7827718.8" wie er in der DB steht bekomme ich aber irgendeinen anderen Wert, siehe Bildschirmfoto von FHEM.
Gruß,
Sascha
Ich muss das hier noch mal aufnehmen, habe im VOLKSZAEHLER den korrekten Zählerstand drin, in fhem zeigt er mir aber irgendeinen anderen Wert an. Wie hast du das gelöst?
keiner eine idee, warum der Zählerstand nicht korrekt von Volkszähler übernommen wird?
was zeigt das VZ Frontend an? Bei einem falschen Datentyp würde die Middleware den Zählerstand evtl. als Anzahl Imoulse interpretieren und noch in kWh umrechnen. Das brauchst Du ja nicht... prüf das noch mal!
Gesendet von meinem iPad mit Tapatalk
Hallo zusammen,
mein Versuch vzlogger ohne Middleware einzurichten scheitert weiter. Nach cpan JSON wird schon mal das Modul VZLOGGER akzeptiert:
Wrong syntax: use: define <name> VZLOGGER <Host-ip-address> <Port-nr> <Channel>.
To list the available channels/UUIDs call <Host-ip-address>:<Port-nr> in your browser
nun gab ich im Browser : IP (IR-Kopf-yport+) :(port)7970 ein, nach 10 sec.erscheint :
~pl~~x~NLj?~OGc.{.?;S>o8n|7?
g[~?tj[x3C<|~l b~upn|p||?_?~p{?~7CJ;~?{x|\~L~x~Kw|#7CW=V??p~ext|~{v|||6Z~|Wn|h~~B6~x|x~^~|_kn|{\8?/{5~8?|s!h~~ow|_~#S{:~7>o\wn)~V^?K^^g?p|Pv_|Ynh~9^>%n?p/?~~Yg|Lx
das dürfte die Ausgabe vom SiemensTD3511 Zähler sein.
Wie bekomme ich das ins Fhem ?
Gruß und ein schönes Weihnachtsfest
Peter aus Calw
Hallo,
ich versuche das Volkszaehler Modul schon seit einiger Zeit in Fhem einzubinden. Bisher leider erfolglos.
Habe alle Files wie im Wiki beschrieben an ihren Ort gelegt und Json installiert wie beschrieben.
Beim define in Fhem bekomme ich dann immer die Fehlermeldung "cannot load Volkszaehler module"
In dem Thread steht , dass man noch andere Files ablegen muss, diese befinden sich aber nicht in dem Pfad und sind im Wiki auch nicht beschrieben.
Welche Files muss ich nun wo ablegen und wo bekomme ich die her ?
Danke
Zitat von: Frank S. am 19 Juni 2014, 18:10:34
Moin.
Nach dem mein LogFile nun einige Zeit läuft, ist mir aufgefallen, dass der Wert CONSUMPTION nur einmal am Tag aktualisiert wird. Und zwar immer zu der Zeit, an dem der Server gestartet wurde. Dadruch kann es zur verfälschten Werten kommen. Wie bekommt man es hin, dass der Wert CONSUMPTION immer kurz vorher aktualisiert wird, wenn ich den Wert um Mitternacht abspeichere?
z.B. define at?
Schöne Grüße
Frank S.
Hallo zusammen,
ich weiß, der Beitrag ist schon etwas alt, aber ich bin auf das gleiche Problem gestossen.
Ich möchte tatsächlich den Verbrauchswert eines Tages von 23:59 - 23:59 abfragen.
Gibt es mitlerweile hier schon Ansätze?
Grüße
Simon
Hallo bgewehr,
könnten die Readings nicht in
Voltage: 'E863F10A-079E-48FF-8F27-9C2605A29F52',
Current: 'E863F126-079E-48FF-8F27-9C2605A29F52',
Power: 'E863F10D-079E-48FF-8F27-9C2605A29F52',
Energy: 'E863F10C-079E-48FF-8F27-9C2605A29F52',
geändert werden ?
Dann würde es mit der Homebridge etwa einfacher, und man braucht evtl kein Homebridgemapping mehr. Daran verzweifle ich grade, da ich keine Einheiten bekomme.
Gruß
Frank
Hallo, leider keine AHnung mit den Readings. Homebridge ist leider extrem begrenzt in seinen heutigen Fähigkeiten - und leider auch nicht durch uns erweiterbar.
Dass die Abfrage der letzten 24h nicht perfekt ist, stimmt.
Wenn Du was besseres findest, lass es mich wissen! Hab leider auch noch keine Lösung dafür.
Hallo Zusammen
habe versucht die Daten aus FHEM an den VZ zu übergeben.
Leider funktionieren die Angaben wie im WIKI angelgegeben nicht.
define vz dummy
attr vz vz_URL http://localhost/volkszaehler.org/htdocs/middleware.php
attr vz vz_UUID XXXXXXXXXXXXXXXXXXXXXXXXXXX
Es führt zu einer Fehlermeldung:
vz: unknown attribute vz_URL. Type 'attr vz ?' for a detailed list.
Kann ich das attr auf irgendeine andere art anlegen?
vg denny
Hallo,
Ich bekomme Volkszähler an sich zum laufen und bekomme Daten aber wenn ich fhem oder den Raspi neu starte dann komme ich nicht mehr in das Web fontent. Es scheint auch als würde er immer wieder neustarten. Sobald ich das Volkszähler define aus der fhem.cfg entferne, läuft wieder alles. Wenn ich dann wieder define Volkszähler mache und neu starte geht der Spaß wieder von vorn los.
Zitat von: rohlande am 07 Januar 2022, 22:38:30
Hallo Zusammen
habe versucht die Daten aus FHEM an den VZ zu übergeben.
Leider funktionieren die Angaben wie im WIKI angelgegeben nicht.
define vz dummy
attr vz vz_URL http://localhost/volkszaehler.org/htdocs/middleware.php
attr vz vz_UUID XXXXXXXXXXXXXXXXXXXXXXXXXXX
Es führt zu einer Fehlermeldung:
vz: unknown attribute vz_URL. Type 'attr vz ?' for a detailed list.
Kann ich das attr auf irgendeine andere art anlegen?
vg denny
Wieso macht Du das über einem Dummy? Im Wiki steht es doch ganz anders?
https://wiki.fhem.de/wiki/Volkszaehler
Zitat von: AbeamStart am 26 März 2022, 22:57:51
Wieso macht Du das über einem Dummy? Im Wiki steht es doch ganz anders?
https://wiki.fhem.de/wiki/Volkszaehler
Leider funktioniert das hier ohne Glaskugel nicht:
Wo ist was und wie konfiguriert?
Moin Bernd und liebe Gemeinde,
ich bastel jetzt seit ein paar Tagen an meiner PV-Selbstbaulösung rum, hänge aber gerade etwas.
Folgendes Problem: Nach ein paar Anpassungen/Ergänzungen in FHEM (in einem Docker-Container, Umzug von einem Raspi) und einem Update startet FHEM in unregelmäßigen Abständen mit folgendem Fehlerlog neu:
Modification of non-creatable array value attempted, subscript -1 at ./FHEM/23_VOLKSZAEHLER.pm line 153.
/entry.sh: line 621: kill: (17754) - No such process
Nachdem mir vor ein paar Wochen die Speicherkarte vom Volkszähler-Raspi voll gelaufen ist habe ich Datenbank, Frontend und Middleware kurzerhand auch auf einen Docker-Container umgezogen. Das Frontend läuft auf einem PPM-Unterbau, so habe ich Zeile 101 in der 23_VOLKSZAEHLER.pm etwas anpassen müssen.
my $URL="http://".$host.":".$host_port."/data/".$channel.".json?from=".$period."%20seconds%20ago&tuples=1";
Das lief auch bis zum Update von FHEM sehr stabil.
Bin dann back to the Roots und habe das Volkszähler-Modul nach Wiki neu angelegt.
Beim reload von 70_JSONREADINGS.pm kam dann folgende Fehlermeldung:
Experimental each on scalar is now forbidden at ./FHEM/70_JSONREADINGS.pm line 122.
Type of arg 1 to each must be hash or array (not private variable) at ./FHEM/70_JSONREADINGS.pm line 122, near "$ref) "
Experimental each on scalar is now forbidden at ./FHEM/70_JSONREADINGS.pm line 126.
Type of arg 1 to each must be hash or array (not private variable) at ./FHEM/70_JSONREADINGS.pm line 126, near "$ref) "
Und da verließen mich die Programmierkenntnisse dann doch. :-\
Einiges wie die openDTU oder die Venus von Victron konnte ich auf MQTT umbiegen, das Volkszähler-Modul finde ich allerdings etwas smoother, wenn es um das Auslesen des Hauptzählers geht O:-)
Hat jmd eine Idee?
Danke im Voraus und LG
Thorsten
P.S.: habe gerade beim Querüberfliegen im Forum gesehen, dass du das Modul JSONREADINGS seit Anfang 2021 nicht mehr weiter entwickelst, wie lässt sich expandJSON mit dem Volkszähler-Modul nutzen?
Hallo zusammen!
Wird dieses Modul noch weiterentwickelt und betreut? Falls nicht, gibt es Alternativen?
Danke für Eure Rückmeldung!
PS - Evtl. dieses hier?
https://forum.fhem.de/index.php?topic=51948.0