Strom messen mit Owl Energiemonitor

Jepp. Am Display ist der USB Anschluss.
Ich hab erstmal nur einen Sensor, und werde mir die weiteren Nachbestellen.

EDIT: Grade ist mir noch eingefallen, mann könnte den einen Sensor ja auch über N legen, solange man keine Geräte angeschlossen hat die mit 400V Arbeiten.

Ich denke nicht, 3x 220V Geräte mit gleicher last würden auf N zum Zähler hin keinen Strom fließen lassen, nur untereinander über N zum nächsten der drei Verbraucher…

Korrigiert mich, wenn das so nicht richtig ist…

Hm, an für sich wäre das ja eine „relativ“ günstige Möglichkeit den Stromverbrauch zu monitoren.

Ist denn schon jemand weitergekommen was die Einbindung an IPS angeht oder so? Wie sieht es mit zuverlässigkeit / Genauigkeit aus?

@ simba69
Stimmt über N fließt nur was bei unsymetrischer Belastung
Strom im N bei unsymetrischer Belastung
Dann also doch 3 Sensoren.
@metzench
Ich werde heute abend mal den Virutellen ComPort ausspionieren.

Dann warte ich mal auf Updates. :slight_smile:

Hi was würdet Ihr mir empfehlen ?

Ich würde gerne den Gesammtstromverbrauch der Wohnung und den Verbrauch der Mac’s mit IPS erfassen.

Würde das mit dem OWL Ding gut gehen, weil der Preis ist der Hammer.

Oder doch auf den Standart setzen für viel Geld :

IPS Module, 3 Phasenstromzähler mit S0, 1 Phasenstromzähler mit SO.

Gibt es den ein Tool mit dem ich einen geöffneten COMPort überwachen kann?
Mit all den Tools die ich so finde kommt die Meldung der Port ist geöffnet. Wenn ich die exe vom OWL abschieße kann ich den Port zwar öffnen, aber es kommen natürlich keine Daten mehr an.

Ich würde ja erst das Tool, dann die Applikation starten.! :slight_smile:

hmpf jo das klappt…
dann wollen wir mal gucken…

Vielleicht gibt es noch was besseres. Das / Die exe zur Kommunikation kann man auch mit Parametern Starten.

C:\Program Files\2SE\The OWL USB Connect 2>theowl_be

Usage: theowl_be [-r:  register service                    |
                  -u:  unregister service                  |
                  -d:  run in console window (debug)       |
                  -s:  start service                       |
                  -x:  open data folder                    |
                  -t:  [tariff_uid] test tariff time/cost  |
                  -k:  kill database (no undo - no warning)|
                  -kq: kill or archive database]

Wenn ich nun mit -d Starte kommen jede minute solche werte an

[00321507:008102:0000125c]      INSERT OR
738, 2012, 8, 26, 18, 5, 0.024500, 5.63500
000, 5.635000, '2012-08-26 18:05:00.000');

Der letzte teil sollte sehr eindeutig sein. (Datum Uhrzeit) Kann ich die exe nicht auch mit IPS Starten, und die ausgaben auswerten?

EDIT Ich hab die Daten jetzt soweit analysiert:

[0061a8be:0007cd:00000a20]      INSERT OR IGNORE INTO energy_history VALUES(2076738, 2012, 8, 26, 18, 57, 0.019833, 4.561667, 43, 1250, 0.019833, 0.019833, 4.561667, 4.561667, '2012-08-26 18:57:00.000');

Der Wert 4.561667 ist der KW pro min auf meinem ersten (und im Moment eintigen) Kanal
also muss ich rechnen 4.561667 * 60 / 1000 um die Momenten KW zu bekommen 0,27370002 KW

Kann er nur eine Gesamtsumme aller Phasen übertragen? Mich würde interessieren, ob er auch 3 Phasen getrennt übertragen kann. Was würde denn passieren, wenn Du deinen einzigen Sensor an einen anderen Port steckst, Wandert der aktuelle Verbrauchswert auf eine andere Position im String?

Es können alle Phasen / Kanäle einzeln ausgewertet werden. Es der String verlängert sich dann.
Jetzt ist nur die Frage wie kann ich die ausgaben im Terminal an IPS übertragen ?

Cutter anlegen, Registervariable anlegen, Script anlegen. Mit explode die Daten extrahieren. Ist alles Komma getrennt und schon hast Du die einzelnen Daten zur Verfügung.

Sorry für die vielleicht blöde frage, aber wo stelle ich den ein das die Daten aus der exe kommen. gibt es da eine Anleitung? Die Daten kommen ja nur jede Minute. Da läuft ja mein Script in ein Timeout.

Ich denke über den Comport oder nicht.

nein das klappt leider nicht… Du ausgaben kommen im moment in einem Terminal Fenster an.

Du kannst den Comport nicht doppel belegen.

Hab ich auch nicht. Wenn ich den ComPort Öffne kommt nichts an. Ich denke es muss erst ein befehl gesendet werden, damit die Daten ankommen.
Hier der ganze log es ComPort wenn ich den Dienst starte:

0.00001478	theowl_be.exe	IOCTL_SERIAL_SET_TIMEOUTS	Silabser0	SUCCESS	RI:0 RM:0 RC:1000 WM:0 WC:1000	
0.00000780	theowl_be.exe	IOCTL_SERIAL_GET_BAUD_RATE	Silabser0	SUCCESS		
0.00000657	theowl_be.exe	IOCTL_SERIAL_GET_LINE_CONTROL	Silabser0	SUCCESS		
0.00000575	theowl_be.exe	IOCTL_SERIAL_GET_CHARS	Silabser0	SUCCESS		
0.00000616	theowl_be.exe	IOCTL_SERIAL_GET_HANDFLOW	Silabser0	SUCCESS		
0.00000616	theowl_be.exe	IOCTL_SERIAL_GET_BAUD_RATE	Silabser0	SUCCESS		
0.00000616	theowl_be.exe	IOCTL_SERIAL_GET_LINE_CONTROL	Silabser0	SUCCESS		
0.00000575	theowl_be.exe	IOCTL_SERIAL_GET_CHARS	Silabser0	SUCCESS		
0.00000575	theowl_be.exe	IOCTL_SERIAL_GET_HANDFLOW	Silabser0	SUCCESS		
0.00277870	theowl_be.exe	IOCTL_SERIAL_SET_BAUD_RATE	Silabser0	SUCCESS	Rate: 250000	
0.00194144	theowl_be.exe	IOCTL_SERIAL_SET_RTS	Silabser0	SUCCESS		
0.00296800	theowl_be.exe	IOCTL_SERIAL_SET_DTR	Silabser0	SUCCESS		
0.00197100	theowl_be.exe	IOCTL_SERIAL_SET_LINE_CONTROL	Silabser0	SUCCESS	StopBits: 1 Parity: NONE WordLength: 8	
0.00300372	theowl_be.exe	IOCTL_SERIAL_SET_CHAR	Silabser0	SUCCESS	EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13	
0.00298196	theowl_be.exe	IOCTL_SERIAL_SET_HANDFLOW	Silabser0	SUCCESS	Shake:1 Replace:40 XonLimit:256 XoffLimit:256	
1.00011785	theowl_be.exe	IRP_MJ_READ	Silabser0	TIMEOUT	Length 0: 	
0.99999877	theowl_be.exe	IRP_MJ_READ	Silabser0	TIMEOUT	Length 0: 	
0.52954652	theowl_be.exe	IRP_MJ_READ	Silabser0	SUCCESS	Length 11: .IDTCMV001.	
0.00186095	theowl_be.exe	IOCTL_SERIAL_PURGE	Silabser0	SUCCESS	Purge: TXCLEAR RXCLEAR	
0.00190448	theowl_be.exe	IRP_MJ_WRITE	Silabser0	SUCCESS	Length 1: Z	
0.00159076	theowl_be.exe	IRP_MJ_READ	Silabser0	SUCCESS	Length 11: Y....... ..	
0.00011949	theowl_be.exe	IRP_MJ_READ	Silabser0	SUCCESS	Length 11: .IDTWAITPCR	
0.00161417	theowl_be.exe	IOCTL_SERIAL_PURGE	Silabser0	SUCCESS	Purge: TXCLEAR RXCLEAR	
0.00190489	theowl_be.exe	IRP_MJ_WRITE	Silabser0	SUCCESS	Length 1: .	
0.99973966	theowl_be.exe	IRP_MJ_READ	Silabser0	TIMEOUT	Length 0: 	
1.00000000	theowl_be.exe	IRP_MJ_READ	Silabser0	TIMEOUT	Length 0: 	
1.00000616	theowl_be.exe	IRP_MJ_READ	Silabser0	TIMEOUT	Length 0: 	
1.00000452	theowl_be.exe	IRP_MJ_READ	Silabser0	TIMEOUT	Length 0: 	
0.98561745	theowl_be.exe	IRP_MJ_READ	Silabser0	SUCCESS	Length 11: .IDTWAITPCR	
0.00145895	theowl_be.exe	IOCTL_SERIAL_PURGE	Silabser0	SUCCESS	Purge: TXCLEAR RXCLEAR	
0.00193076	theowl_be.exe	IRP_MJ_WRITE	Silabser0	SUCCESS	Length 1: .	
0.99914015	theowl_be.exe	IRP_MJ_READ	Silabser0	TIMEOUT	Length 0: 	
0.99998973	theowl_be.exe	IRP_MJ_READ	Silabser0	TIMEOUT	Length 0: 	
0.99998727	theowl_be.exe	IRP_MJ_READ	Silabser0	TIMEOUT	Length 0: 	
0.00001560	theowl_be.exe	IRP_MJ_CLEANUP	Silabser0	SUCCESS		
0.00657575	theowl_be.exe	IRP_MJ_CLOSE	Silabser0	SUCCESS		

Und hier dazu die Ausgabe im DEBUG Terminal

C:\Program Files\2SE\The OWL USB Connect 2>theowl_be -d

service_debug(): running....
[00a866b1:000000:00000540]      main_init(): theowl_be 02.00.15
[00a866c1:000010:00000540]      main_opendb(): OK
[00a866c1:000000:00000540]      energy_init(>)
[00a866c1:000000:00000540]      tse_init(>)
[00a866c1:000000:00000540]      tenxhid_init(>)
[00a866d0:00000f:00000540]      tenxhid_init(): OK
[00a866d0:000000:00000540]      tse_init(): OK [opt = 0]
[00a866d0:000000:00000d48]      tse_thread(): started up OK
[00a866d0:000000:00000540]      tseuart_init(>)
[00a866d0:000000:00001994]      tseuart_thread(): started up OK
[00a866d0:000000:000006c4]      tseuart_thread(): started up OK
[00a866d0:000000:00000540]      tseuart_init(): OK [opt = 0]
[00a866d0:000000:0000128c]      tseuart_thread(): started up OK
[00a866d0:000000:00000af0]      tseuart_thread(): started up OK
[00a866d0:000000:00000878]      tseuart_thread(): started up OK
[00a866d0:000000:00000540]      db_schemachanged(): OK [changed: '' != 'uid,name
,b1_time,b1_cost,b1_type,b2_time,b2_cost,b2_type,b3_time,b3_cost,b3_type,b4_time
,b4_cost,b4_type,b5_time,b5_cost,b5_type,b6_time,b6_cost,b6_type']
[00a866e0:000010:00000540]      db_dumpsql(): OK [4 rows[
<dataset>
        <rec key="first_run" value="1" />
        <rec key="supply_voltage" value="230" />
        <rec key="ghg_factor" value="43" />
        <rec key="currency_symbol" value="?" />
</dataset>
]]
[00a866e0:000000:00000540]      db_dumpsql(): OK [1 rows[
<dataset>
        <rec uid="uid0" name="Standard" b1_time="0" b1_cost="1050" b1_type="1" b
2_time="0" b2_cost="-1" b2_type="0" b3_time="0" b3_cost="-1" b3_type="0" b4_time
="0" b4_cost="-1" b4_type="0" b5_time="0" b5_cost="-1" b5_type="0" b6_time="0" b
6_cost="-1" b6_type="0" />
</dataset>
]]
[00a866ef:00000f:00000540]      db_dumpsql(): OK [1 rows[
<dataset>
        <rec addr="2076738" name="[Enter name here]" model="60" tariff_uid="uid0
" />
</dataset>
]]
[00a866ef:000000:00000540]      db_dumpsql(): OK [1 rows[
<dataset>
        <rec addr="2076738" year="2010" month="1" day="1" hour="12" min="1" ch1_
amps_avg="0" ch1_kw_avg="0" ghg="43" cost="1250" ch1_amps_min="0" ch1_amps_max="
0" ch1_kw_min="0" ch1_kw_max="0" dt="2010-01-01 12:01:00.000" />
</dataset>
]]
[00a866ff:000010:00000540]      energy_init(): OK [built for 10 sensors]
[00a866ff:000000:00001c74]      energy_thread(0x04ac8483): started up OK
[00a866ff:000000:00000540]      netutl_init(>)
[00a866ff:000000:00000540]      netutl_init(): OK
[00a866ff:000000:00000540]      ifc_init(>)
[00a866ff:000000:00000540]      netutl_startserver(5904, false, true)
[00a866ff:000000:00000540]      netutl_startserver(): OK
[00a8670f:000010:00000540]      ifc_init(): OK
[00a8670f:000000:00001650]      ifc_thread(): started up OK [port = 5904, server
_s = 412]
[00a8670f:000000:00000540]      main_init(): OK
[00a8678b:00007c:00001994]      tseuart_thread(): dongle online [port 9, serial
number 0x001fb042]
[00a8678b:000000:00001994]      tseuart_thread(): port 9 opened at 250000 baud i
n cm160 frame mode
[00a871b9:000a2e:00001c74]      INSERT OR IGNORE INTO energy_history VALUES(2076
738, 2012, 8, 26, 20, 14, 0.037333, 8.586667, 43, 1250, 0.037333, 0.037333, 8.58
6667, 8.586667, '2012-08-26 20:14:00.000');
service_handler(): stopping service....
[00a88d53:001b9a:00000540]      main_free(>)
[00a88d53:000000:00000540]      ifc_free(>)
[00a88d53:000000:00000540]      netutl_stopserver(>)
[00a88d53:000000:00001650]      netutl_accept(): failed
[00a88d53:000000:00001650]      ifc_thread(): shutting down
[00a88d63:000010:00000540]      netutl_free(>)
[00a88d63:000000:00000540]      energy_free(>)
[00a88d73:000010:00001c74]      energy_thread(): shutting down
[00a88d73:000000:00000540]      tseuart_free(>)
[00a88e9b:000128:000006c4]      tseuart_thread(): shutting down
[00a88e9b:000000:0000128c]      tseuart_thread(): shutting down
[00a88e9b:000000:00000af0]      tseuart_thread(): shutting down
[00a88e9b:000000:00000878]      tseuart_thread(): shutting down
[00a890ae:000213:00001994]      tseuart_thread(): shutting down
[00a890bd:00000f:00000540]      tse_free(>)
[00a89205:000148:00000d48]      tse_thread(): shutting down
[00a89205:000000:00000540]      tenxhid_free(>)
[00a89214:00000f:00000540]      main_free(<)

C:\Program Files\2SE\The OWL USB Connect 2>

Setz mal DTR per Script für den Comport auf true.

Kann es sein das

COMPort_SetDTR(13263, true);

nicht geht. COMPort_SetDTR steht auch nicht in der Befehlsliste.
im Moment kommt immer

©IDTCMV001

an