Undokumentierte Felder bei AC_GetAggregatedValues entfernt (MaxTime, MinTime)

Hallo,

in der Migrationsinfo auf Version 4.0 steht folgendes:

Undokumentierte Felder bei AC_GetAggregatedValues entfernt (MaxTime, MinTime)

Welche Alternative Funktion steht zur Verfügung um MinTime und MaxTime zu bekommen?

Danke und Grüsse,
MaLu

Ich möchte im Prinzip diese Funktionalität behalten:

Gestern Heute Woche Monat und Jahr mit Jahres Auswahl in der oberen Zeile

Je nach Zeitraum (und Genauigkeit) kannst du durch die Daten gehen und diesen Zeitpunkt selber ermitteln. Quasi durch die Datensätze der Stundenaggregation gehen und wenn die Werte auf die Minute/Sekunde genau brauchst, kurz in die Rohdaten reinschauen, wann der Wert wirklich war.

paresy

@paresy -

Danke für die Antwort - kannst Du mal spezifischer sein wie Du das meinst -Umsetzungstechnisch.

Mh,
Irgendwie wird mir die 4er Version immer unsympathischer :frowning:

Ich finde, das Thema sollte nicht so einfach abgehakt werden. Das ist eine Funktionalität, die seit ca 5(?) Jahren allen Usern zur Verfügung steht und somit auch genutzt wird - dokumentiert hin oder her. Es kann nicht sein, dass diese Funktionalität „einfach so“ und fast kommentarlos nach Jahren der Nutzbarkeit abgeschaltet wird. Es sei denn, der Focus liegt ausschließlich auf Neukunden.
Für einige meiner Projekte würde das einen erheblichen Änderungsaufwand bedeuten. Und ich bin sicher nicht der Einzige.

Soll der User damit wirklich allein gelassen werden? Wenn ja, würde das (und nicht nur dieses Problem) eine erhebliche Hürde für Altuser darstellen, irgend wann mal auf eine stabile 4.0 zu migrieren. Ich finde, damit wird Bestandskunden einfach zuviel zugemutet.

Ich hab mich hier seit Weihnachten eingelesen und komme immer mehr zu dem Schluss, dass das für mich wohl in den kommenden 6 Monaten nichts wird - in Anbetracht der aktuellen Entwicklung im Forum und eigener Evaluierung. Und wenn ich mir den drohenden Berg von Anpassungen im eigenen System ansehe (auch, wenn es aktuell noch nicht genau abschätzbar ist)… ok, ich hör jetzt lieber auf.

@raketenschnecke - Schön, Dich mal wieder hier zu hören und zu schreiben… leider nur wegen meinem Thread und bin voll bei Dir!

Deswegen habe ich auch den Thread eröffnet …

Zum Thema IPS 4.0 - wie ich schon im anderen Thread geschrieben habe (und andere) … im Moment werden Corner-Case Features (Marketing-Blödsinn - Hauptsache Feature drin und gut) implementiert und, Stabilität ist wieder ein Fremdwort, Z-Wave Implementierung leider immer noch hakelig bis Zumutung. Die Linux und MAC Varianten werden offensichtlich gepusht und die Windows User stehen hinten an. Bis 4.0 die Semi-Stabilität der 3.4 erreicht - würde ich doch mal wieder 6 - 10 Monate an Zeit draufpacken - und auch nur mit den vereinten Kräften des Forums. Ich habe mal nachgeschaut und verwende diese Funktion an vielen Punkten. Deswegen …

@paresy

So, ich Vote dann mal und möchte das MaxTime und MinTime in der Version 4 erhalten bleibt.

+1

+1

Verwende die Befehle auch an einigen Stellen…

-Chris-

Ich habe mal zum nächsten Update eine AC_GetAggregatedValuesCompatibility hinzugefügt.
Die berechnet aus den kleineren Aggregationen+Rohdaten den genauen Zeitpunkt.

Freu mich dazu auf euer Feedback :slight_smile:

paresy

Hi paresy,
hier kommt Feedback:
Zunächst freut es mich, dass diese Diskussion von Euch wahr- und offensichtlich auch ernst genommen wird. Auch der Versuch einer Kompromiss-Lösung ist zu begrüßen.

Ich habe mir das eben auf meiner 4.0 Testumgebung angeschaut, bin aber mit dem aktuellen Lösungsansatz alles andere als glücklich. Die Kritikpunkte im Einzelnen:

[ol]
[li]Muss man die Scripte von der Funktion „AC_GetAggregatedValuesCompatibility“ auf die Funktion „AC_GetAggregatedValues“ umstellen (ok, das ist ‚nur‘ Fleißarbeit)[/li][li]Ist man damit von den Compatibility-Funktionen abhängig (die jederzeit wieder rausfliegen können)[/li][li]Die Performance ist unterirdisch: während die AC_GetAggregatedValues im Test 43ms braucht (was wirklich sehr gut ist), benötigt die „AC_GetAggregatedValuesCompatibility“ ca 16.000 ms![/li][/ol]

Getestet habe ich mit Ausgabe von 300 Tageswerten (pro Tag ca 1400 Einzelwerte => was nicht viel ist). Sorry, aber für mich ist das einfach inakzeptabel. Das kann bestenfalls eine Übergangslösung sein, bis die vollständige Implementierung der alten „AC_GetAggregatedValues“ in die 4.0 erfolgt ist. Selbst das halte ich für sinnfrei.

Schaut man sich die Ausgabe der alten und der neuen AC_Get… an, stellt sich überhaupt die Frage, warum ein Min/Max-wert drin ist, wenn die Timestamps nicht mitgeliefert werden. Wozu brauch ich dann Min- und Max?!

Ausgabe alte Funktion:
RS.net_2016-01-20 09-10#001.png

Ausgabe neue Funktion:
RS.net_2016-01-20 09-12#001.png

Aus Performance-Gründen werdet Ihr das wohl auch nicht gemacht haben: die alte Funktion braucht bei mir unter 3.4 ganze 34 ms, die neue unter 4.0 43 ms. Also kaum messbarer Unterschied.

Da die Gründe für das Wegfallen nirgends erklärt sind (was Ihr ja nicht müsst), kann man nur mutmaßen, warum die Funktion kastriert wurde. Aber falls es um die Verschlankung der Ausgabe gegangen sein sollte, wäre der bessere Ansatz wohl der:

  1. völlig neue AC_Get…Funktion (zusätzlich zu den alten), die ein endimensionales Array ausgibt, welches ausschließlich die Aggregat-Werte enthält. Wenn das zu wenig sein sollte (wegen des fehlenden Timestamps), dann eben 2dimensional [0][TimeStamp] + [1][Avg]
  2. die bisherigen AC_Get-Funktionen aus 3.4 unverändert in die 4.0 übernehmen.

Hallo Raketenschnecke,

der Hintergrund war Speicherplatz. Bei den Aggregationstabellen wird dadurch die Datenmenge (zur Zeit nur 1 Zeitstempel, plus 3 Werte, durch die MinTime/MaxTime Felder wären es jeweils zwei Zeitstemepl mehr) fast verdoppelt, wodurch damals die Frage aufkam, wie viel die MinTime/MaxTime überhaupt genutzt wird im Anbetracht einer Speicherverdopplung. Da die Aggregation im RAM vorgehalten wird, bedeutet es auch je nach Archivgröße mehr Arbeitsspeicher der Verbraucht wird!

Die MinTime/MaxTime vor dem Release noch hinzuzufügen ist im Prinzip kein Problem. Ich würde aber gerne noch etwas mehr Feedback haben, wer diese Felder nutzt, oder das mein Argument vom Speicherplatz in der heutigen Zeit von Terabytes (HDD) und Gigabytes (RAM) völlig überzogen ist und wir uns diesen Luxus einfach gönnen können/sollen.

Wie auch immer: Ich freue mich über die konstruktive Kritik und versuche hiermit meine Beweggründe zu erklären :slight_smile:

paresy

PS: Schön, dass du wieder aktiv dabei bist!

Also mir ist Speicherplatz und RAM sehr egal :slight_smile: Die paar Sachen bekomme ich noch unter :smiley:
Ich nutze die Timestamps an ein paar Stellen, bräuchte diese Funktion also auch.

Ohne Timestamps ist das ganz ziemlich Sinn frei :frowning:

Grüße,
Chris

Ich sehe das wie Chris und verwende die Möglichkeiten heute auch.

Ja, ich auch.

@Raketenschnecke, schön das Du wieder da bist!:slight_smile:

Ich verwende die Funktionen auch.
Eigene Scripte und auch die von Raketenschnecke.

lg,
Christian.

Mir würden die TimeStamps auch fehlen!
Gruß

Nutze die timestamps recht intensiv. Bitte auch um Implementierung in 4.0.
Gruß
Hoep

Danke für euer Feedback. MinTime/MaxTime kommt zum nächsten Update. Freue mich dann auch euer Feedback!

paresy

Hi,
ich habe nochmal die Ausgabe-Arrays von AC_getValueAggregated aus IPS 3.4 und IPS 4.0 miteinander verglichen (Tageswerte vom 01.04. - 31.12.2015).
Die Timestamps scheinen noch GMT zu sein, weiterhin sind die Timestamps Min/Max nicht korrekt: Max ist scheinbar vom darauffolgenden Tag, H:i:s fehlen.
Aufsummiert ([Avg_cum] ergibt sich ebenfalls ein Delta. Nicht viel, aber ein Delta.

Habe ich mal zu den bekannten Fehlern hinzugefügt. Das sieht in der Tat noch nicht korrekt aus.

paresy

Min/Max sollten mit dem nächsten Update korrekt sein. Das Delta wird erst verschwinden, sobald wir korrekt in der lokalen Zeit aggregieren und nicht auf GMT Basis. Der Fehler ist noch offen.

paresy