New FHEM Tablet UI

Begonnen von setstate, 22 Februar 2015, 23:37:24

Vorheriges Thema - Nächstes Thema

CoolTux

Zitat von: xxsteffenxx am 27 Oktober 2015, 20:02:30
Hallo zusammen,
ich habe heute versucht das Modul Klimatrend von nesges einzubauen.

meine fhem.cfg
define STATISTICS_WZ statistics WZ_Thermostat
define STATISTICS_EZ statistics EZ_Thermostat
define STATISTICS_SZ statistics SZ_Thermostat
define STATISTICS_BD statistics BD_Thermostat
define STATISTICS_AZ statistics AZ_Thermostat


als html habe ich folgendes
<div data-type="klimatrend"
    data-device="SZ_Thermostat"
    data-get="statTemperatureTendency"
    data-refperiod="1"
    data-stagnating-color="rgb(80,80,80)"
    data-icon="fa-angle"
    data-rising-color="rgb(180,80,80)"
    data-falling-color="rgb(80,80,180)"
    data-highmark="2"
    data-highmark-icon="fa-angle-double"
    data-highmark-rising-color="rgb(255,80,80)"
    data-highmark-falling-color="rgb(80,80,255)"
    ></div>


Das komische ist, beim device WZ-Thermostat bekomme ich mit "list" folgende Ausgabe
2015-10-27 19:55:35   statTemperatureDay Min: 19.2 Avg: 19.2 Max: 19.2 (since: 2015-10-27_19:45:51 )
     2015-10-27 19:55:35   statTemperatureMonth Min: 19.2 Avg: 19.2 Max: 19.2 (since: 2015-10-27_19:45:51 )
     2015-10-27 18:59:55   statTemperatureTendency 1h: +0.5 2h: +0.4 3h: +0.8 6h: +0.5
     2015-10-27 19:55:35   statTemperatureYear Min: 19.2 Avg: 19.2 Max: 19.2 (since: 2015-10-27_19:45:51 )


bei EZ_Thermostat bekomme ich nur folgendes, da fehlt genau statTemperaturTendency
     2015-10-27 19:56:35   statTemperatureDay Min: 19.8 Avg: 19.8 Max: 19.8 (since: 2015-10-27_19:50:50 )
     2015-10-27 19:56:35   statTemperatureMonth Min: 19.8 Avg: 19.8 Max: 19.8 (since: 2015-10-27_19:50:50 )
     2015-10-27 19:56:35   statTemperatureYear Min: 19.8 Avg: 19.8 Max: 19.8 (since: 2015-10-27_19:50:50 ) [code]
[/code]

War da nicht mal was das es nur ein einziges STATISTIC Modul geben kann wo alle Devices enthalten sind. Mir war mal so als habe ich da was gelesen gehabt.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

viegener

Wie schon oben geschrieben, wollte ich eine Lösung, bei der auf dem Server Teile ersetzt werden können, so dass sich einfach Gruppen von Widgets wiederverwenden lassen und auch auf einmal ändern lassen. Die Idee dabei ist, dass man auch Teile beim Laden ersetzen kann (also z.B: versch. Devicenamen oder Labels).

Eine genaue Beschreibung und Möglichkeit zur Diskussion findet sich hier:

http://forum.fhem.de/index.php/topic,43110.msg350991.html#msg350991

Feedback und Vorschläge zur Erweiterung sind sehr willkommen.

Gruss,
Johannes
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

fh168

Zitat von: viegener am 27 Oktober 2015, 21:54:10


getTimeDiffDesc berechnet einen Text für die Differenz zwischen jetzt und dem neuesten Timestamp. Dieser neueste Timestamp wird von getNewestTimestamp berechnet...


bei mir wirft das Log sowas raus
2015.10.27 23:24:23 1: myutils -> getNewestTimestamp: temp_gb  ::
und es steht dort bei lastupdate immer <1m
wofür ist dieses temp_gb und muss man zwingend 3 parameter mitgeben?
Ich wollte dieses Snippet für meine Gieß-Sensoren ausprobieren, welche mit MySensors laufen. Diese benötigen aber nur 1 oder 2 Parameter.
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

viegener

Oops Sorry, das war jetzt nicht als komplett fertige Lösung sondern mehr als Kopiervorlage zur eigenen Anpassung gedacht.

temp_gb ist der Device von dem die timestamps gelesen werden sollen.
Wie auch in der sub erkennbar erlaubt getNewestTimestamp variable Anzahl von Parametern und es muss mindestens ein device und ein Reading angegeben werden.

Johannes


Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

roman1528

Moin.

Kann ich mit pagetab auch mehrere Devices auslesen?

Habe auf meiner Seite "Bad" z.B. 3 batterien von 3 verschiedenen devices. wenn eine jetzt leer ist soll pagetab die "Bad" seite auf machen. geht das?

oder gibt es in fhem ein möglichkeit z.b. einen dummy mit den 3 batterie-daten zu füttern und wenn eine leer ist wechselt der status oder ein reading?

danke schon mal
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

fhem-challenge

#2765
Hallo,

ich versuche verzeifelt den Button in Abhängigkeit des Inhalts vom Device:calview, reading:c-today farblich unterschiedlich darzustellen.

Es sollte: ...

wenn, c-today != 0 ist, die background-color "red" sein
wenn, c-today = 0 ist, die background-color "green" sein

Es funktioniert schlicht nicht.


<div data-type="label" class="cell narrow center">Termine</div>   
    <div style="font-size:33px;" data-type="button"
      data-icon="fm-calendar"
      data-url="#kalender.html"
      data-device="calview"
      data-get="c-today"
     data-background-icon="fa-square"
      data-background-colors='["red","green"]' 
      data-get-on='["!0","0"]'
class="cell">
   </div>



Was mache ich falsch ??

Viele Grüße!

Andreas


Gunther

Vorweg: Ich bin Ahnungsloser

Was passiert, wenn Du beide Zeilen vertauscht:
      data-get-on='["!0","0"]'
      data-background-colors='["red","green"]'   
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

roman1528

Zitat von: fhem-challenge am 28 Oktober 2015, 13:29:37
<div data-type="label" class="cell narrow center">Termine</div>   
    <div style="font-size:33px;" data-type="button"
      data-icon="fm-calendar"
      data-url="#kalender.html"
      data-device="calview"
      data-get="c-today"
     data-background-icon="fa-square"
      data-background-colors='["red","green"]' 
      data-get-on='["!0","0"]'
class="cell">
   </div>


data-on-background-colors='["red","green"]'
^^ändern^^

https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/button

sollte dann gehen ... denke ich :-D

@Gunther ... Definition ist Definition... das sollte keinen Unterschied machen.
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

fhem-challenge

#2768
Zitat von: roman1528 am 28 Oktober 2015, 13:40:36
data-on-background-colors='["red","green"]'
^^ändern^^

https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/button

sollte dann gehen ... denke ich :-D

@Gunther ... Definition ist Definition... das sollte keinen Unterschied machen.

Nein, geht leider nicht. Im link zu "nesges" steht auch "data-on-background-color" (ohne "s"). Aber auch beides funktioniert nicht. Weder: data-on-background-colors='["red","green"]' , mnoch data-on-background-color='["red","green"]', oder auch nicht data-on-background-colors='["#FF0000","#00FF00"]' ... habe schon beliebige Permutationen durchgespielt ... :-(


Nachtrag:

lediglich diese Variante geht semi-korrekt. Hierbei wird der Button tatsächlich "green", wenn ich "setreading calview c-today 0" setze. Allerdings wird er  nicht "red", wenn ich "setreading calview c-today 2"

      data-get-on='["!0","0"]'
      data-background-colors='["red","green"]' 


Das wird immer surriler :-(

roman1528

#2769
EDIT...

data-get-on='["^(?!0).*","0"]'

regex für "alles außer" in deinem fall "0" ... hatte auch probleme damit^^ das hat man davon wenn man wie ich kein regex beherrscht .. hatte vorher noch nie was davon gehört
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

fhem-challenge

#2770
Zitat von: roman1528 am 28 Oktober 2015, 13:54:28
dann definier mal die background icons als array...

data-on-background-icons='["fa-square","fa-square"]'

damit er weiß welchem icon er überhaupt eine farbe zuordnen soll ... vergleich von array und array^^

Hatte ich schon gemacht, ohne Erfolg.

habe aber jetzt den Grund für das Problem gefunden:

1.) im Reading "c-today" gibt es lediglioch ein int-Wert. Wenn dieser allerdings "0" ist, wird das vermutlich als "off" oder Vergleichbares aufgefasst. D.h. es existiert hier eine Besonderheit beim "parsing". Wenn ich Folgendes mache, funktioniert es:

Setze ich hier im reading "true" , "false", dann wirds auch "red" oer "green"
      data-get-on='["true","false"]'
      data-background-colors='["red","green"]' 


Setze ich hier "0" oder "2" (bzw. irgend etwas !=0) funktioniert lediglich "green" == "0". Also entweder "klappt" hier bei "data-get-on" regExp nicht oder es stimmt das pasring von "data-get-on" noch nicht so richtig.

      data-get-on='["!0","0"]'
      data-background-colors='["red","green"]' 

roman1528

i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

fhem-challenge

Zitat von: roman1528 am 28 Oktober 2015, 14:06:42
siehe oben ...

Ja!  exakt, das löst das Problem. Vielen Dank!


Ich dachte immer, dass hier "anders" geparsed wird und hatte die Variante "!0" hier irgendwo aufgeschnappt... regexp mach ich nun viel, ich bin garnicht davon ausgegangen, dass hier "ungefiltert" regexp in diesem widget "durchgereicht" wird (ich hätte es mir auch leichter machen können, und den source mir anschauen sollen ... machmal steht man auch wie blockiert vor dem Problem).


Viele Grüße!

Andreas

roman1528

Zitat von: roman1528 am 28 Oktober 2015, 12:21:05
Moin.

Kann ich mit pagetab auch mehrere Devices auslesen?

Habe auf meiner Seite "Bad" z.B. 3 batterien von 3 verschiedenen devices. wenn eine jetzt leer ist soll pagetab die "Bad" seite auf machen. geht das?

oder gibt es in fhem ein möglichkeit z.b. einen dummy mit den 3 batterie-daten zu füttern und wenn eine leer ist wechselt der status oder ein reading?

danke schon mal

Bevor das hier jetzt wieder untergeht und ich vergeblich auf eine Antwort warte...
irgendwas mit Readings geht doch da bestimmt... Wenn eins der 3 Readings "low" ist irgendeinen state z.B. 'false' triggern... kann mir wer helfen?
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

setstate

Zitat von: roman1528 am 28 Oktober 2015, 14:16:43
Bevor das hier jetzt wieder untergeht und ich vergeblich auf eine Antwort warte...
irgendwas mit Readings geht doch da bestimmt... Wenn eins der 3 Readings "low" ist irgendeinen state z.B. 'false' triggern... kann mir wer helfen?

So würde ich das auch machen. Ein Dummy anlegen und zyklisch mit at die Spannungen der Devices auslesen und wenn eine Spannung kleiner als Sollwert, dann "set dummySpannung low"
Darauf reagiert dann das Tab / Switch auf dem Tablet.