FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: IROC_KNX am 05 November 2014, 19:26:39

Titel: Verbrauchswert mA umrechnen
Beitrag von: IROC_KNX am 05 November 2014, 19:26:39
Hallo zusammen,

ich hab jetzt schon mehrmals versucht mir anhand von anderen Einträgen und Lösungsvorschlägen weiterzuhelfen, aber ich bekomme es nicht selber hin.
Mein Aktor liefert mir folgende Werte:
2014-11-05_19:12:18 Strom_Kanal_A 0 mA
2014-11-05_19:12:26 Strom_Kanal_A 77 mA
2014-11-05_19:12:26 Strom_Kanal_A 466 mA
2014-11-05_19:12:26 Strom_Kanal_A 563 mA
2014-11-05_19:12:27 Strom_Kanal_A 596 mA
2014-11-05_19:12:28 Strom_Kanal_A 612 mA
2014-11-05_19:12:28 Strom_Kanal_A 477 mA
2014-11-05_19:12:29 Strom_Kanal_A 160 mA
2014-11-05_19:12:29 Strom_Kanal_A 54 mA
2014-11-05_19:12:29 Strom_Kanal_A 0 mA
2014-11-05_19:12:30 Strom_Kanal_A 439 mA
2014-11-05_19:12:31 Strom_Kanal_A 548 mA
2014-11-05_19:12:31 Strom_Kanal_A 596 mA
2014-11-05_19:12:33 Strom_Kanal_A 267 mA
2014-11-05_19:12:33 Strom_Kanal_A 94 mA
2014-11-05_19:12:33 Strom_Kanal_A 45 mA
2014-11-05_19:12:34 Strom_Kanal_A 0 mA

Wie kann ich die Werte in Watt umrechnen? Als Bonus vielleicht Gesamt Tages/Monats Verbrauch?
Im SVG Plot werden die Werte auch angezeigt. Aber leider nur in mA.
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: franky08 am 05 November 2014, 19:38:30
P=U*I Also P=U*I*1000 Das in die myUtils auslagern und dort die Leistung berechnen. Die Multiplikation mit 0,001 rechnet mA in A um

VG
Frank
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: Dirk am 05 November 2014, 19:39:34
Ganz einfach.
Hallo,

du rechnest Strom * Spannung und bekommst dann Watt.
Also mA * V
Wenn du keinen Separaten Kanal hast der die aktuelle Spannung angibt, dann kannst du mit 230V rechnen.
Dann musst du aber davon ausgehen dass dein Ergebnis nicht ganz korrekt ist, da die Spannung um 10% schwanken kann.
Der Energieverbrauch, also Wh bzw. kWh errechnest du indem du die Zeit mit berücksichtigst.
Wenn also ein Verbraucher eine Stunde lang 1000 W also ca. 4,35 A bei 230V verbraucht dann hast du einen Energieverbrauch von 1000 Wh bzw. 1 kWh.

Für dem Gesamtverbrauch musst du dann nur noch den Verbrauch im entsprechenden Zeitraum zusammenrechnen.

Gruß
Dirk
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: IROC_KNX am 05 November 2014, 19:50:38
Danke für die schnellen Antworten.
@franky08: Wie muss ich das in MyUtils eintragen?
Aktuell hab ich in der 99_MyUtils nur die Werte für die Heizkörper Thermostate eingetragen
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: franky08 am 05 November 2014, 20:09:42
Bin im Moment noch auf Arbeit, habe jetzt leider keine Zeit. Poste nachher nochmal was dazu. Du kannst über ReadingsVal die Werte vom Sensor auslesen, wenn der Sensor auch die Spannung liefert, kannst du das Reading genauso auslesen. Dann berechnest du die Watt oder was du haben willst, so wie von Dirk beschrieben und gibst den Wert mit return $ zurück oder schreibst den errechneten Wert mit setreading in dein Device und hast dann dort, als neues Reading die Angabe in Watt.

So, wie hier in dem Beispiel

sub regen_tag()
{
my $y1 = ReadingsVal("myWS1080","Rain-total","999" );
my $y2 = ReadingsVal("myWS1080","Rain-total_min_day","999" );
my $y3 = ($y1 - $y2);
my $y4 = int(100 * $y3 + 0.5) / 100;
fhem "setreading Regen_diff_dummy state $y4";
fhem "setreading myWS1080 Regen_Tag $y4";

return ($y4);
}


Das ist nur ein Beispiel, wie ich die Regendifferenz berechne, soll dir nur aufzeigen, wie du es berechnen kannst.

VG
Frank
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: Puschel74 am 05 November 2014, 20:21:31
Hallo,

als notify auf das Reading mA würde ich das so in etwa lösen:
define Leistung_berechnen notify mA_Messer:mA.* {
my $Spannung=ReadingsVal("mA_Messer","Spannung",99);
my $mA=$EVENT;
my $Watt=$Spannung*($mA*1000);
fhem("setreading mA_Messer Leistung $Watt");
}

Voraussetzung: mA_Messer ist das Device das mA und Spannung mißt und liefert.
Das Reading mA wird aktualisiert und löst ein Event aus auf das das notify triggern kann.

Der Code strotzt sicher noch vor Fehler (nur so aus dem Kopf geschrieben) aber die sollten sich schnell beheben lassen.

ZitatDie Multiplikation mit 0,001 rechnet mA in A um
Äh, hab ich in Mathe gepennt  :o
Um von mA auf A zu kommen muss ich wohl eher mit 1000 multiplizieren.

Grüße
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: franky08 am 05 November 2014, 20:37:03
@Puschel
Meinte ich auch, bin etwas abgelenkt, fahre "nebenbei" noch eine Show. Der Rechner auf dem ich schreibe steuert eigendlich das Amping  ::)

VG
Frank
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: Puschel74 am 05 November 2014, 20:38:42
Dann steuer du mal besser deine Show  ;)
FHEM kommt auch mal nen Abend ohne dich aus  ;D
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: IROC_KNX am 05 November 2014, 20:42:52
Der Aktor liefert mir keine Spannung.
Muss ich dann in den Befehl "Spannung" direkt mit 230 ersetzen?


Zitat von: Puschel74 am 05 November 2014, 20:21:31
Hallo,

als notify auf das Reading mA würde ich das so in etwa lösen:
define Leistung_berechnen notify mA_Messer:mA.* {
my $Spannung=ReadingsVal("mA_Messer","Spannung",99);
my $mA=$EVENT;
my $Watt=$Spannung*($mA*1000);
fhem("setreading mA_Messer Leistung $Watt");
}

Voraussetzung: mA_Messer ist das Device das mA und Spannung mißt und liefert.
Das Reading mA wird aktualisiert und löst ein Event aus auf das das notify triggern kann.

Der Code strotzt sicher noch vor Fehler (nur so aus dem Kopf geschrieben) aber die sollten sich schnell beheben lassen.
Äh, hab ich in Mathe gepennt  :o
Um von mA auf A zu kommen muss ich wohl eher mit 1000 multiplizieren.

Grüße
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: Puschel74 am 05 November 2014, 20:48:46
Hallo,

ist kein Befehl sondern eine Variable.

my $Watt=230*($mA*1000);

Mit den genannten Ungenauigkeiten da die Spannung schwankt.
Weiters wird hier auch kein cos Φ berücksichtigt d.h. die Formel gilt nur für rein ohmsche Verbraucher.

Grüße
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: IROC_KNX am 16 November 2014, 19:28:51
Guten Abend Puschel,

danke für deine Bemühungen,
ich hab mich heute nochmal hingesetzt und ausprobiert.

In die 99_myUtils steht jetzt:
}
define Leistung_berechnen notify EIB 4301:mA.* {
my $Spannung=ReadingsVal("EIB 4301","Spannung",99);
my $mA=$EVENT;
my $Watt=230*($mA*1000);
fhem("setreading EIB 4301 Leistung $Watt");
}
1;


Aber außer Fehlermeldungen beim speichern bekomme ich nichts.
Kann mir noch jemand auf die Sprünge helfen?
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: franky08 am 16 November 2014, 19:34:33
Nur mal so, Puschels Beispiel ist ein notify und das gehört NICHT in die 99_myUtils sondern im Webif von fhem eingeben.
Erst das notify in der Komanndozeile anlegen:

define Leistung_berechnen notify EIB 4301:mA.* {}

und dann den restlichen Code in der DEF in die geschweiften Klammern.

VG
Frank
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: IROC_KNX am 16 November 2014, 20:39:58
Danke Frank,

das hab ich nun gemacht.
Nachdem ich dann den Code in die Klammer eingegeben und gespeichert hatte, kommt jetzt folgende Meldung:
Unknown command my, try help. Unknown command my, try help. Unknown command fhem("setreading, try help. Unknown command },

So sieht jetzt der komplette Eintrag aus:
define Strom_Kanal_A EIB 4301
attr Strom_Kanal_A IODev EIB
attr Strom_Kanal_A dummy 1
attr Strom_Kanal_A model current-mA
attr Strom_Kanal_A room Strommessung
define FileLog_Strom_Kanal_A FileLog ./log/Strom_Kanal_A-%Y.log Strom_Kanal_A
define SVG_FileLog_Strom_Kanal_A_1 SVG FileLog_Strom_Kanal_A:SVG_FileLog_Strom_Kanal_A_1:CURRENT
attr SVG_FileLog_Strom_Kanal_A_1 room Strommessung
define Leistung_berechnen notify EIB 4301:mA.* {my $Spannung=ReadingsVal("EIB 4301","Spannung",99);
my $mA=$EVENT;
my $Watt=230*($mA*1000);
fhem("setreading EIB 4301 Leistung $Watt")}

Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: IROC_KNX am 17 November 2014, 18:52:39
Ist das jetzt so richtig?
Wenn ja, wo sehe ich dann die berechneten Werte?
Im Plot z.B. kann ich nur den mA Wert anwählen.
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: Puschel74 am 17 November 2014, 20:39:51
Hallo,

entweder findet sich im Device ein neues Reading oder im Logfile eine Fehlermeldung.

Grüße
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: IROC_KNX am 17 November 2014, 22:23:50
Leider nein,
Kein Fehler im Logfile und kein neues Reading.
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: gero am 18 November 2014, 11:28:20
Dein Device heißt "Strom_Kanal_A" und nicht "EIB 4301".

Gruß,
Gero
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: IROC_KNX am 18 November 2014, 18:31:47
Danke Gero für den Tip.
Glaube jetzt hab ich es fast.
Nun steht da, dass das neue Notify zugeordnet ist.
Aber kein neuer Wert
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: franky08 am 18 November 2014, 19:32:20
Hallo, wenn dein notify richtig funktioniert, müsste in den Readings deines Devices (EIB 4301) ein neues Reading auftauchen, welches die Leistung ausgibt. Wenn kein neues Reading da ist, stimmt das notify nicht, dann müsstest du aber eine Fehlermeldung im Log haben.

VG
Frank
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: gero am 18 November 2014, 19:58:35
Dann poste doch nochmal deinen korrigierten Code vom notify.
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: IROC_KNX am 18 November 2014, 21:20:17
Hier mein aktuelles Notify
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: Puschel74 am 18 November 2014, 21:24:18
Solange Strom_Kanal_A das Reading mA nicht aktualisiert wird auch nicht passieren.
EventMonitor schauen und warten, warten warten bis das Reading kommt und dann schauen.
Liest das
http://forum.fhem.de/index.php/topic,16311.0.html (http://forum.fhem.de/index.php/topic,16311.0.html)
niemand mehr  :o
Titel: Antw:Verbrauchswert mA umrechnen
Beitrag von: gero am 18 November 2014, 22:22:47
Ich denke du kannst ewig auf ein notify event warten, wenn die regexp nicht stimmt. Probier mal folgenden Code:

define Leistung_berechnen notify mA_Messer:.*mA {
my $Spannung=ReadingsVal("mA_Messer","Spannung",230);
my $mA=$EVTPART0;
my $Watt=$Spannung*($mA*1000);
fhem("setreading mA_Messer Leistung $Watt");
}


Falls es dann immer noch nicht funktioniert probier folgendes:
define Leistung_berechnen notify mA_Messer:.* {
  Log3 undef,1,"EVENT: $EVENT";
}

Und pass danach die regexp und den Code an, je nachdem, wie das Event wirklich aussieht.
Wobei du das natürlich auch vorher schon im EventMonitor sehen solltest ;)

Gruß,
Gero