Siemens TD-3511 über IR-USB.Lesekopf auslesen und in fhem grafisch darstellen

Begonnen von Reinisch, 29 November 2014, 19:21:46

Vorheriges Thema - Nächstes Thema

Reinisch

Hi,

Ich benutze einen PI und den IR USB Lesekopf von VZ um den Siemens TD-3511 auszulesen.
Zum testen habe ich das Perl Script von VZ-org benutzt.
Zuerst wollte ich die Daten mit VZ einlese, lass aber das VZ nicht stabil auf den PI läuft.
Dann fand ich solarview und d0 Konverter. Leider blieb der Erfolg aus.
Der d0 Konverter gab keine Werte aus.

Zitat*************************************************
*       D0-FB Proxy fuer SolarView@Fritzbox     *
*                  Version V 1.10h              *
*    solarview-fb starten mit den Parametern    *
*          Wechselrichter-IP  : 127.0.0.1       *
*          Wechselrichter-Port: 11000           *
*      zusaetzliche Infos mit ./d0-fb -d        *
*************************************************

Ueberwache nun den D0 - Konverter auf Port /dev/lesekopf1
d0-fb Version V 1.10h, Port 11000
build Oct  6 2014 17:14:37
build Oct  6 2014 17:14:37
Parameter:
-p /dev/lesekopf1 -l 11000 -d -cs7 -p /dev/lesekopf1 -l 11000 -d -cs7

4
4
1
Running on Linux
d0-fb: FATHER waiting for CHILD to die...

d0-fb: CHILD running as pid 4340
d0-fb startet...
d0-fb - Starte Mainloop
d0-fb - Starte TCP-Server
Starting TCPServer port 11000
Entering LoadOffset()
total_offset.txt nicht gefunden
jahres_offset.txt nicht gefunden
Leaving LoadOffset()
Enter CalcTagesErtrag()
CalcTagesErtrag()
Geliefert: Tagesertrag[1]: 0.000 Gesamt: 0.000
Bezogen: Tagesertrag[1]: 0.000 Gesamt: 0.000
CalcMonatsErtrag()
Diesen Monat gefunden
Letzten Monat gefunden
Monat geliefert [WR 1]: 0.0 Gesamt: 0.0
Monat bezogen [WR 1]: 0.0 Gesamt: 0.0
Entering CalcJahresErtrag()
bdate: 14 LastYear: 13
bdate: 13 LastYear: 13
Jahresertrag: 0.0 Gesamt: 0.0 LetztesJahr: 0.0
Jahresbezug: 0.0 Gesamt: 0.0 LetztesJahr: 0.0
Entering WriteCacheFiles(1)
Leaving WriteCacheFiles()
Entering Mainloop
Server-socket() is OK
Server-setsockopt() is OK
Using 0.0.0.0, listening at 11000
Server-bind() is OK
Server-Ready for client connection...
Warte auf Daten (29.11.2014 18:52:20)
Reset Temp-Values
Schreibe request
2F 3F 21 0D 0A
Warte nun auf Antwort...

Schreibe request 1
06 30 30 30 0D 0A
Warte nun auf Antwort 1...
Reading RX
Len: -1 time: 2 buffer: 0 qry: 1

Len: 0
Entering CalcTagesErtrag_neu()
   TagesErtrag_neu[0]: 0.0 kWh (0.0 - 0.0)
   TagesBezug_neu[0]: 0.0 kWh (0.0 - 0.0)
Leaving CalcTagesErtrag_neu()
Entering CalcMonatsErtrag_neu()
   MonatsErtrag_neu[0]: 0.0 kWh (0.0 - 0.0)
   MonatsBezug_neu[0]: 0.0 kWh (0.0 - 0.0)
Leaving CalcMonatsErtrag_neu()
Entering CalcJahresErtrag_neu()
   JahresErtrag_neu[0]: 0.0 kWh (0.0 - 0.0)
   JahresBezug_neu[0]: 0.0 kWh (0.0 - 0.0)
Leaving CalcJahresErtrag_neu()
Enter PrepareAnswer()
Answer[0] = {01;FB;3E|64:DYR=E;DMT=B;DDY=1D;THR=12;TMI=34;PIN=1C20;TYP=2706;SYS=4E28|12B6}
Leaving PrepareAnswer()
Saving CacheFiles
Entering CalcTagesErtrag_neu()
   TagesErtrag_neu[0]: 0.0 kWh (0.0 - 0.0)
   TagesBezug_neu[0]: 0.0 kWh (0.0 - 0.0)
Leaving CalcTagesErtrag_neu()
Entering CalcMonatsErtrag_neu()
   MonatsErtrag_neu[0]: 0.0 kWh (0.0 - 0.0)
   MonatsBezug_neu[0]: 0.0 kWh (0.0 - 0.0)
Leaving CalcMonatsErtrag_neu()
Entering CalcJahresErtrag_neu()
   JahresErtrag_neu[0]: 0.0 kWh (0.0 - 0.0)
   JahresBezug_neu[0]: 0.0 kWh (0.0 - 0.0)
Leaving CalcJahresErtrag_neu()
Entering WriteCacheFiles(0)
Leaving WriteCacheFiles()
Enter PrepareAnswer()
Answer[0] = {01;FB;3E|64:DYR=E;DMT=B;DDY=1D;THR=12;TMI=34;PIN=1C20;TYP=2706;SYS=4E28|12B6}
Leaving PrepareAnswer()
Warte auf Daten (29.11.2014 18:52:23)
Reset Temp-Values
Schreibe request
2F 3F 21 0D 0A
Warte nun auf Antwort...

Schreibe request 1
06 30 30 30 0D 0A
Warte nun auf Antwort 1...
Reading RX
Len: -1 time: 2 buffer: 0 qry: 1

Len: 0
Entering CalcTagesErtrag_neu()
   TagesErtrag_neu[0]: 0.0 kWh (0.0 - 0.0)
   TagesBezug_neu[0]: 0.0 kWh (0.0 - 0.0)
Leaving CalcTagesErtrag_neu()
Entering CalcMonatsErtrag_neu()
   MonatsErtrag_neu[0]: 0.0 kWh (0.0 - 0.0)
   MonatsBezug_neu[0]: 0.0 kWh (0.0 - 0.0)
Leaving CalcMonatsErtrag_neu()
Entering CalcJahresErtrag_neu()
   JahresErtrag_neu[0]: 0.0 kWh (0.0 - 0.0)
   JahresBezug_neu[0]: 0.0 kWh (0.0 - 0.0)
Leaving CalcJahresErtrag_neu()
Enter PrepareAnswer()
Answer[0] = {01;FB;3E|64:DYR=E;DMT=B;DDY=1D;THR=12;TMI=34;PIN=1C20;TYP=2706;SYS=4E28|12B6}
Leaving PrepareAnswer()
Warte auf Daten (29.11.2014 18:52:26)
Reset Temp-Values

Dann fand ich das fhem SMLUSB Modul.
In die fhem.cfg trug ich folgendes ein:

Zitat
define EHZ_P SMLUSB /dev/lesekopf1@9600
attr EHZ_P alias Momentanleistung
attr EHZ_P event-min-interval *:30
attr EHZ_P group Stromzähler (EHZ)
attr EHZ_P icon measure_power
attr EHZ_P room Energie
attr EHZ_P stateFormat {no warnings 'numeric' ;;;; sprintf((ReadingsVal("EHZ_P","Momentanleistung", 0)))." Watt"}

Das Log von fhem gab folgendes aus:

Zitat2014.11.29 19:07:10 1: Including fhem.cfg
2014.11.29 19:07:10 3: telnetPort: port 7072 opened
2014.11.29 19:07:11 3: WEB: port 8083 opened
2014.11.29 19:07:11 3: WEBphone: port 8084 opened
2014.11.29 19:07:11 3: WEBtablet: port 8085 opened
2014.11.29 19:07:11 2: eventTypes: loaded 0 events from ./log/eventTypes.txt
2014.11.29 19:07:12 3: Opening EHZ_P device /dev/lesekopf1
2014.11.29 19:07:12 3: Setting EHZ_P baudrate to 9600
2014.11.29 19:07:12 3: EHZ_P device opened
2014.11.29 19:07:12 1: usb create starting
2014.11.29 19:07:13 3: Probing CUL device /dev/ttyAMA0
2014.11.29 19:07:14 3: Probing TCM_ESP3 device /dev/ttyAMA0
2014.11.29 19:07:14 3: Probing FRM device /dev/ttyAMA0
2014.11.29 19:07:19 1: usb create end
2014.11.29 19:07:19 2: ""
2014.11.29 19:07:19 0: Server started with 10 defined entities (version $Id: fhem.pl 6913 2014-11-08 10:32:44Z rudolfkoenig $, os linux, user pi, pid 4414)

Das Ziel ist es den den Ertrag und den Bedarf grafisch in fhem anzuzeigen.
Ich bräuchte wirklich dringend Hilfe weil ich zur Zeit echt nicht weiter weis.

Reinisch