Modul Anwesenheitssimulation - Änderungswunsch

Ich bin gerade dabei, das Modul zu testen. Dauert halt ein paar Tage bis man etwas sieht. Eines ist mir aber jetzt aufgefallen. Wenn die Simulation aktiviert wird, schalten sich entsprechend ein paar Lampen oder aus. Nur wenn die Simulation deaktiviert wird, bleiben die Lampen in dem Zustand. Meiner Meinung nach sollten die Lampen in den Zustand zurückkehren den sie vor der Aktivierung hatten.

1 „Gefällt mir“

Ich habe das Modul nun ca eine Woche am laufen. Wenn ich es einschalte, denn heißt es immer „not enough data“. Kann man das nicht abschaltbar machen. Was ist der Sinn?

Gruß Michael

Du musst für alle Schaltervariablen die Archivierung aktivieren. Und es dauert im Minimum die Tage die in der Instanz eingestellt ist. Es müssen also in diesen Tagen Änderungen im Archiv zu finden sein.

Zu dem „merken des Status“ hab ich mir das eben mal selber gemacht.
Zusätzlich zu den Variablen die von der Instanz angelegt werden, braucht man noch zwei zusätzliche Variablen

  • Simulation aktiv Steuerung: Diese wird dann für das aktivieren bzw. deaktivieren der Simulation verwendet. Nicht mehr die Variable „Simulation aktiv“
  • StatusVorSimulation: Eine Stringvariable die einen Json String hält wo die Werte VOR dem Start der Simulation abgelegt werden.

Bei der Variable „Simulation aktiv Steuerung“ wird folgendes Aktionsskript hinterlegt

<?php
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
$simulationID=35532; //ID der Instanz
$statusvorsimulationID=37656; //ID der Stringvariable des JSON Strings
$simulationaktivID=15898; //ID der originalen Simulation aktiv Variable
$lichterstatus=array();
$i=0;
if ($_IPS['VALUE'])
{
    //Aus der Instanz der Simulation werden die verwendeten Variablen ausgelesen
    $lichter=json_decode(json_decode(IPS_GetConfiguration($simulationID),true)["Targets"],true);
    foreach ($lichter as $licht)
    {
        //Werte vor der Simulation werden gespeichert
        $lichterstatus[$i]["VariableID"]=$licht["VariableID"];
        $lichterstatus[$i]["VariableStatus"]=getvalue($licht["VariableID"]);
        $i++;
    }
    //Werte werden als JSON in der Variable abgelegt
    setvalue($statusvorsimulationID,json_encode($lichterstatus));
    //Simulation wird aktiviert
    RequestAction($simulationaktivID,true);
}
else
{
    //Simulation wird deaktiviert
    RequestAction($simulationaktivID,false);
    //Werte vor der Simulation werden in ein Array übertragen
    $lichter=json_decode(getvalue($statusvorsimulationID),true);
    foreach ($lichter as $licht)
    {
        //wenn der aktuelle Werte der Variable ungleich dem gespeicherten Wert ist, wird umgeschalten
        if (getvalue($licht["VariableID"]) != $licht["VariableStatus"]) RequestAction($licht["VariableID"],$licht["VariableStatus"]);
    }
    //nicht notwendig, die Stringvariable wird geleert
    setvalue($statusvorsimulationID,"");
}
1 „Gefällt mir“

Danke dir… das macht Sinn, und baue ich gleich mit ein. Mit „normalen“ Lampen klappt es inzwischen auch, nur mit den Hue noch nicht. das muss ich wohl noch die Tage abwarten.

Wenn du sie in IPS schalten kannst, sollte es auch mit dem Modul funktionieren.

1 „Gefällt mir“

Servus,

eine vlt. ähnliche Frage hierzu.
Hab nun 2 Wochen aufgezeichnet und sehe auch eine Menge Daten, das ist super.

Es soll in 1 Woche dann aktiv genutzt werden.
Hier also die Frage.

Wie verhält sich das Modul wenn zB um 23 Uhr ein Licht eingeschalten wurde (an einem Tag der für die Simulation genutzt wird) und um 03 Uhr am nächsten Tag wurde es wieder ausgeschalten.
Nimmt die Simulation dann die Tage der Reihe nach (unterstellend es sind genügend Daten für den Tag da) und schaltet ergo am 2.ten Tag um 03 Uhr das Licht wieder aus, oder nimmt es irgendeinen Tag?
Und wenn dieser beliebige Tag ggf. kein AUS dieses Lichtes aufgezeichnet hat, weil es eben nicht ausgeschalten wurde an dem Tag - bleibt in dem Fall dieses Licht ggf. dauerhaft an?

Im konkreten Fall geht es um einen 14 Tages Urlaub, da wäre es halt nicht so cool wenn manche Lichter dann tagelange leuchten.

Vlt. weiss jemand wie es sich verhält?

Danke und Gruss Seppm