erste beta - fronthem, smartVISU (closed, Bitte die Anschlussthreads benutzen)

Begonnen von herrmannj, 23 Dezember 2014, 22:36:44

Vorheriges Thema - Nächstes Thema

herrmannj

btw, hat jemand einen schicken screenshot / Bild für rudi -> die homepage ?

HCS

Das bedeutet, zwei Wege zu implementieren, nur um etwas, das man vollständig durch etwas Besseres ersetzt hat und das nicht mehr kann, auch verwenden zu können. Das verkompliziert die Implementierung, man muss sich später mit beidem (Plots und Charts) bei der Fehlersuche und Unterstützung der Anwender rumschlagen und hat aus FHEM-Sicht keinen Vorteil. Außer, dass man von SV evtl. eines Tages ein weiteres Widget geschenkt bekommt und es einfach verwenden kann.


herrmannj

wieso zwei Wege ? Sorgen wir dafür das es einer ist !

HCS

Ein Weg geht nicht. Entweder die Parameter sind an das GAD hinten dran geschlüsselt (original SV) oder wir übergeben eine vernünftige Struktur. Wenn man beides will, muss man je nach Widget unterschiedlich verfahren.
Auch eine Umsetzung von den Alten im Treiber auf eine Struktur ist eine Aktion.
Mein erster Anlauf war, sie rauszuparsen. Habe ich verworfen. Das ist annähernd unmöglich, besonders, wenn man GADs anlegt, die selbst Punkte im Namen haben und SV 1.8 weitere hinten erfindet. Da passt kein von hinten parsen und kein von vorne parsen, dass ist alles lotto spielen.

Zitat von: herrmannj am 15 März 2015, 21:52:00
Damit dokumentierte und beschriebene widgets (plot - out of the box) verwenden kann.
Es gibt inzwischen eine Menge gute Widgets, die nicht in SV dokumentiert sind, weil sie hier erfunden wurden.

herrmannj

#1909
@HCS, die Kommunikation (-> Datenstruktur!) in Deinem Beispiel ist gut, passt!

Für avg und sum benötigen wir einen timeframe. Lass uns "interval" dafür nehmen. Mit "refresh" darf sich sv eine Aktualisierungsrate wünschen, alternativ (für plot.*) der im editor vorgegeben Interval (oder on-event).

Fronthem muss dafür sorgen das es einen Startwert gibt (auch wenn der außerhalb der angezeigten Zeitspanne liegt) und ist in diesem Rahmen für min,max,sum und avg zuständig. avg == Einzelwert innerhalb eines "interval".

Die Datendichte ergibt sich aus Anzeigedauer plus Zoom was bedeutet das zoom (minimum time while zooming in sec) auch übertragen werden muss bzw in Interval enthalten sein muss.

Dann haben wir das rund, oder ?

vg
jörg

herrmannj

ZitatMein erster Anlauf war, sie rauszuparsen. Habe ich verworfen. Das ist annähernd unmöglich, besonders, wenn man GADs anlegt, die selbst Punkte im Namen haben und SV 1.8 weitere hinten erfindet.
Ach was, das geht! smarthome.py muss das ja auch wieder auseinander-basteln.

Die lassen sich doch von von hinten nach vorn entwirren - das Format ist doch starr,

HCS

Zitat von: herrmannj am 15 März 2015, 22:30:34
Für avg und sum benötigen wir einen timeframe. Lass uns "interval" dafür nehmen. Mit "refresh" darf sich sv eine Aktualisierungsrate wünschen, alternativ (für plot.*) der im editor vorgegeben Interval (oder on-event).
Kannst Du das nochmal andres erläutern? Ist mir jetzt nicht klar, was Du meinst.

Zitat von: herrmannj am 15 März 2015, 22:30:34
Fronthem muss dafür sorgen das es einen Startwert gibt (auch wenn der außerhalb der angezeigten Zeitspanne liegt) und ist in diesem Rahmen für min,max,sum und avg zuständig. avg == Einzelwert innerhalb eines "interval".
Mit einem Startwert vor den echten Daten entsteht ein Chart, das von links kommend eine Linie ausgehend vom Startwert bis zum ersten echten Wert hat.
Den min,max,sum und avg Part habe ich nicht verstanden. Was meinst Du damit?

Zitat von: herrmannj am 15 März 2015, 22:30:34
Die Datendichte ergibt sich aus Anzeigedauer plus Zoom was bedeutet das zoom (minimum time while zooming in sec) auch übertragen werden muss
Ja, kann ich mitschicken.
Würde 0 dann bedeuten: "alles was zu bekommen ist, ohne die Daten zu verdichten" ?

Zitat von: herrmannj am 15 März 2015, 22:33:00
Ach was, das geht! smarthome.py muss das ja auch wieder auseinander-basteln.

Die lassen sich doch von von hinten nach vorn entwirren - das Format ist doch starr,
Schau dir mal das widget der kommenden 1.8 im SV trunk an. Das hängt hinten einen weiteren Parameter an. Nix starr.

Meine Buchstaben sind alle, muss morgen neue kaufen.  :)
Dann können wir morgen mal das Format, mit dem der Treiber bei SV anfragt, detaillieren.

herrmannj

so machen wir das, muss auch neue Buchstaben bestellen  ;)

cruser1800

Zitat von: herrmannj am 15 März 2015, 21:54:15
btw, hat jemand einen schicken screenshot / Bild für rudi -> die homepage ?

Weis nicht ob es schön ist! Mir gefällts!  8)

Carsten

Zitat von: cruser1800 am 15 März 2015, 23:02:40
Weis nicht ob es schön ist! Mir gefällts!  8)
Kommen die Wetterdaten von yr.no/Wunderground oder FHEM? Wenn ersteres wäre das Beispiel eher suboptimal, oder?  ;D

herrmannj

wieso ? btw, ich mal mal schnell den dsds thread ...

Carsten

Zitat von: herrmannj am 16 März 2015, 11:12:48
wieso ? btw, ich mal mal schnell den dsds thread ...
Galt das "wieso?" mir?
Naja, ein FHEM-Frontend mit der einzigen Seite zu "bewerben", die keinerlei FHEM-Anbindung benötigt ist ein bißchen so als würde man sein Webdesign mit der "It works"-Seite vom Apachen vorstellen.  ;)
Den ersten Screenshot finde ich aber gut.

herrmannj

axo - ja stimmt schon. Btw, ich hab den dsds thread aufgemacht, also immer rin damit  :D

HCS

Hier der überarbeitete Vorschlag, was der Treiber an fronthem sendet, um Serien für Charts anzufragen:

{
  "cmd": "series",
  "items": [
    {
      "gad": "hcs.data.OilLevelChart",
      "mode": "avg",
      "start": "7y",
      "end": "now",
      "interval": "300",
      "minzoom": "12960000"
    },
    {
      "gad": "hcs.data.OilConsumptionChart",
      "mode": "avg",
      "start": "5y 6m",
      "end": "1y",
      "interval": "OnChange",
      "minzoom": "0"
    }
  ]
}


Die erste angeforderte Serie:
gad und mode ist klar
start: serie beginnt vor 7 Jahren
end: serie endet mit dem letzten verfügbaren Wert
interval: alle 300 Sekunden schicken
minzoom: meine kleinste Zoomstufe sind 12960000 Sekunden = ein Tag, fronthem darf die Daten so verdichten, dass dieser Zoom noch etwas sinvolles darstellt.

Die zweite angeforderte Serie:
gad und mode ist klar
start: serie beginnt vor 5 Jahren und 6 Monaten
end: serie endet vor einem Jahr
interval: sobald es im logfile einen neuen Wert gibt die Serie schicken
minzoom: die Daten nicht verdichten, alle vorhandenen Werte ausliefern.


Ich hänge noch ein JSON an, wie eine Serie, die von fronthem geliefert wird, aussieht.

Könntest Du in fronthem kurzfristig einbauen, dass es auf ein beliebiges "cmd": "series" immer ganz stumpf mit den angehängten Daten antwortet?
Dann könnte ich die Aktualisierung der Charts, wenn die Daten von fronthem kommen, implementieren und du hättest eine funktionierende Gegenstelle zum Testen, sobald Du echte Daten lieferst.


cruser1800

Zitat von: Carsten am 16 März 2015, 11:11:36
Kommen die Wetterdaten von yr.no/Wunderground oder FHEM? Wenn ersteres wäre das Beispiel eher suboptimal, oder?  ;D

Die Daten kommen über Wetter.com, da finde, dass die es am besten treffen ;)