Autor Thema: update readingsGroup: sortierbarkeit  (Gelesen 6765 mal)

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19406
update readingsGroup: sortierbarkeit
« am: 12 Dezember 2016, 18:24:39 »
ich habe eben den ersten teil eines updates eingecheckt mit dem es möglich ist eine readingsGroup sortierbar zu machen. das update enthält folgende neue möglichkeiten:
  • neues attribut sortColumn
    • wenn es auf -1 gesetzt ist wird nicht automatisch sortiert sondern erst nach einem klick auf einen spalten header.
    • wenn es auf einen wert >= 0 gesetzt ist wird die readingsGroup direkt automatisch nach dieser spalte sortiert, die spalte nach der sortiert wird lässt sich mit klick auf den spalten header ändern.
  • neues schlüsselwort <tfoot>
    alles zeilen nach diesem schlüsselwort zählen als tabellen footer und werden nicht mit sortiert. das ist z.b. für summen zeilen am ende einer tabelle sinnvoll.
    achtung: das schlüsselwort sollte für sich alleine stehen und nicht mitten in einer readings liste.

was aktuell (noch) nicht geht bzw. noch kommt:
  • bestimmte spalten vom sortieren ausschliessen
  • automatisch neu sortieren nach longpoll update geht inzwischen
  • automatisch neu berechnen nach dem sortieren
  • das neu einfärben des zeilen hintergrundes

unten ist ein beispiel mit dem man testen kann. und an dem man die aktuellen einschränkungen sieht.

gruss
  andre

define t1 dummy
attr t1 room rg
attr t1 setList state:slider,-10,1,30
attr t1 webCmd state
define t2 dummy
attr t2 room rg
attr t2 setList state:slider,-10,1,30
attr t2 webCmd statedefine t3 dummy
attr t3 room rg
attr t3 setList state:slider,-10,1,30
attr t3 webCmd state

define rg readingsGroup <>,<value>,<sum>,<min>,<max>,<avg>\
t\d:+NAME,state,$sum(1..$ROW:2),$min(1..$ROW:2),$max(1..$ROW:2),$avg(1..$ROW:2)\
<tfoot>\
<hr>\
rg:<>,$scalar,$sum(:3)@SUM,$min(:2)@MIN,$max(:2)@MAX,$avg(:2)@AVG\
<hr>\
t1:<t1,t2,t3>,state,state@t2,state@t3,$sum($ROW:2..4)@SUM,$count(/\d/)(2..$ROW-4:2)\
 
attr rg nonames 1
attr rg room rg
attr rg style style='text-align:center'
attr rg sortColumn -1
attr rg valueFormat { 'avg' => '%.2f', 'AVG' => '%.2f' }
attr rg valuePrefix { 'rg.scalar' => '#', 'rg.SUM' =>'&Sigma;; ', 'rg.MIN' =>'Min: ', 'rg.MAX' =>'Max: ', 'rg.AVG' =>'&empty;; ', 'rg.count' => '#: ' }
attr rg valueSuffix { state => '&deg;;C' }
 
« Letzte Änderung: 13 Dezember 2016, 14:48:18 von justme1968 »
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19406
Antw:update readingsGroup: sortierbarkeit
« Antwort #1 am: 13 Dezember 2016, 14:47:36 »
update: ab heute morgen sollte das automatische neu sortieren nach einem longpoll update funktionieren.
« Letzte Änderung: 13 Dezember 2016, 22:20:32 von justme1968 »
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline ToKa

  • Full Member
  • ***
  • Beiträge: 445
Antw:update readingsGroup: sortierbarkeit
« Antwort #2 am: 13 Dezember 2016, 22:19:37 »
Wow, super vielen Dank für die Erweiterung!
Hatte schon den ganzen Abend nach sowas im Forum und Wiki gesucht...
RaspberryPi3 mit RaZberry2
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
GreenWave: PowerNode 1 port
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Zipato Bulb 2

Offline BooStar

  • New Member
  • *
  • Beiträge: 22
Antw:update readingsGroup: sortierbarkeit
« Antwort #3 am: 14 Dezember 2016, 16:31:36 »
Hallo zusammen,

ich bin noch relativ neu in Fhem und von daher erstmal vielen Dank für diese sehr umfangreiche Software. Nun zu meinem Problem, welches hier glaube ich ganz gut reinpasst...
Ich hole mir via HTTPMOD die Hochwasser Zeiten der Hamburger Elbe:

define getTide HTTPMOD none 43200 #12h
attr getTide userattr get01JSON get01Name get01Poll:0,1 get01PollDelay get01PollDelay:0,1 get02JSON get02Name get02Poll:0,1 getHeader1 getHeader2 getURL
attr getTide get01JSON Hamburg
attr getTide get01Name Hamburg
attr getTide get01Poll 1
attr getTide get02JSON Geesthacht
attr getTide get02Name Geesthacht
attr getTide get02Poll 1
attr getTide getHeader1 Content-Type: application/json
attr getTide getHeader2 Accept: */*
attr getTide getURL http://192.168.10.2:8083/fhem/usr/tides.json
attr getTide room Readings

Leider bekomme ich die Werte nicht anständig sortiert vorgesetzt und muss sie deshalb von FHEM sortieren lassen, meine ReadingsGroup für die Zeiten sehen so aus:
define HW_Hamburg readingsGroup <HW_Hamburg>\
getTide:Hamburg.*
attr HW_Hamburg nonames 1
attr HW_Hamburg notime 1
attr HW_Hamburg room Readings
attr HW_Hamburg sortColumn 0
und die Tabelle so (die Tabelle hat nur eine Spalte):
HW_Hamburg
Mi. 2016-12-14 - 11:31 NW (0.2m)
Mi. 2016-12-14 - 23:52 NW (0.2m)
Mi. 2016-12-14 - 04:12 HW (4.1m)
Mi. 2016-12-14 - 16:34 HW (4.1m)

Dank dem neuen sortColumn kann ich die Werte nun manuell sortieren wie ich sie eingentlich auch sehen will:
HW_Hamburg
Mi. 2016-12-14 - 04:12 HW (4.1m)
Mi. 2016-12-14 - 11:31 NW (0.2m)
Mi. 2016-12-14 - 16:34 HW (4.1m)
Mi. 2016-12-14 - 23:52 NW (0.2m)

Meine Frage ist jetzt, wie bekomme ich es hin, dass die Tabelle immer so sortiert ist, also auch nach einen Refresh, Neustart, oder Logpoll durch FHEM?
"attr HW_Hamburg sortColumn -1"  oder "sortby" haben hier leider keinen Effekt.

Vielen Dank und schönen Gruß

BooStar
« Letzte Änderung: 14 Dezember 2016, 16:33:59 von BooStar »

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19406
Antw:update readingsGroup: sortierbarkeit
« Antwort #4 am: 14 Dezember 2016, 16:40:57 »
sortColumn nicht auf -1 setzen sondern auf die nummer der spalte nach der sortiert werden soll.

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline BooStar

  • New Member
  • *
  • Beiträge: 22
Antw:update readingsGroup: sortierbarkeit
« Antwort #5 am: 14 Dezember 2016, 16:43:45 »
Hi,
es ist egal ob ich -1,0, oder 1 setze, nach einem Refresh ist die Tabelle immer unsortiert.
//edit: Achja... ein Update habe ich heute gemacht...
« Letzte Änderung: 14 Dezember 2016, 16:52:39 von BooStar »

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19406
Antw:update readingsGroup: sortierbarkeit
« Antwort #6 am: 14 Dezember 2016, 16:58:30 »
bitte ändere mal im file .../www/pgm2/fhemweb_readingsGroup.js in zeile 21 die 10 in eine 500 oder 1000 und schau ob es dann geht. browser cache löschen nicht vergessen.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline BooStar

  • New Member
  • *
  • Beiträge: 22
Antw:update readingsGroup: sortierbarkeit
« Antwort #7 am: 14 Dezember 2016, 17:21:45 »
Jau... cool.. mit 500 klappts... DANKE! kann man die Sortierreihnfolge auch umkehren?

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19406
Antw:update readingsGroup: sortierbarkeit
« Antwort #8 am: 14 Dezember 2016, 17:27:43 »
in der eingecheckten version noch nicht. mit dem nächsten update vermutlich schon. es kann aber sein das sie die spalten nummern dann noch mal ändern.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline BooStar

  • New Member
  • *
  • Beiträge: 22
Antw:update readingsGroup: sortierbarkeit
« Antwort #9 am: 14 Dezember 2016, 17:39:38 »
OK, Danke für die Rückmeldung.. ich werde das hier weiter beobachten.
Aber sag mal.. ist setCloum die einzige Möglichkeit eine ReadingsGroup zu sortieren? was mach denn sortby ?
Hintergrund meiner Frage ist, das ich eigentlich nur die Tabelle angezeigt haben möchte, der kleine "Sortierpfeil (▾)" ist eigentlich nicht nötig, oder kann man den gar irgendwie ausblenden ?





Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19406
Antw:update readingsGroup: sortierbarkeit
« Antwort #10 am: 14 Dezember 2016, 17:57:43 »
sortby ist generell dazu da im fhemweb die geräte in der raum ansicht zu sortieren. readingsGroup kann da attribut auch verwenden um die zeilen nach den device namen zu sortieren. diese device namen müssen hinterher nicht mehr in der readingsGroup sichtbar sein. diese sortierung ist statisch.

mit sortFn kann man nach reading namen sortieren wenn ein device viele ähnlich aufgebaute readings hat wie z.b. das nmap oder ubiquity modul. diese sortierung ist ebenfalls statisch.

sortColumn sortiert nach readings werten. diese sortierung ist dynamisch und kann sich ändern wenn sich readings ändern.

das ausblenden der pfeile kommt noch.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline BooStar

  • New Member
  • *
  • Beiträge: 22
Antw:update readingsGroup: sortierbarkeit
« Antwort #11 am: 14 Dezember 2016, 18:00:02 »
Klasse...
Zitat
das ausblenden der pfeile kommt noch.
Wenn dann noch irgendwann die Sortierreihnfolge kommt, habe ich meine Lösung, Danke!

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19406
Antw:update readingsGroup: sortierbarkeit
« Antwort #12 am: 14 Dezember 2016, 18:36:38 »
ab morgen kannst du die Sortierreihenfolge umdrehen wenn die die spalte im sortColumn attribut mit einem negativen vorzeichen angibst. achtung: die zählweise hat sich geändert und beginnt jetzt bei 1.

die pfeile kannst du jetzt schon ausblenden in dem du in css file deines styles das hier einfügst:
table.sorttable span#sorttable_sortrevind, span#sorttable_sortfwdind { display: none; }
gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline BooStar

  • New Member
  • *
  • Beiträge: 22
Antw:update readingsGroup: sortierbarkeit
« Antwort #13 am: 15 Dezember 2016, 19:32:59 »
vielen Dank! Funktioniert alles wie es soll....

Offline mi.ke

  • Sr. Member
  • ****
  • Beiträge: 646
  • JASPER (powered by FHEM)
    • J.A.S.P.E.R. --> Just A Smart Perl Engineered Roomie
Antw:update readingsGroup: sortierbarkeit
« Antwort #14 am: 04 Mai 2017, 11:19:52 »
Hallo Andre.

Bei der Sortierung nach Spalten (sortColumn) scheint es bei 1-stelligen Zahlenwerten zu Problemen zu kommen.

Folgendes Konstrukt:

Attributes:
sortColumn 2
valueFormat {moisture => "%.0f %%"}

Hier scheint nach der ersten Stelle sortiert zu werden, da aber die führende Null fehlt, wird folgendermaßen sortiert:

0
1
11
79
8
9


Gibt es da einen Trick der Abhilfe schafft?
Gruß und Danke
mi.ke
FHEM 5.9 | Cubietruck + 8 x RPi(Z) + FB7590 + FB 6842 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 4 x HMwLanGW + Ardunio433 + 3 x LGW + IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod)AB440/R/S/D, OWL-CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo