neues Attribut: uiTable - DOIF User Interface, neues Attribut: DOIF_Readings

Begonnen von Damian, 07 Oktober 2017, 23:29:48

Vorheriges Thema - Nächstes Thema

RoBra81

Nachdem man jetzt mit dem DOIF so tolle Visualisierungen bauen kann stellt sich mir die Frage, ob es eine einfache Möglichkeit gibt, eine FHEMWEB-Instanz zu gern, welche bei Aufruf über den Details-Link eines DOIF (oder eines Room-Links in dem lediglich das eine DOIF enthalten ist) lediglich die uiTable des DOIF seitenfüllend anzeigt?

Ronny

Gesendet von meinem SM-G935F mit Tapatalk


Ellert

Zitat von: RoBra81 am 12 Januar 2018, 10:34:23
Nachdem man jetzt mit dem DOIF so tolle Visualisierungen bauen kann stellt sich mir die Frage, ob es eine einfache Möglichkeit gibt, eine FHEMWEB-Instanz zu gern, welche bei Aufruf über den Details-Link eines DOIF (oder eines Room-Links in dem lediglich das eine DOIF enthalten ist) lediglich die uiTable des DOIF seitenfüllend anzeigt?

Ronny

Gesendet von meinem SM-G935F mit Tapatalk


Schau Dir mal den ersten Beitrag an

RoBra81

Zitat von: Ellert am 12 Januar 2018, 10:52:27
Schau Dir mal den ersten Beitrag an

Vielen Dank,

das trifft schon fast meine Vorstellungen - jetzt muss ich nur noch die beiden Rahmen und den Gruppennamen loswerden...

Ronny

Damian

Ich habe mal als Anregung mit Hilfe des Abfallmoduls eine Visualisierung mit uiTable vorgenommen.

defmod di_Abfall DOIF (1)
attr di_Abfall DOIF_Readings min:min ([abfall:BioabfallnGelberSackTonne_days],[abfall:BioabfallnGelberSackTonnenGruenschnitt_days],[abfall:BioabfallnGelberSackTonnenWeihnachtsbaeume_days])
attr di_Abfall group Aktuell
attr di_Abfall room Status
attr di_Abfall uiTable {\
  $TC{0..4}="align='center'";;\
  sub FUNC_font {my ($value)=@_;; return ("font-weight:bold;;".($value <=1 ? "color:darkorange":"color:white"));;}\
}\
\
FW_makeImage("Abfalltonne-Recycling-Logo\@yellow")|FW_makeImage("Abfalltonne-Recycling-Logo\@blue")| FW_makeImage("Abfalltonne\@gray")|FW_makeImage("Abfalltonne\@green")|FW_makeImage("Gartenabfall\@green")\
STY ([$SELF:min],FUNC_font([$SELF:min]))|\
STY ([abfall:Altpapier_days],FUNC_font([abfall:Altpapier_days])) |\
STY ([abfall:Restmuell_days],FUNC_font([abfall:Restmuell_days]))|\
STY ([$SELF:min],FUNC_font([$SELF:min]))|\
STY ([abfall:BioabfallnGelberSackTonnenGruenschnitt_days],FUNC_font([abfall:BioabfallnGelberSackTonnenGruenschnitt_days]))


dazu wurde Googlecalender eingebunden mit :

defmod cal Calendar ical url https://calendar.google.com/calendar/ical/..../basic.ics

und das Abfallmodul definiert:

defmod abfall ABFALL cal

Im Anhang das dazugehörige Layout.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Mit Hilfe des neuen Features "Aggregation mit Regex für Readings" konnte ich die Abfallvisualisierung mit Hilfe von DOIF_Readings relativ einfach für meinen Abfallentsorger verallgemeinern:

defmod Abfall DOIF (1)
attr Abfall DOIF_Readings bio:[#min:"^abfall$":"Bioabfall.*_days$"], GelberSack:[#min:"^abfall$":"GelberSack.*_days$"], Gruenschnitt:[#min:"^abfall$":"Gruenschnitt.*_days$"]

attr Abfall uiTable {\
  $TC{0..4}="align='center'";;\
  $SHOWNOSTATE=1;;\
  sub FUNC_font  { my ($value)=@_;; return ("font-weight:bold;;".($value <=1 ? "color:darkorange":"color:white"));; }\
}\
\
FW_makeImage("Abfalltonne-Recycling-Logo\@yellow")|FW_makeImage("Abfalltonne-Recycling-Logo\@blue")| FW_makeImage("Abfalltonne\@gray")|FW_makeImage("Abfalltonne\@green")|FW_makeImage("Gartenabfall\@green")\
STY ([$SELF:bio],FUNC_font([$SELF:bio]))|\
STY ([abfall:Altpapier_days],FUNC_font([abfall:Altpapier_days])) |\
STY ([abfall:Restmuell_days],FUNC_font([abfall:Restmuell_days]))|\
STY ([$SELF:GelberSack],FUNC_font([$SELF:GelberSack]))|\
STY ([$SELF:Gruenschnitt],FUNC_font([$SELF:Gruenschnitt]))
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Kai-Alfonso

Hi,

ich versuche grade Aufgrund des Beispiels mit dem selbstfärbenden Icons das für mich ein wenig nachzuvollziehen.  Allerdings habe ich über dem Icon jetzt eine Linie (die ist auch, wenn ich das Beispiel nutze)

Woher kommt die und wie werde ich die los?  :o :o :o

Template:

{

sub FUNC_helligkeit_hsv
{
   my ($lux)=@_;
   return (DOIF_hsv ($lux,0,4,0,60,80,90));
}

sub FUNC_lux
{
    my ($lux)=@_;
    return ("font-weight:bold;font-size:10pt;color:".FUNC_helligkeit_hsv($lux));
}
}

DEF TPL_helligkeit(FW_makeImage("message_light_intensity\@".FUNC_helligkeit_hsv($1)).STY($1." lux",FUNC_lux($1)))


uitable:

#import der Template-Datei
IMPORT ./uitable_templates/helligkeit.tpl

TPL_helligkeit([doif_HaustuerLicht:HELLIGKEIT])|"TEST"


Sieht dann aus wie im Screenshot1

Bei der uitable

[code]#import der Template-Datei
IMPORT ./uitable_templates/helligkeit.tpl

TPL_helligkeit([doif_HaustuerLicht:HELLIGKEIT])."TEST"


verschwindet der Text "Test" ganz  - woher kommt denn die Linie?

Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Damian

1. Deine Linie wird wohl vom Style kommen.
Mit Default-Style sieht es bei mir wie im Anhang aus.

2. Pro Zelle ist z. Zt. nur ein Template definierbar ohne Kombination mit anderen Elementen. Wenn du einen Text dranhängen willst, dann kann du den als weiteren Parameter im Template vorsehen und diesen dort dranhängen.

z. B.

TPL_helligkeit([doif_HaustuerLicht:HELLIGKEIT],"TEST")

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Kai-Alfonso

Danke für deine Erklärung - muss dann wohl vom Style (ios7)  kommen - obwohl er bei anderen doif uitable Elementen keine Probleme hat. Naja, werde ich mal den Chrome Webinspektor anwerfen.
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Kai-Alfonso

Zitat von: Damian am 19 Januar 2018, 16:02:20


2. Pro Zelle ist z. Zt. nur ein Template definierbar ohne Kombination mit anderen Elementen. Wenn du einen Text dranhängen willst, dann kann du den als weiteren Parameter im Template vorsehen und diesen dort dranhängen.

z. B.

TPL_helligkeit([doif_HaustuerLicht:HELLIGKEIT],"TEST")

Sorry, das geht bei mir irgendwie nicht  - auch nicht mit default Style
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Damian

Zitat von: Kai-Alfonso am 19 Januar 2018, 19:38:25
Sorry, das geht bei mir irgendwie nicht  - auch nicht mit default Style

Du musst natürlich dafür dein Template umdefinierten. Wie hast du das gemacht?
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Kai-Alfonso

ich hab mich an deinem Beispiel gehalten

{

sub FUNC_helligkeit_hsv
{
   my ($lux)=@_;
   return (DOIF_hsv ($lux,0,200,30,60,81,79));
}

sub FUNC_lux
{
    my ($lux)=@_;
    return ("font-weight:bold;font-size:10pt;color:".FUNC_helligkeit_hsv($lux));
}
}

DEF TPL_helligkeit(FW_makeImage("message_light_intensity\@".FUNC_helligkeit_hsv($1)).STY($1." lux",FUNC_lux($1)))



Ich hab noch eine Frage

Bei deinem Beispiel:

#import der Template-Datei
IMPORT ./contrib/DOIF/solar.tpl

#Tabellendefinition
TPL_solar([test_d:state:d1])


wofür steht das d1?
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Damian

Zitat von: Kai-Alfonso am 19 Januar 2018, 22:29:40
ich hab mich an deinem Beispiel gehalten
...
DEF TPL_helligkeit(FW_makeImage("message_light_intensity\@".FUNC_helligkeit_hsv($1)).STY($1." lux",FUNC_lux($1)))
[/code]

Ich hab noch eine Frage

Bei deinem Beispiel:
...
TPL_solar([test_d:state:d1])[/code]

wofür steht das d1?
ja, wenn du den zweiten Parameter nicht definiert hast, dann kann auch nichts funktionieren.

z. B.

DEF TPL_helligkeit(FW_makeImage("message_light_intensity\@".FUNC_helligkeit_hsv($1)).STY($1." lux",FUNC_lux($1)).$2)


d1 ist hier erklärt: https://fhem.de/commandref_DE.html#DOIF_Filtern_nach_Zahlen
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Kai-Alfonso

Zitat von: Damian am 19 Januar 2018, 22:48:10
ja, wenn du den zweiten Parameter nicht definiert hast, dann kann auch nichts funktionieren.

z. B.

DEF TPL_helligkeit(FW_makeImage("message_light_intensity\@".FUNC_helligkeit_hsv($1)).STY($1." lux",FUNC_lux($1)).$2)


d1 ist hier erklärt: https://fhem.de/commandref_DE.html#DOIF_Filtern_nach_Zahlen

Alles klar - jetzt habe ich es verstanden - vielen Dank für die Erklärung
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

ToKa

Hallo zusammen,

kann man mit DOIF_Readings auch eigene Timer definieren? Habe es gerade damit versucht
startTime:([ZS_zs_UW_AstroDaten:SunSet_myWeather]+int(rand(900)))

Wollte dann [[$SELF:startTime]] als Timer verwenden und erhalte daraufhin den Fehler, dass es sich nicht um das Format HH:MM:SS oder Perlcode handelt.

Beste Grüße
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Damian

Rechnen mit Zeiten kann man nur in der DOIF-Bedingung. Dort kannst du deine Rechnung allerdings direkt angeben. 

DOIF ([([ZS_zs_UW_AstroDaten:SunSet_myWeather]+rand(900))]) (....)

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF