Strom messen mit Owl Energiemonitor

Mein Skript ist übrigens für den OWL+USB

Edit: Da ist noch ein Fehler drin; die Daten für Treibhausgase und Kosten sind noch Bullshit.

Habe da eine Frage: Ich habe mehrere (3) Sender im Einsatz, wie kann ich die mit deinem Script Einzeln auslesen ?

Ich habe das Problem das es bis zu 2 Minuten Verzögerung gibt, bis der Aktuelle Wert in IPS steht, kann man da was machen/optimieren ? Ist das mit deinem Script besser von timing ?

Ich habe leider den OWL+USB, der nur einen Sender ausliest. Umbauen des Skriptes auf drei Sensoren müsste möglich sein, kann ich aber aus besagtem Grund nicht machen und vor Allem nicht testen.

Die Berechnung für CO2 und Kosten ist übrigens wie schon gesagt fehlerhaft, den Teil habe ich bei mir auskomentiert.

Und ich habe noch ein Problem mit dem OWL Monitor: Ich finde das Teil viel zu ungenau. Der angezeigte Wert hat zwar grob was mit dem Verbrauch zu tun, aber so richtig präzise ist das nicht. Wenn ich mit dem Stromzähler des Netzinhabers vergleiche liegen oft einige KWh pro Tag dazwischen.

Insofern hadere ich ein wenig mit dem Gerät.

Ich verwende jetzt statt der Originalsoftware, die dem Gerät beiliegt, die freie Software „Electric Owl“ (einfach mal googeln). Diese scheint mir wesentlich schlanker und sie erzeugt ebenfalls eine SQLite-Datenbank.

Bei der Originalsoftware hatte ich das Problem, dass sie ein Speicherleck hatte, so dass IPS (und das ganze System) nach einiger Laufzeit instabil wurden. Ich hoffe, das ist bei der freien Alternative nicht der Fall.

Das Skript musste ich etwas abändern. Die freie Software scheint z.B. die Stromstärke abzuliefern und nicht die Leistung. Ich beziehe jetzt zur Ermittlung der Nennleistung (U * I) den Messwert der Eingangsspannung von meiner USV. Das sollte natürlich genauer sein, da es hier schon zu gewissen Schwankungen bis ca. 8 V kommt.

Ich werde berichten und, falls ich erfolgreich bin, hier den Quellcode posten.

Und bist du weitergekommen ?

Hier mein Skript, funktioniert soweit gut. Man kann mittels einem Flag zwischen der Originalsoftware und der freien Software „Electric Owl“ umschalten. Bei mir läuft Electric Owl wesentlich stabiler und ressourcenschonender.

<?

// Originalsoftware (false) oder Electric Owl (true) verwenden?
$eowlMode = true;

// falls Electric Owl verwendet wird, Benutzernamen hier eintragen
$eowlUser = 'Administrator';

// Variable, die den Zeitstempel des letzten eingelesenen Datensatzes enhält
// Integer, Profil Unix Timestamp
$idLastTimeStamp = 22128 /*[Hardware\The Owl\Letzter Zeitstempel]*/ ;

// Variablen für den Stromzähler und den Momentanverbrauch
// Beide Float, KWh bzw. KW
$idCounter = 37469 /*[Tableau\Strom\Stromverbrauch\Zählerstand]*/ ;
$idCurrentConsumption = 33676 /*[Tableau\Strom\Stromverbrauch\Momentanverbrauch]*/ ;

// ab hier nichts mehr ändern

// hole den letzten Zeitstempel
$lastValueTimeStamp = GetValue($idLastTimeStamp);
$lastValueTimeStr = date('Y-m-d H:i:s', $lastValueTimeStamp) . '.000';

// Datenbankzugriff
if($eowlMode)
	$db = new sqlite3("C:/Users/" . $eowlUser . "/cm160_data.db");
else
	$db = new sqlite3("C:/ProgramData/2SE/be.db");

$db->query('PRAGMA journal_mode = OFF');

// Hole alle Datensätze seit dem letzten Zeitstempel
if($eowlMode)
	$results = $db->query('SELECT * FROM cm160data WHERE ts > "' .
		$lastValueTimeStr . '" ORDER BY ts ASC');
else
	$results = $db->query('SELECT * FROM energy_history WHERE dt > "' .
		$lastValueTimeStr . '" ORDER BY dt ASC');

// Zählerstand zwischenspeichern
$kwCounterLevel = GetValue($idCounter);

// könnte man einkommentieren, wenn man eine Quelle für die tatsächliche Netzspannung hätte
//$voltage = GetValue(35370 /*[Hardware\USV\Interface\APCUPSD\Smart-UPS 750\VoltIn]*/ );
$voltage = 230;

// Die Datensätze durchgehen
$timeStamp = 0;
while ($row = $results->fetchArray())
{
	if($eowlMode)
	{
		$kw = ($row['current'] * $voltage) / 1000;
	   $timeStamp = strtotime($row['ts']);

		$kwCounterLevel += $kw * (($timeStamp - $lastValueTimeStamp) / (60 * 60));
	   
	   $lastValueTimeStamp = $timeStamp;
	}
	else
	{
		$kw = ($row['ch1_kw_avg'] * 60) / 1000; // kw
		$timeStamp = strtotime($row['dt']);
		$kwCounterLevel += $kw * (1 / 60); // KWh
	}
}

// wenn neue Daten da sind, Variablen schreiben
if($timeStamp > 0)
{
	SetValue($idCounter, $kwCounterLevel);
	SetValue($idCurrentConsumption, $kw);
	
	SetValue($idLastTimeStamp, $timeStamp);
}

?>

Danke für dein Script aber leider ließt er keine Daten aus, in der Software geht alles…

Damit ich helfen kann, müsstest du das mal präzisieren, bzw. selbst etwas nachforschen. Sind z.B. diese Dateipfade bei dir korrekt?

if($eowlMode)
    $db = new sqlite3("C:/Users/" . $eowlUser . "/cm160_data.db");
else
    $db = new sqlite3("C:/ProgramData/2SE/be.db");

Hallo!

Gibt es schon ein Script mit dem man die Kosten Auslesen kann?

Gruß
Erwoolf

Bislang nicht. Ich persönlich würde das einfach in IPS machen.

Hallo,
wie machst du die Kostendarstellung im IPS?

Gibt,s eine kleine Anleitung ??

Bin noch sehr Neu hier im Forum.
Bitte um Hilfe.

Gruß und Danke für die Hilfe
Thomas

bislang mache ich das noch gar nicht. Ist aber ja eigentlich trivial, vor Allem wenn man keinen Nachttarif hat. Man muss nur den KWh-Preis wissen und multiplizieren…

Hallo, bräuchte mal eure Hilfe.

Gibt,s eine kleine Anleitung zur Installations Hilfe?

Ich habe das Problem das ich im Skript einen Fehler bekomme.

Die Datenbank ist bei mir auch nicht in Progam/data !wie muß ich vorgehen ??

Bitte um Hilfe !!

Gruß
Thomas

Hallo, ich würde mich mal gerne einklinken. Bin durch den Thread auf die OWL Geräte aufmerksam geworden aber Blicke nicht so richtig durch.

Hab es so verstanden, das wenn ich vom der Hauptleitung den Gesamtbetrag erfassen möchte 3 von den 1Phasen Klemmen brauche (für knapp 15€), einen Transmitter und natürlich den USB Empfänger. Nun steht aber auf der Aeite, das der Transmitter nicht mehr einzeln zu kaufen ist. Was Brauch ich denn statt dessen? Muss es wirklich das große Teil sein für fast 50€?

Brauch ich diesen Transmitter überall wo ich Daten senden will? Und wie weit ist die Reichweite (der Server ist im Keller, habe noch 3Etagen darüber wo ich Daten erfassen möchte, würde das klappen?

Wie sieht es aus, wenn man einzelne Geräte (z.B. Wasserbett) erfassen möchte, geht das (habe nur was von einzelnen Adern gelesen).

Was für einen Fehler?

-gucken wo die Datenbank liegt
-Pfad entsprechend ändern

@pleibling: Also ich persönlich habe nur dieses OWL+USB mit dem Display. Damit kann man nur eine dreiphasige Leitung insgesamt auslesen, ohne dass man weiß was pro Phase verbraucht wurde. Zu dem anderen Empfänger kann ich nichts sagen, ich habe ihn nicht im Einsatz.

Ok, die „kleinen“ Klemmen sollten auch schon reichen, oder? Habe derzeit einen normalen 63A Drehstommesser derzeit angeschlossen.

Mit den OWL+USB und 2 kleinen Klemmen sowie dem USB Connect kann ich dann die Daten vom Gesamtverbrauch erfassen. Weiterhin habe ich pro Raum eine Sicherung, da würde ich dann gerne den Verbrauch pro Raum erfassen (pro Geräte oder Steckdosenleiste geht ja nicht). Geht das so und wieviele von den Klemmen kann ich pro Transmitter anschließen (der war wenn ich das richtig verstanden hab ja bei den OWL+USB dabei)?

Danke für eure Hilfe :).

Hallo Pleibling,

ich bin noch nicht so Fit in der Programmierung aber zu der Hardware kann ich dir was sagen.

Du brauchst zum Auslesen des Gesamtverbrauch 3 Phasen den OWL+USB ist komplett mit einen Transmitter und 1 Induktivgeber(Klemme) du kannst dann 2 Induktivgeber dazu Bestellen damit kannst du den Gesamtverbrauch von 3 Phasen auslesen.
Den USB Connect brauchst du nur wenn du mehr Transmitter verbinden willst. Du kannst pro. Transmitter 3 Induktivgeber(Klemmen) anschliessen.
Aber es gibt noch einen Vorteil des USB Connect der wird über den USB Port mit Spannung versorgt und das OWL+USB Display muß mit Batterien bestückt werden.
Im Monment kann der Transmitter nicht einzeln bestellt werden nur komplett mit OWL+USB.

Hoffe ich konnte dir einwenig Helfen.

Gruß
Thomas

Danke dir für deine Hilfe. Ich möchte die Daten erfassen und der Server steht in einem anderen Raum, somit denke ich das ich den USB Connect brauche - oder kommt der nicht an den Rechner? Ich hätte gedacht das ist sowas wie ein Funkempfänger, der die Werte in den Rechner bringt.

Weiterhin möchte ich noch ca. 8 Räume erfassen (zusätzlich zu den 3 Phasen), in Anbetracht dessen, das es die Transmitter derzeit nicht einzeln gibt, müsste ich also 4 von den OWL+USB, einen USB Connect und 6 kleine Klemmen bestellen, richtig?

Das sind dann ja mal wider doch schnell ein paar hundert Euros :(.

Hallo,
der Transmitter ist der Funksender für 3 Klemmen und das Display bei OWL+USB ist der Empfänger.
Wenn du aber 8 Räume auslesen willst brauchst du das Display nicht sondern den USB Connect weil nur der bis zu 10 Transmitter auslesen kann.
Wenn du nur 3 Phasen auslesen willst reicht auch das Display das per. USB an den Rechner angschlossen ist aber für die Stromversorgung mit Batterien betrieben wird.

Bei dem Rest ist es so wie du geschrieben hast.

Gruß
Thomas