Neues Modul 70_EFR.pm - N-ERGIE - Drehstromzähler

Begonnen von Zwiebel, 22 Dezember 2013, 18:56:59

Vorheriges Thema - Nächstes Thema

Zwiebel

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

Petrosilius Zwackelmann

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
FHEM 6 auf RaspPi V3:
HM_LAN / CUNX / HUEBridge /OneWire / Homebridge / SONOS / Harmony

Petrosilius Zwackelmann

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
FHEM 6 auf RaspPi V3:
HM_LAN / CUNX / HUEBridge /OneWire / Homebridge / SONOS / Harmony

Zwiebel

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

tupol

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

Zwiebel

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

tupol

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

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

Zwiebel

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

tupol

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.

tupol

Hallo Zwiebel,

da hier nichts mehr weiter gepostet wurde: Bist Du noch an der Sache dran?

Gruß

Tupol

Zwiebel

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

Petrosilius Zwackelmann

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
FHEM 6 auf RaspPi V3:
HM_LAN / CUNX / HUEBridge /OneWire / Homebridge / SONOS / Harmony

Zwiebel

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

tupol

Ich hatte ja schon geschrieben, dass ich das Modul nicht zum laufen bekommen habe, weil ich die einzustellenden Attribute nicht verstanden habe.