Variablenlogging aktivieren

Ich stell mich mal wieder irgendwie blöd an, bzw. finde in der Doku nicht die entsprechende Funktion.

Ich habe in einem Modul eine Floatvariable mit RegisterVariableFloat angelegt. Mit welcher Funktion kann ich für diese das Logging aktivieren ohne das händisch im Objetbaum machen zu müssen.

Mit AC_SetLoggingStatus.

Ah, danke.
Dann brauch ich nur die ID des Archivs. Kann ich das mit
IPS_GetVariableIDByName(„Archive Handler“ ) lesen.

Da der Name immer anders sein kann, wäre das nicht optimal. Besser wäre zum Beispiel:

$archivID = IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}')[0];

Danke. Funktioniert im noemalen PHP Fenster super, aber nicht wenn ich das in einem modul verwende

        $ID = $this->RegisterVariableFloat("EnergyPrice","EnergyPrice");            
        //ArchivID Holen
        $ACID = IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}')[0];
        AC_SetAggregationType($ACID, $ID, 0); 

Sobald ich die Zeile AC_SetAggregationType($ACID, $ID, 0); rein schreibe lädt das Modul nicht mehr.

Das sollte eigentlich auch in einem Modul funktionieren, was kommen denn für Fehlermeldungen ins Log?

Fehler gefunden. Ich hatte anstatt AC-SetLoggingSstatus schon den Aggregationsbefehl vorher.

Was ist eigentlich der Sinn dahinter, dass ich im Archiv auf eine Variable mehrere Werte mit ein und dem gleichen Timestamp schreiben kann? Eine Variable kann doch nur einen Wert zu einem Zeitpnkt haben.

Innerhalb einer Sekunde kann sich die Variable aber mehrmals ändern. Die Information der Änderung um 12:12:12.5 oder 12:12:12.7 geht zwar verloren, aber die Reihenfolge bleibt bestehen.

Es ist halt so, dass ich eine Tibber Zeitreihe abfrage und ins Archiv lege. Dabei ist mir halt während des Herumtestens, dasss bei jeder ausführung des Skriptes 24 Werte mit exakt dem gleichen zeitstempel im Archiv landen. Dies eunterscheiden sich also auch in in den NAchkommastellen. Es wäre nicht schlecht, wenn die Funktion AC_AddLoggedValues irgendwie eine möglichkeit hätte anzugeben, ob eventuell schon vorhandene Werte einfach aktualisiert anstatt nochmal zusätzlich angelegt zu werden.

Darum müsstest du dich selbst kümmern. Du kannst ja via AC_DeleteVariableData — IP-Symcon :: Automatisierungssoftware die Daten löschen und neue eintragen.

OK, das wäre auch eine Lösung. Wenn Startzeit und Endzeit gleich ist wird hgenau dieser Wert gelöscht? Oder muss zwischen Start und Ende ein Unterschied sein?

Nein, genau so. Wenn Startzeit = Endzeit werden alle Werte mit diesem Zeitstempel gelöscht.

1 „Gefällt mir“