Ich habe an einer HM- Funk Steckdose einen Entfeuchter hängen.
Ich würde jetzt gerne die „on“ Zeiten der Steckdose pro Tag/Woche anzeigen lassen.
Meine Idee:
Daraus bekomme ich eine Zeit in dem Format z.B. 02:15.
Nun stehe ich auf dem Schlauch.
Das Script würde ich starten, wenn die Steckdose geschaltet wird. Dann ist aber das Ergebnis 01:00.
(Die eine Stunde kommt wohl durch die Zeitzone).
Hat einer von Euch eine Idee?
PS: Habe auch schon im Forum gesucht aber leider nichts ähnliches gefunden.
Ich nutzte folgendes Universalscript, das gleichzeitig den Stromverbrauch festhält.
In der Geräte-Instanz müssen dazu 3 Float-Variablen mit festen Namen angelegt werden.
„Leistung“, Profil Watt, Wattzahl des Gerätes einmalig einstellen
„letzte Änderung“
„Stromverbrauch“, Profil KWh
Dann ein Ereignis auf die Statusvariable des Geräts bei Variablenänderung auf das Script setzen
Du kannst ja statt des Verbrauchs, die Zeit addieren.
Gruß, Peter
// Zeit berechnen, wie lange ein Gerät eingeschaltet war
// und dann den Stromverbrauch berechnen
// Geräte = "FS20" oder "HomeMatic Device"
//
// folgende Variablen je Gerät (Instanz) einrichten:
// - Leistung float ~Watt.3680
// - Stromverbrauch float ~Electricity loggen als Zähler
// - letzte Änderung float
$EreignisInfo = IPS_GetEvent($_IPS['EVENT']);
$id_var = $EreignisInfo['TriggerVariableID'];
$id_geraet = IPS_GetParent($id_var);
$modul = IPS_GetInstance($id_geraet)['ModuleInfo']['ModuleName'];
IF($modul == "FS20")
$id_status = IPS_GetObjectIDByName("Status",$id_geraet);
ELSE
$id_status = IPS_GetObjectIDByName("STATE",$id_geraet);
$id_zuletzt = IPS_GetObjectIDByName("letzte Änderung",$id_geraet);
$id_kwh = IPS_GetObjectIDByName("Stromverbrauch",$id_geraet);
$id_kw = IPS_GetObjectIDByName("Leistung",$id_geraet);
$kw = GetValueFloat($id_kw)/1000/3600; // Watt/1000=kw/3600=pro Sekunde
$status = GetValueBoolean($id_status);
$letzte = GetValueFloat($id_zuletzt);
$var = IPS_GetVariable($id_status);
$akt = $var['VariableUpdated'];
IF ($status == false) // Gerät wurde ausgeschaltet
{
$zeit = $akt - $letzte;
$verbrauch = $kw * $zeit + GetValueFloat($id_kwh);
SetValueFloat($id_kwh, $verbrauch);
}
SetValueFloat($id_zuletzt, $akt);