Hallo Zusammen,
ich hab mit hilfe von Manuel ein neues Modul gebaut um den Drehstrom Zähler (unten) abzufragen.
N-ERGIE - Drehstromzähler
SMART Grid HUB - EFR-CU-M-EM-E001-1 (EasyMeter)
Das modul ist ab morgen per update verfügbar.
have fun...
Zwiebel
Hier noch ein Link mit Produktinfomrationen des Zählers...
http://www.efr.de/fileadmin/content/pdfs/Produktinformation_EFR_SGH_NEU_DE.pdf
Hallo Zwiebel,
bei der Abfrage des Stromzählers kommt es derzeit zu einer Zwangspause von ca. 20 Sekunden.
Ist es möglich die Abfrage in einem eigenen Thread (?) laufen zu lassen um das übrige System nicht zu stören?
Ansonsten läuft bisher alles prima, danke nochmals für dein tolles Modul...
Gruß Manuel
2013.12.23 22:26:47.141 1: HMLAN_Parse: CUL_HM new condition ok
2013.12.23 22:26:46.958 1: Perfmon: possible freeze starting at 22:26:27, delay is 19.958
2013.12.23 22:26:46.913 1: HMLAN_Parse: CUL_HM new condition init
2013.12.23 22:26:46.912 1: 192.168.178.2:1000 reappeared (CUL_HM)
2013.12.23 22:26:46.860 1: HMLAN_Parse: CUL_HM new condition disconnected
2013.12.23 22:26:46.856 1: 192.168.178.2:1000 disconnected, waiting to reappear
2013.12.23 22:24:47.162 1: HMLAN_Parse: CUL_HM new condition ok
2013.12.23 22:24:46.980 1: Perfmon: possible freeze starting at 22:24:27, delay is 19.979
2013.12.23 22:24:46.933 1: HMLAN_Parse: CUL_HM new condition init
2013.12.23 22:24:46.932 1: 192.168.178.2:1000 reappeared (CUL_HM)
2013.12.23 22:24:46.863 1: HMLAN_Parse: CUL_HM new condition disconnected
2013.12.23 22:24:46.859 1: 192.168.178.2:1000 disconnected, waiting to reappear
2013.12.23 22:22:47.090 1: HMLAN_Parse: CUL_HM new condition ok
2013.12.23 22:22:46.958 1: Perfmon: possible freeze starting at 22:22:27, delay is 19.958
2013.12.23 22:22:46.926 1: HMLAN_Parse: CUL_HM new condition init
2013.12.23 22:22:46.926 1: 192.168.178.2:1000 reappeared (CUL_HM)
2013.12.23 22:22:46.906 1: HMLAN_Parse: CUL_HM new condition disconnected
2013.12.23 22:22:46.903 1: 192.168.178.2:1000 disconnected, waiting to reappear
2013.12.23 22:20:46.824 1: HMLAN_Parse: CUL_HM new condition ok
2013.12.23 22:20:46.752 1: Perfmon: possible freeze starting at 22:20:27, delay is 19.752
Hallo Manuel,
woran erkenne ich denn in deinem log Auszug das das Modul EFR die Verzögerung verursacht?
Es gibt das Modul Blocking. Aber wie man das einbindet um so eine art threads zu bekommen weiß ich leider nicht.
Gruß
Zwiebel
Moin Manuel,
schmeiss mal apptime mit rein.
http://forum.fhem.de/index.php/topic,17746.msg117355.html#msg117355
Gruß Joachim
Zitat von: Zwiebel am 24 Dezember 2013, 08:31:21
Hallo Manuel,
woran erkenne ich denn in deinem log Auszug das das Modul EFR die Verzögerung verursacht?
Es gibt das Modul Blocking. Aber wie man das einbindet um so eine art threads zu bekommen weiß ich leider nicht.
Gruß
Zwiebel
Hallo Zwiebel,
zum Modul Blocking.pm gibt es im Wiki einen Artikel, der die Einbindung in ein Modul erläutert: http://www.fhemwiki.de/wiki/Blocking_Call
Viele Grüße
Markus
Hallo Markus Hallo Zwiebel,
ZitatHallo Manuel,
woran erkenne ich denn in deinem log Auszug das das Modul EFR die Verzögerung verursacht?
Es gibt das Modul Blocking. Aber wie man das einbindet um so eine art threads zu bekommen weiß ich leider nicht.
Gruß
Zwiebel
Ich habe das Intervall des EFR Moduls verändert und die 19 Sekundne Freeze Einträge verändern sich entsprechend.
Auch habe ich im Eventmonitor geschaut... Nach dem lange Zeit nichts geloggt wird kommen die Werte vom EFR Modul.
@Zwiebel:
hast du mit dem Blocking.pm schon einmal gearbeitet? Falls nicht veruche ich mir da einzuarbeiten und das Modul umzubauen..
Gruß Manuel
Von Joachim kam der Tipp mit apptime die Programmlaufzeit (?) anzuzeigen.
Ergebnis anbei --> (energy_Update ist ein SUB von 70_EFR.pm)
name function max count total average param Max call
tmr-energy_Update HASH(0x8b84298) 20282 3 60457 20152.33 HASH(0x8b84298)
tmr-HUEDevice_GetUpdate HASH(0x8b287c8) 82 4 249 62.25 HASH(0x8b287c8)
tmr-Heating_Control_Update HASH(0x890b0d0) 63 2 124 62.00 HASH(0x890b0d0)
tmr-HUEDevice_GetUpdate HASH(0x8b054c0) 67 4 244 61.00 HASH(0x8b054c0)
tmr-HUEDevice_GetUpdate HASH(0x8b05a60) 62 4 243 60.75 HASH(0x8b05a60)
tmr-HUEDevice_GetUpdate HASH(0x8b28d58) 67 4 243 60.75 HASH(0x8b28d58)
tmr-HUEDevice_GetUpdate HASH(0x8b29028) 79 4 240 60.00 HASH(0x8b29028)
tmr-HUEDevice_GetUpdate HASH(0x89b1fc8) 64 4 233 58.25 HASH(0x89b1fc8)
tmr-HUEDevice_GetUpdate HASH(0x8b28a88) 60 4 222 55.50 HASH(0x8b28a88)
Danke Joachim
Gruß Manuel
Hi Manuel,
ich hab noch nie mit dem Blocking.pm gearbeitet.
Wenn du möchtest kannst du das Modul EFR gern umbauen.
gruß
Zwiebel
Hi Zwiebel,
schau dir einfach mal das Modul 32_speedtest.pm an, das ist ein sehr einfaches kleines Modul, welches einen Shell-Aufruf via Blocking.pm in einen Thread verlagert.
Viele Grüße
Markus
Hallo Zusammen,
ich hab jetzt mal das Modul angepasst. Bin aber nicht sicher ob das so funktioniert, weil ich nicht so ein Strom Zähler habe.
Gruß
Zwiebel
Hallo Zwiebel,
Rückmeldung aus einem Kurzzeittest: Das Modul funktioniert noch... Im Log konnte ich keinen Freeze Eintrag mehr sehen..
Rückmeldung ob es noch Hängenbleiber gibt sende ich sobald ich wieder im Lande bin.
1000 Dank.
Gruß Manuel
Zitat von: Zwiebel am 27 Dezember 2013, 10:02:04
Hallo Zusammen,
ich hab jetzt mal das Modul angepasst. Bin aber nicht sicher ob das so funktioniert, weil ich nicht so ein Strom Zähler habe.
Gruß
Zwiebel
Hallo Zwiebel,
ich habe dein Modul ebenfalls nur durchgesehen. Zwei Punkte sind mir dabei aufgefallen.
- Die Zeile 150:
Log3 $hash, 5, "$hash->{NAME} loop done " ;
sollte eher am Ende in der Funktion energy_energyDone() stehen, weil erst da der Loop wirklich einmal rum ist.
- Du schedulest den Timer für den nächsten Durchlauf bereits in der Funktion energy_Update(). Das kann im Gutfall durchaus funktionieren, aber sollte der Abfragezyklus kleiner sein, als die Dauer eines Durchlaufes würden sich hier Blocking Calls anstauhen und den entsprechenden Host mit Unterprozessen volllaufen lassen.
Daher solltest du dies unbedingt in die Funktion energy_energyDone() verlegen, weil dann wird der nächste Durchlauf auch tatsächlich erst dann gescheduled, wenn der aktuelle Loop rum ist.
Der Rest sieht soweit gut aus.
Viele Grüße
Markus
Hallo Markus,
vielen dank!
hab es abgeändert und hoch geladen.
gruß
Zwiebel
Hallo Zwiebel,
Danke für das Update.... Test läuft bisher ohne Probleme.
Guten Rutsch
Manuel
Hallo Zwiebel,
ich habe von N-ERGIE ebenfalls einen Drehstromzähler allerdings ohne Tarifumstellung. Der Zähler hat ein Ausgabemodul von ITF und stellt seine Daten im JSON-Format zur Verfügung. Der Zähler wurde, glaube ich, schon mal unter http://forum.fhem.de/index.php/topic,8665.0.html angesprochen.
Könnte man das in Dein Modul integrieren?
Gruß
Tupol
Hallo tupol,
hast du nach einem update schon mal das EFR Modul definiert?
Was bringt bei dir der output von:
http://IP-Adresse/json.txt?LogName=geheim&LogPSWD=auch_geheim
LogName und LogPSWD richtig setzen. In meinem Modul ist das user/user. Das könnte bei dir anderst sein. Dann sollte ich das im Modul ändern, bzw konfigurierbar machen.
Gruß
Zwiebel
Hallo Zwiebel,
das Modul läuft seit Tagen stabil ...
Vielen Dank für deinen Support.
Gruß Manuel
Hallo Zwiebel,
Es ist wohl doch ein anderes Modul als ich ursprünglich angenommen hatte.
Die untere json-Datei ist unter http://IP-Adresse/GetMeasuredValue.cgi auslesbar. Ich habe keinen User eingestellt.
----
{"meterId": "0000000061015736", "meterType": "Simplex", "interval": 0, "entry": [
{"timestamp": 1389296286, "periodEntries": [
{"obis": "0.0.0", "scale": 0, "value": 1627477814, "unit": "", "valueString": "0000000061015736" },
{"obis": "0.0.9", "scale": 0, "value": 2147483647, "unit": "", "valueString": "0001420061015736" },
{"obis": "0.2.0", "scale": 0, "value": 0, "unit": "", "valueString": "V320090704" },
{"obis": "1.7.0", "scale": 0, "value": 392, "unit": "W", "valueString": "0000392" },
{"obis": "1.8.0", "scale": 0, "value": 8802276, "unit": "Wh", "valueString": "0008802.276" },
{"obis": "96.1.0", "scale": 0, "value": 305419896, "unit": "", "valueString": "12345678" },
{"obis": "96.5.5", "scale": 0, "value": 36032, "unit": "", "valueString": "8CC0" },
{"obis": "96.7.0", "scale": 0, "value": 8, "unit": "", "valueString": "008" },
{"obis": "96.7.1", "scale": 0, "value": 3, "unit": "", "valueString": "003" },
{"obis": "96.7.2", "scale": 0, "value": 3, "unit": "", "valueString": "003" },
{"obis": "96.7.3", "scale": 0, "value": 0, "unit": "", "valueString": "000" },
{"obis": "96.8.0", "scale": 0, "value": 101715965, "unit": "", "valueString": "06100FFD" },
{"obis": "97.97.0", "scale": 0, "value": 0, "unit": "", "valueString": "00" },
{"obis": "96.90.1", "scale": 0, "value": 269, "unit": "", "valueString": "010D" },
{"obis": "96.90.2", "scale": 0, "value": 41106, "unit": "", "valueString": "A092" }
] }
] }
Ach ganz vergessen zu fragen. Das Modul läuft doch auch auf der Fritzbox. Oder?
Das muss ich bei Gelegenheit testen. Derzeit habe ich keine FB mit FHEM laufen...
Gruß Manuel
Gesendet von meinem iPad mit Tapatalk (http://tapatalk.com/m?id=1)
Hallo Petrosilius Zwackelmann
geht bei dir die url auch? -> http://IP-Adresse/GetMeasuredValue.cgi
wenn ja könnte man das modul umbauen...
Vielleicht könntest du mir dann auch deinen output zukommen lassen.
gruß
Zwiebel
Hallo Zusammen,
zu den Fragen:
1) Ich habe das Modul auf der FB7390 getestet --> läuft
2) Abfrage mit http://192.168.178.21/GetMeasuredValue.cgi
Ich habe diese Zeile im Firefox aufgerufen...
Es wird einige Zeit geladen, dann erscheit wieder die ursprüngliche Webseite.
Falls es zu irgeneiner Ausgabe gekommen ist habe ich diese nicht bemerkt, am Bildschirm ladet bei mir nichts.
Da es aber auch nicht zu einer Fehlermeldung kommt weiß ich nicht so recht was ich davon halten soll.
Auffällig ist ja dass die Abfrage ohne User und Passwort erfolgt...
Deswegen habe ich die Abfrage wiederholt nachdem ich mich an der Weboberfläche angemeldet habe...
--> gleiches Verhalten wie oben beschrieben.
Eine Abfrage mit
http://IP/GetMeasuredValue.cgit?LogName=geheim\&LogPSWD=sehr geheim
hat auch zu keinem anderen Ergebnis geführt...
Mehr Ideen habe ich nun nicht mehr.
Meine Fragen:
Wie ist denn die genaue Typbezeichnung (incl. Firmware) des Smart-Meters?
Gibe es keine Weboverfläche auf welcher User und PSW abgefragt werden? Sind diese Felder einfach leer?
Gruß Manuel
Also ich glaube, das sind doch sehr verschiedene Abfragemodule an den Zählern. Ich habe mal in den Quellcode von EFR geschaut. Das JSON-Format wird von Dir ja ohne spezielle Perl-Module aufgesplittet. Dadurch scheint es auch auf der FB zu laufen. Super. Es wäre schön, wenn man meinen Zähler durch Parameterangabe einstellen kann und er dann angepasst abgefragt wird.
Hier mal meine Geräteinfos auf der Weboberfläche
Firmware Version Simplex_ME V0.1.82
Weboberfläche Version Froetec_V1.0-3-g98490b8
Bootloader Version BootLoader V0.1.8
Hardware-Version HW5
Hallo,
so wie es scheint haben die Zähler unterschiedliche url's. Jetzt extra für beide Zähler ein seperates EFR Modul zu machen find ich nicht so gut.
Also sollte das Modul vielleicht verschieden attribute auswerten.
- url
- user
- pw
- Zähler version (z.B. Version1 für den vom Manuel und Version2 für den von tupol...dann könnte -url vielleicht weg fallen...)
Bin mir aber nicht sicher ob das so eine tolle idee ist das so zu implementieren...Ich hab das gefühl morgen möchte dann viele Version3-99 haben. :)
Vielleicht gibt es einen besseren Ansatz.
gruß
Zwiebel
Ich denke, man sollte ein Modul für alle Zähler bauen, die JSON Dateien ausgeben.
In dieses Modul sollte am Anfang ein Konfigurationsteil kommen, für den für jeden Zählertyp folgende Teile definiert werden:
Dateiname der URL
für jedes Reading: Name des Readings + Arrayindex nach split mit "{" + Suchstring um Wert zu finden.
Das Abfragemodul müssten dann mit Hilfe der Konfigurationwerte die Readings einlesen und speichern.
Der Konfigurationsteil könnte dann für jeden Reading-Typ erweitert werden. Das sollte übersichtlich bleiben.
Hallo tupol,
wie ist den die genaue Typbezeichnung von deinem Zähler?
Poste doch mal alles was dort aufgdruckt ist.
Gruß Manuel
Hallo Zusammen,
ich habe etwas gebastelt.
In dem Modul kann man eine URL und FELDER (10,13,8) angeben, damit sollte es für mehr Zähler gut sein. Aber Vorsicht - ist an vielen stellen unschön, und kann sicher so nicht produktiv eingesetzt werden. Vielleicht sollte man es auf einer 2. FHEM installation erst mal testen.
Bitte um Wünsche und Anregung....aber bitte um Geduld der Umsetzung...
Gruß
Zwiebel
Hallo Zwiebel,
gerne probiere ich das Update aber aus (10 13 8), werde ich nicht schlau...
Sollte das define dann etwa so aussehen?
define <name> EFR <host> <port> <url>
define EFR_SMART_GRID_HUB EFR 192.168.178.21 120 http://IP/GetMeasuredValue.cgit?LogName=geheim\&LogPSWD=sehr geheim
Gruß Manuel
Hallo Manuel,
es bleibt beim "define <name> EFR <host>".
Aber es gibt jetzt zwei Attribute. URL und FELDER.
Die werden über die web Schnitstelle dann angezeigt.
gruß
Zwiebel
Hallo Zwiebel,
mit dieser Konfiguration bekomme ich nun keine Loggingnachrichten mehr...
Habe ich das mit den Feldern nun richtig verstanden?
11=powernow
10=powercounter
12=powerU1
...
define EFR_SMART_GRID_HUB EFR 192.168.178.21 120
attr EFR_SMART_GRID_HUB FELDER 11 10 12 13 14
attr EFR_SMART_GRID_HUB URL http://192.168.178.21/json.txt?LogName=geheim/LogPSWD=topsecret
attr EFR_SMART_GRID_HUB room Energie_Monitoring
Hallo,
hier eine neue version zum testen.
Wie schaut dein filelog aus?
gruß
Zwiebel
Hallo Zwiebel,
mit der neuen Version kommt es bereits beim Laden des Moduls zu Fehlermeldungen....
Meine define ist unverändert wie weiter oben bereits geposted....
Kannst du die Frage zur Verwendung des attr FELDER noch beantworten?
/share/Public/fhem-5.4/FHEM/70_EFR.pm has too many errors.
Can't use global @_ in "my" at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 290, near "= @_"
syntax error at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 285, near "}"
Global symbol "$hash" requires explicit package name at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 283, <> line 9.
Global symbol "$hash" requires explicit package name at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 283, <> line 9.
syntax error at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 278, near "}else"
syntax error at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 269, near "}"
Global symbol "$count" requires explicit package name at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 267, <> line 9.
Global symbol "$count" requires explicit package name at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 261, <> line 9.
Global symbol "$count" requires explicit package name at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 259, <> line 9.
2014.01.18 11:19:41 0: Global symbol "$IP" requires explicit package name at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 183, <> line 9.
/share/Public/fhem-5.4/FHEM/70_EFR.pm has too many errors.
Can't use global @_ in "my" at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 290, near "= @_"
syntax error at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 285, near "}"
Global symbol "$hash" requires explicit package name at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 283, <> line 9.
Global symbol "$hash" requires explicit package name at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 283, <> line 9.
syntax error at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 278, near "}else"
syntax error at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 269, near "}"
Global symbol "$count" requires explicit package name at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 267, <> line 9.
Global symbol "$count" requires explicit package name at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 261, <> line 9.
Global symbol "$count" requires explicit package name at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 259, <> line 9.
Global symbol "$IP" requires explicit package name at /share/Public/fhem-5.4/FHEM/70_EFR.pm line 183, <> line 9.
2014.01.18 11:19:41 1: reload: Error:Modul 70_EFR deactivated:
Manuel
Hallo Manuel,
sorry - die version war nix. Hier die 1.0.
Ja mit den Feldern hast recht. Das modul selber kennt kein powernow oder änlich. Hinter Feld 11 kann irgendein Zahlenwert sein.
Damit ist das EFR etwas vielseitiger einsetzbar.
gruß
Zwiebel
Hallo Zwiebel
anbei Feedback von Version 1.0:
Status: Connected
Logfile: (nach Anpassung der Logfile definition wird nun alles geloggt was vom EFR kommt...)
2014-01-18_13:19:01 EFR_SMART_GRID_HUB 10 12 13 14: 0
Events:
2014-01-18 13:09:21 EFR EFR_SMART_GRID_HUB 10 12 13 14: 0
Attributes:
FELDER 10 12 13 14 deleteattr
URL http://192.168.178.21/json.txt?LogName=geheim/LogPSWD=topsecret deleteattr
room Energie_Monitoring deleteattr
Wir kommen der Sache also näher...
Gruß Manuel
Hallo Manuel,
Felder sollten "," getrennt sein!
attr EFR_SMART_GRID_HUB FELDER 10,12,13,14
wobei ich mir jetzt nicht sicher bin ob FHEM standart hier ein "|" sein sollten...
Fals es das nicht ist bitte ich um log auszüge.
gruß
Zwiebel
nun schaut das Logging wie folgt aus...
2014-01-18_13:46:20 EFR_SMART_GRID_HUB 10: 0 12: 0 13: 0 14: 0
Also wieder ein wenig näher an der Lösung....
Wenn ich was auf die Wunschliste geben darf:
1) Schön wäre es wenn man statt 10: 11: einen Alias eingeben könnte.
2) Kann man die aktuellen Werte wie im OWCOUNT Modul zur Anzeige bringen, statt des derzeitigen Status Connected ?
Gruß Manuel
Hallo Manuel,
in die URL bitte nur den Rest ohne IP eintragen: /json.txt?LogName=geheim/LogPSWD=topsecret
Müsste vielleicht nicht URL heißen eher Extension oder so ähnlich. was meinst du?
ich schau mir deine wünsche an...aber zuerst sollten wir die Funktion sauber hin bekommen.
Gruß
Zwiebel
Hallo Manuel,
ich habe einen FROETEC SIMPLEX ME. Also etwas völlig anderes als in EFR integriert. Die Abfragemethode würde genau die gleiche sein, nur die Readings sind weniger umfangreich.
Hast Du vor, Dein Modul mit dem vorgeschlagenem Konfigurationsteil für verschiedene Zählerhersteller konfigurierbar zu machen?
Gruß
Tupol
Hallo tupol,
genau da sind wir gerade drann am schauen ob das so geht.
Gruß
Zwiebel
Hallo Zwiebel,
ich habe versucht zu debuggen (siehe zusätzliche Loggingzeile)
Der Output sieht dann wie folgt aus....
2014-01-18 15:04:55 EFR EFR_SMART_GRID_HUB background:url('images/main.png') no-repeat -662px -16px; } #btn,#btn1,#btn2,#btn3,#btn4 10: 0 display:block; padding-top:10px; background:url('images/main.png') no-repeat 0 -16px; width:148px; height:33px; font-size:20px; color:#fff; text-align:center; text-decoration:none; font-size:12px; color:#838383; margin-right:3px; } a.button:hover 12: 0 color:#7297ab; } div.selectActLeft, div.selectActRight, div.selectActMid 13: 0 float: left; display:block; padding-top:10px; background:url('images/main.png') no-repeat -240px -16px; width:90px; height:33px; font-size:20px; color:#fff; text-align:center; text-decoration:none; font-size:12px; color:#ffffff; margin-right:3px; } div.selectActRight 14: 0
Hilft dir das weiter?
Gruß Manuel
Hallo Manuel,
mir bringt das nicht viel weiter ausser das scheinbar die URL noch nicht stimmt.
In zeile 183 hab ich ein Log eingebaut das die URL ausgibt. (ich hoffe das ist bei deiner version auch so)
Daher die frage nach dem fhem.log in dem der output drin steht.
gruß
Zwiebel
Hallo,
FELDER sollten jetzt so ausschauen 10|14|20 usw.
FELDERNAME solle sollte so auschauen 10=LeistungSumme|14=TotalLeistung usw.
gruß
Zwiebel
OK. Sagt mir bitte per "Private Mitteilung" Bescheid, wenn Ihr fertig seid. Dann würde ich das bei mir testen und, wenn gewünscht, meinen Konfigurationsteil erzeugen.
Hallo Zwiebel,
meine Attribute habe ich wie folgt gesetzt....
Nun bleibt das Modul dauerhaft im Status "Initializing"
Ich kann nicht sagen warum aber im meinem FHEM.log wird seit heute Vormittag nichts mehr geloggt... auch ein Neustart hat da nichts geholfen..
Übrigens ist das GET- Menü verschwunden... ist das so gewollt?
Gruß Manuel
Hi,
hier eine neues Update.
- GET ist wieder da :)
- wir jetzt auch ins log übernommen.
@Manuel - hast du für mich den log Auszug?
@tupol - die Änderung in dem Modul hab ich wegen dir gemacht es wäre schön wenn du dich als Tester beteiligen würdest.
bitte um wünsche und Anträge :)
Gruß
Zwiebel
Hallo Zwiebel,
hier eine erste Rückmeldung.
Der Status des EFR geht nach einiger Zeit von"Initialzing" auf "". Das liegt wohl daran dass du bereits an der Wunschliste gearbeitet hast und hier nun der aktuelle Wert stehen sollte. Leider wird aber kein Wert eingelesen und damit bleibt auch diese Anzeige leer.
Das FHEM.log ist bei mir aus irgendwelchen Gründen wieder gehen Mittag stehen geblieben. Ich bin noch nicht dahinter gekommen woran das liegen mag.
Sobald ich hier Werte Loggen kann werde ich diese nachreichen.
--> GET ist wieder da.
2014-01-19_15:22:03 EFR_SMART_GRID_HUB
2014-01-19_15:19:35 EFR_SMART_GRID_HUB
2014-01-19_15:17:12 EFR_SMART_GRID_HUB
2014-01-19_15:14:48 EFR_SMART_GRID_HUB
2014-01-19_15:12:25 EFR_SMART_GRID_HUB
2014-01-19_15:10:02 EFR_SMART_GRID_HUB
2014-01-19_15:06:35 EFR_SMART_GRID_HUB PowerTotal: 4812.90 lastPower: 113.79 Power_L1: 40.72 Power_L2: 9.04 Power_L3: 64.03
2014-01-19_15:04:15 EFR_SMART_GRID_HUB PowerTotal: 4812.90 lastPower: 113.73 Power_L1: 41.68 Power_L2: 8.89 Power_L3: 63.16
2014-01-19_15:01:54 EFR_SMART_GRID_HUB PowerTotal: 4812.89 lastPower: 110.12 Power_L1: 40.20 Power_L2: 9.52 Power_L3: 60.40
2014-01-19_14:59:34 EFR_SMART_GRID_HUB PowerTotal: 4812.89 lastPower: 109.41 Power_L1: 39.42 Power_L2: 9.10 Power_L3: 60.89
2014-01-19_14:57:14 EFR_SMART_GRID_HUB PowerTotal: 4812.88 lastPower: 108.50 Power_L1: 39.15 Power_L2: 8.87 Power_L3: 60.48
2014-01-19_14:54:46 EFR_SMART_GRID_HUB PowerTotal: 4812.88 lastPower: 109.89 Power_L1: 39.14 Power_L2: 9.03 Power_L3: 61.72
2014-01-19_14:52:13 EFR_SMART_GRID_HUB PowerTotal: 4812.87 lastPower: 109.08 Power_L1: 39.05 Power_L2: 9.02 Power_L3: 61.01
Hallo Zwiebel,
das Logging scheint nie abgebrochen worden zu sein... Mit Chrome und iPad lassen sich die Einträge anzeigen mit Firefox sehe ich nur Einträge bei 12:09 heute Mittag. Ein solches Problem ist mir bisher nie aufgefallen.
Egal, hier also nun die Einträge welche ich entdeckt habe..
Einen Eintrag welche URL zusammengebaut wird habe ich nicht entdeckt.
Einträge aus Version 1.3
2014.01.19 15:07:38 3: set attribute: EFR_SMART_GRID_HUB attribute: EFR_SMART_GRID_HUB value:URL
2014.01.19 15:07:38 3: set attribute: EFR_SMART_GRID_HUB attribute: EFR_SMART_GRID_HUB value:FELDERNAME
2014.01.19 15:07:38 3: set attribute: EFR_SMART_GRID_HUB attribute: EFR_SMART_GRID_HUB value:FELDER
2014.01.19 15:07:38 3: set attribute: EFR_SMART_GRID_HUB attribute: EFR_SMART_GRID_HUB value:room
2014.01.19 15:07:38 3: EFR_SMART_GRID_HUB will read from EFR at 192.168.178.21:80
...
Einträge wahrscheinlich nach Wiedereinspielen von Version 0.8
2014.01.19 15:26:45 3: EFR_SMART_GRID_HUB will read from EFR at 192.168.178.21:80
2014.01.19 15:26:44 3: EFR_SMART_GRID_HUB energy_energyAborted
2014.01.19 15:26:44 1: Timeout for energy_DoUpdate reached, terminated process 8151
LG Manuel
Hallo Manuel,
du hast kein "attr EFR_SMART_GRID_HUB verbose 5" Gemach. Dann erhältst du nur alles was log Level 3 ist.
Auf welcher Hardware hast du FHEM installiert?
Am besten kann man sich die log Dateien auf der Konsole anschauen, gerade wenn sie vielleicht sehr groß geworden sind.
Ich Würde gern das Modul hochladen das es per Update verteilt wird, aber dazu sollten möglichst viele Fehler raus sein.
Daher warte ich mal ab bis wir deine logs analysieren können.
Gruß
Zwiebel
Hallo Zwiebel,
ich kann es gerne testen. Vor dem Start habe ich noch einen kurzen Blick in den Code geworfen. Einen kleinen Vorschlag dazu. Konzeptionell sollte das Device eigentlich auch ohne irgendwelche Attribute funktionieren (insbesondere für unerfahrene User). Du solltest deshalb meines Erachtens im define ein Smartmeter-Modell erwarten und die URL intern ({helper}{URL}) festlegen. Es kann dann aber auch ein "Spezialmodell" geben, welches die URL als Attribute erwartet.
Was muss ich denn als URL angeben? Den URL-Path "/GetMeasuredValue.cgi" ? Das habe ich gemacht ohne Resultat und ohne wirkliche Fehlermeldungen (verbose 5)
cfg:
define Strommessung EFR 192.168.178.19 10
attr Strommessung room Keller
attr Strommessung URL 192.168.178.19/GetMeasuredValue.cgi
attr Strommessung verbose 5
Log:
2014.01.20 18:36:09 3: Strommessung will read from EFR at 192.168.178.19:80
2014.01.20 18:36:09 3: set attribute: Strommessung attribute: Strommessung value:room
2014.01.20 18:36:09 3: set attribute: Strommessung attribute: Strommessung value:URL
2014.01.20 18:36:09 3: set attribute: Strommessung attribute: Strommessung value:verbose
2014.01.20 18:36:48 4: SET device: Strommessung name: ? value:
2014.01.20 18:36:50 4: SET device: Strommessung name: ? value:
2014.01.20 18:36:54 4: SET device: Strommessung name: ? value:
2014.01.20 18:37:08 4: SET device: Strommessung name: ? value:
Vielen Dank nochmal für Dein Engagement
Tupol
Hallo tupol,
danke für deine Anmerkungen.
Welche URL soll das default genommen werden?
Welche Felder soll als default genommen werden?
Sorry aber da läßt sich sicher kein default bei dem das einfach so funktioniert festlegen.
Als URL wird der teil nach der IP erwartet. In deinem Fall /GetMeasuredValue.cgi .
weshalb es bei dir kein log (4 oder 5) gibt find ich komisch....
Gruß
Zwiebel
Hallo Zwiebel,
Der URL-Path (nicht die URL!) bei meinem Model "IFR" ist z.B. "/GetMeasuredValue.cgi"
In der CFG müsste dann also z.B. nur folgendes stehen
define <device> EFR <model(=IFR)> <ip-address> [<interval> <timeout>]
D.h. ohne Modelangabe müsstest Du beim define einen Fehler melden.
Du kannst dann über einen Konfig-Teil in Deinem Modul für jedes Model die Readings definieren. Oder Du fragst immer alle obis-IDs ab und legst nur die an, die Du tatsächlich findest.
Letzteres scheint etwas komplex ist aber sehr robust. Du musst zudem berücksichtigen, dass Dein Eintrag
{"obis":"0100010700FF","value":313.07,"unit":"W"},
bei mir so aussieht
{"obis": "1.7.0", "scale": 0, "value": 392, "unit": "W", "valueString": "0000392" }.
Ersteres ist eigentlich zu sehr "hardcode", scheint mir aber einfacher zu sein. Du könntest dafür z.B. in Deinem Modul für das Model "IFR" folgendes Konfigteil integrieren:
$URL-path{"IFR"} = "/GetMeasuredValue.cgi"; (also das derzeitige Attribut URL)
$Values{"IFR"}{1}{name}="totalPower"; #Name des Readings
$Values{"IFR"}{1}{pos}=10; # Position des Readings in dem zu durchsuchenden Skalar (Also das derzeitige Attribut FELDER)
Evt. muss Du auch noch den regulären Suchausdruck definieren. $Values{"IFR"}{1}{reg_str}= 'value":(.*)"unit"';
PS: Ist <timeout> tatsächlich notwendig?
Gruß
Tupol
Jetzt habe ich einen Output im Log. Ich glaube aber meine Definitionen sind irgendwie falsch. Ist das untere korrekt?
define Strommessung EFR 192.168.178.19 10
attr Strommessung URL /GetMeasuredValue.cgi
attr Strommessung FELDER 5|6
attr Strommessung FELDERNAME power1|power2
attr Strommessung verbose 5
es ergibt:
2014.01.20 20:23:26 4: EFR Strommessung ip: 192.168.178.19 port: 80 URL: /GetMeasuredValue.cgi
2014.01.20 20:23:26 5: buf: HTTP/1.1 200 OK
Server: Keil-EWEB/2.1
Content-Type: text/html
Cache-Control: no-cache
Connection: close
... (json-output) ...
2014.01.20 20:23:26 4: Socket closed
2014.01.20 20:23:27 4: name: Strommessung felder: 5|6
2014.01.20 20:23:27 5: Strommessung write log file:
2014.01.20 20:23:27 4: SET device: Strommessung name: ? value:
2014.01.20 20:23:27 4: SET device: Strommessung name: ? value:
2014.01.20 20:23:27 5: Strommessung loop done
Hallo tupol,
- du hast recht nicht URL sondern URL-Path ist wahrscheinlich besser.
- deine Implementierung scheint mir etwas komplex. Bzw. mir ist nicht klar was daran für den Anfänger einfacher wird.
- <timeout> ist wirklich etwas überflüssig.
- attr Strommessung FELDERNAME 5=power1|6=power2 # ist besser
gruß
Zwiebel
Ja. Das Attribut ist so besser verständlich. ;D
Bzgl. Modelwahl:
Der Anfänger wählt entweder den speziellen Konfigurationsmodus ("config") mit den beiden von Dir vorgegebenen Attributen.
Oder (besser) er findet sein Modell in der Anleitung zu Deinem Modul und kann durch die Modellwahl eine entsprechende Vorbelegung der Attribute nutzen. (Ohne weitere Details zu seinem Modell zu kennen.)
Wie gesagt, ein automatische Interpretation der obis codes entsprechend http://www.dlms.com/documentation/listofstandardobiscodesandmaintenanceproces/index.html wäre natürlich höchst genial. :-)
Dann würde man über das Model nur noch den Pfad wählen müssen.
Hallo Zwiebel,
da hier nichts mehr weiter gepostet wurde: Bist Du noch an der Sache dran?
Gruß
Tupol
Hallo Zusammen,
ich würde das Modul was ich hier zum testen eingestellt habe ins svn hoch laden.
Dann wird es über ein update verteilt.
Danach kann weiter daran gearbeitet werden, das muß aber nicht unbedingt ich sein.
Gruß
Zwiebel
Hallo Zwiebel,
ich habe den neuen Stand deines Moduls nicht zum laufen gebracht. (siehe meine Rückmeldungen) deswegen finde ich eine Verteilung über update nicht so toll.
@Tupol: Läuft bei dir die neue Version ohne Probleme?
Gruß Manuel
Hallo Manuel,
ich hab von dir leider kein log bekommen in dem die URL zu sehen ist. Somit kann ich nicht sagen was da falsch läuft.
Ich hab das Modul ins contrib verschoben.
Gruß
Zwiebel
Ich hatte ja schon geschrieben, dass ich das Modul nicht zum laufen bekommen habe, weil ich die einzustellenden Attribute nicht verstanden habe.
Hallo Zwiebl
Ich hatte dir mein Log an PM gesendet...
Gere teste ich wieder, oder sende noch Daten.
Gruß Manuel
Gesendet von meinem iPad mit Tapatalk
Hallo Manuel,
ich habe von dir noch keinen brauchbaren Log Auszüge bekommen. Hast du an der URL schon verschiedene Varianten versucht?
So wie in der Mail an dich beschrieben?
Gruß
Zwiebel
Hallo Zwiebel
mit folgender Konfiguration haut es hin...
define EFR_SMART_GRID_HUB EFR 192.168.178.21 120
attr EFR_SMART_GRID_HUB FELDER 10|11|12|13|14
attr EFR_SMART_GRID_HUB FELDERNAME 10=PowerTotal|11=lastPower|12=Power_L1|13=Power_L2|14=Power_L3
attr EFR_SMART_GRID_HUB URL /json.txt?LogName=geheim&LogPSWD=topsecret
Danke für dein Modul & Geduld.
Gruß Manuel
http://forum.fhem.de/index.php/topic,20080.0.html (http://forum.fhem.de/index.php/topic,20080.0.html)
Dank an Zwiebel.
Zitat von: tupol am 11 Februar 2014, 19:40:09
http://forum.fhem.de/index.php/topic,20080.0.html (http://forum.fhem.de/index.php/topic,20080.0.html)
Dank an Zwiebel.
Wäre das Modul auch anwendbar beim Youless LS110? http://wiki.td-er.nl/index.php?title=YouLess Ich hatte ja schon einen Thread dazu aufgemacht http://forum.fhem.de/index.php/topic,16105.msg136438.html#new
Youless LS110 ist nicht OBIS kompatibel. Ich habe das Modul etwas erweitern (Gerätetyp LS110), bin mir aber nicht sicher, ob das gut ist. Gleiches gilt ja eigentlich auch für den VOLKSZÄHLER.
OBIS ist meines Erachtens ein zukunftssicherer Standard der unter den Versorgern international anerkannt ist und deshalb bald alle ereilen wird.
Bitte künftig für Rückfragen zum JSONMETER einen neuen Thread aufmachen.
Hallo Zwiebel,
ich habe die Vermutung dass nach einer Änderung an Blocking.pm das 70_EFR Modul nicht mehr stabil läuft.
Das Problem ist ein FHEM Absturz....
Letzte Meldung im Logfile:
2014.03.25 08:06:04 1: CallBlockingFn: Can't connect to localhost:7072
Seit dem 16.03 gibt es hier eine Änderung....
[r5232] (4.0 kB) by rudolfkoenig
Blocking.pm: require DevIo.pm for modules without DevIo.pm but setting
Scheint der Zusammenhang für dich schlüssig...
Gruß Manuel
Hallo Zwiebel,
mit dem EFR-Modul haben die Probleme nichts zu tun...
Bin noch am suchen...
Gruß Manuel