Hi@all.
Mein Beweggrund ist dieser:
https://forum.fhem.de/index.php/topic,115259.msg1142878.html#msg1142878 (https://forum.fhem.de/index.php/topic,115259.msg1142878.html#msg1142878).
Hier hatte ich schon eine Anfrage wegen RGB-Gradient gestellt. Jetzt möchte ich halt mein View wieder so aussehen lassen.
Ich habe mal auf Grundlage vom Volume3D-Knob, diesen um eine Temperaturanzeige erweitert. Das werde ich noch separieren als eigenes Modul für FTUI3.
Jetzt die Frage: Wer würde am Thermostat mit-/weiterentwickeln?
RGB-Gradient ist schon drin. readonly usw auch.
Ich weiss nicht was alles benötigt wird wegen Thermostatfunktion.
Benutzen werde ich es sonst nur als Thermometeranzeige (die dann readonly ist).
Also wer hat lust mitzumachen?
mfg mr_petz
Edit:
ist hier zu finden https://github.com/mr-petz/ftui/tree/addons
update thermostat.component.js https://raw.githubusercontent.com/mr-petz/ftui/addons/controls_ftui_addons.txt
update thermostat.component.css https://raw.githubusercontent.com/mr-petz/ftui/addons/controls_ftui_addons.txt
Auch wenn ich dafür keinen Bedarf habe, muss ich hier mal eins los werden: geiler scheiß! 8)
Der Volume3D-Knob ist cool, einfach gut gemacht. Und von dort ein Thermostat-Widget abzuleiten ist eine mehr als gute Idee!
Was mir als erstes einfällt:
- für einen (Heizkörper-/Raum-/Klimaanlagen-)Thermostat benötigt man keine negativen Temperaturen (ich sehe, du hast es aktualsiert)
- der angezeigte Maximalwert sollte nicht auf x°C eingeschränkt werden (beim Thermometer auch nicht der Min-Wert)
- die Anzeige der gemessenen Ist-Temperatur sollte möglich sein (ggf auch von einem anderen Device) - eventuell auch gleich die Raumfeuchte?
- die Soll-Temperatur (ggf. auch von einem anderen Device - vergleiche HM-TC vs HM-RT-DN) sollte angezeigt werden können (insb wenn es ggf Verzug gibt)
- bei manchen Thermostaten gibt es den Wert der Ventilposition - wie zeigt man diesen am besten an
- Batteriestatus (wenn zB Batterie auf low) optional
- Anzeige der Fenster-offen-Erkennung optional
- readonly option hattest du ja schon erwähnt
Wenn man das widget nur als Thermometer verwendet, fallen einige sachen natürlich weg.
Hi yersinia.
Du hast mir einen guten Überblick gegeben was zu tun ist/wäre.
Bin ja da auch schon am Aufbau. Ich benutze leider auch kein Thermostat. "Nur" den ebus für die Heizung. Da gibt es ja aber auch desired-temp bzw target-temp und measured-temp etc.. Da kann ich schon bissl testen. Batterie usw leider nicht. Da brauchen wir dann Unterstützer..
Zitat
- der angezeigte Maximalwert sollte nicht auf x°C eingeschränkt werden (beim Thermometer auch nicht der Min-Wert)
ist nicht begrenzt...
LG mr_petz
Anbei zum spielen ein (um imho unwesentlichen Sachen) gekürztes list des HM-CC-RT-DN Clima channels (measured-temp, desired-temp und valve position):
Internals:
DEF 51xxxx04
FUUID 5c443cf3-f33f-3151-efb4-cc74658ab54ac216
NAME HM-CC-RT-DN_Clima
NOTIFYDEV global
NR 90
NTFY_ORDER 50-HM-CC-RT-DN_Clima
STATE T: 19.0 desired: 18.0 valve: 0
TYPE CUL_HM
chanNo 04
device HM-CC-RT-DN
.attraggr:
.attreocr:
measured-temp
desired-temp
.attrminint:
Helper:
READINGS:
2019-01-11 17:49:21 .R-boostPeriod 5 min
2019-01-11 17:49:21 .R-decalcTime 11:00
2019-01-11 17:49:21 .R-decalcWeekday Sat
2019-01-11 17:49:21 .R-reguExtI 15
2019-01-11 17:49:21 .R-reguExtP 30
2019-01-11 17:49:21 .R-reguExtPstart 30
2019-01-11 17:49:21 .R-reguIntI 18
2019-01-11 17:49:21 .R-reguIntP 33
2019-01-11 17:49:21 .R-reguIntPstart 45
2019-01-11 17:49:21 .R-showWeekday off
2019-01-11 17:49:21 .R-tempMax 30.5 C
2019-01-11 17:49:21 .R-tempMin 4.5 C
2019-01-11 17:49:21 .R-valveErrPos 15 %
2019-01-11 17:49:21 .R-valveMaxPos 100 %
2019-01-11 17:49:21 .R-winOpnDetFall 1.4 K
2019-01-11 17:49:21 .R-winOpnMode off
2019-01-11 17:49:21 .R-winOpnPeriod 15 min
2019-01-11 17:49:21 .R-winOpnTempI 12 C
2021-09-24 08:53:22 .associatedWith HM-CC-RT-DN,HM-CC-RT-DN_Clima,HM-CC-RT-DN_ClimaTeam,HM-CC-RT-DN_Climate,HM-CC-RT-DN_Weather,HM-CC-RT-DN_WindowRec,HM-CC-RT-DN_remote
2021-05-30 14:21:23 .peerListRDate 2021-05-30 14:21:23
2021-05-20 13:34:23 CommandAccepted yes
2019-01-11 17:49:21 R-boostPos 80 %
2019-01-11 17:49:21 R-btnNoBckLight off
2019-01-11 17:49:21 R-dayTemp 21 C
2019-01-11 17:49:21 R-daylightSaveTime on
2019-01-11 17:49:21 R-modePrioManu all
2019-01-11 17:49:21 R-modePrioParty all
2019-01-11 17:49:21 R-nightTemp 17 C
2019-01-11 17:49:21 R-noMinMax4Manu off
2019-01-11 17:49:21 R-regAdaptive on
2019-01-11 17:49:21 R-showInfo time
2019-01-11 17:49:17 R-sign off
2019-01-11 17:49:21 R-tempOffset 0.0K
2019-01-11 17:49:21 R-valveOffsetRt 0 %
2019-01-11 17:49:21 R-winOpnBoost off
2021-05-30 14:21:28 R_0_tempListSat 12:00 18.0 24:00 18.0
2021-05-30 14:21:28 R_1_tempListSun 12:00 18.0 24:00 18.0
2021-05-30 14:21:28 R_2_tempListMon 12:00 18.0 24:00 18.0
2021-05-30 14:21:28 R_3_tempListTue 12:00 18.0 24:00 18.0
2021-05-30 14:21:28 R_4_tempListWed 12:00 18.0 24:00 18.0
2021-05-30 14:21:28 R_5_tempListThu 12:00 18.0 24:00 18.0
2021-05-30 14:21:28 R_6_tempListFri 12:00 18.0 24:00 18.0
2021-05-30 14:21:28 R_tempList_State verified
2021-05-30 14:21:24 RegL_01. 00:00 08:00
2021-05-30 14:21:28 RegL_07. 00:00 01:2A 02:22 03:09 04:3D 05:18 06:03 07:00 08:16 09:07 0A:30 0B:00 0C:64 0D:0F 0E:05 0F:00 10:00 11:00 12:09 13:0E 14:48 15:90 16:49 17:20 18:4C 19:F0 1A:51 1B:14 1C:4D 1D:20 1E:45 1F:20 20:45 21:20 22:45 23:20 24:45 25:20 26:45 27:20 28:45 29:20 2A:45 2B:20 2C:45 2D:20 2E:48 2F:90 30:49 31:20 32:4C 33:F0 34:51 35:14 36:4D 37:20 38:45 39:20 3A:45 3B:20 3C:45 3D:20 3E:45 3F:20 40:45 41:20 42:45 43:20 44:45 45:20 46:45 47:20 48:48 49:90 4A:49 4B:20 4C:4C 4D:F0 4E:51 4F:14 50:4D 51:20 52:45 53:20 54:45 55:20 56:45 57:20 58:45 59:20 5A:45 5B:20 5C:45 5D:20 5E:45 5F:20 60:45 61:20 62:48 63:90 64:49 65:20 66:4C 67:F0 68:51 69:14 6A:4D 6B:20 6C:45 6D:20 6E:45 6F:20 70:45 71:20 72:45 73:20 74:45 75:20 76:45 77:20 78:45 79:20 7A:45 7B:20 7C:48 7D:90 7E:49 7F:20 80:4C 81:F0 82:51 83:14 84:4D 85:20 86:45 87:20 88:45 89:20 8A:45 8B:20 8C:45 8D:20 8E:45 8F:20 90:45 91:20 92:45 93:20 94:45 95:20 96:48 97:90 98:49 99:20 9A:4C 9B:F0 9C:51 9D:14 9E:4D 9F:20 A0:45 A1:20 A2:45 A3:20 A4:45 A5:20 A6:45 A7:20 A8:45 A9:20 AA:45 AB:20 AC:45 AD:20 AE:45 AF:20 B0:48 B1:90 B2:49 B3:20 B4:4C B5:F0 B6:51 B7:14 B8:4D B9:20 BA:45 BB:20 BC:45 BD:20 BE:45 BF:20 C0:45 C1:20 C2:45 C3:20 C4:45 C5:20 C6:45 C7:20 C8:45 C9:20 CA:12 CB:21 CC:2D CD:0F CE:1E CF:1E
2021-09-24 11:45:35 ValvePosition 0
2021-09-24 11:45:35 boostTime -
2021-05-30 14:21:58 cfgState ok
2021-09-24 11:45:35 controlMode auto
2021-09-24 11:45:35 desired-temp 18.0
2021-09-24 11:45:35 measured-temp 19.0
2021-09-24 11:45:35 partyEnd -
2021-09-24 11:45:35 partyStart -
2021-09-24 11:45:35 partyTemp -
2021-05-20 13:34:23 recentStateType ack
2021-09-24 11:45:35 state T: 19.0 desired: 18.0 valve: 0
2021-09-24 08:53:21 tempTmplSet HM-CC-RT-DN_Clima
Attributes:
model HM-CC-RT-DN
Und vom HM-CC-RT-DN selbst (batteryLevel):
Internals:
DEF 51xxxx
FUUID 5c443cf3-f33f-3151-bf9f-82590899f73c23be
IODev nanoCUL_868_2_Net
LASTInputDev nanoCUL_868_1
MSGCNT 152
NAME HM-CC-RT-DN
NOTIFYDEV global
NR 86
NTFY_ORDER 50-HM-CC-RT-DN
STATE CMDs_done
TYPE CUL_HM
channel_01 HM-CC-RT-DN_Weather
channel_02 HM-CC-RT-DN_Climate
channel_03 HM-CC-RT-DN_WindowRec
channel_04 HM-CC-RT-DN_Clima
channel_05 HM-CC-RT-DN_ClimaTeam
channel_06 HM-CC-RT-DN_remote
READINGS:
2020-10-01 13:15:10 .D-devInfo 00FFFF
2020-10-01 13:15:10 .D-stc 59
2018-12-16 09:51:02 .R-btnLock off
2018-12-16 09:51:02 .R-globalBtnLock off
2018-12-16 09:51:02 .R-localResDis off
2018-12-16 09:51:02 .R-lowBatLimitRT 2.1 V
2018-12-16 09:51:02 .R-modusBtnLock off
2021-09-24 08:53:22 .associatedWith HM-CC-RT-DN,HM-CC-RT-DN_Clima,HM-CC-RT-DN_ClimaTeam,HM-CC-RT-DN_Climate,HM-CC-RT-DN_Weather,HM-CC-RT-DN_WindowRec,HM-CC-RT-DN_remote
2021-09-24 11:51:10 .protLastRcv 20210924115110
2021-09-24 09:03:20 Activity alive
2021-09-24 11:05:40 CommandAccepted yes
2020-10-01 13:15:10 D-firmware 1.5
2020-10-01 13:15:10 D-serialNr NEQxxxxxx
2021-09-24 08:53:20 IODev nanoCUL_868_2_Net
2020-05-16 13:52:18 PairedTo 0xA1B2C3
2018-12-16 09:51:02 R-backOnTime 10 s
2018-12-16 09:51:02 R-burstRx on
2018-12-16 09:51:02 R-cyclicInfoMsg on
2018-12-16 09:51:02 R-cyclicInfoMsgDis 0
2018-12-16 09:51:02 R-pairCentral 0xXXXXXX
2020-05-16 13:52:18 RegL_00. 00:00 01:01 02:01 09:01 0A:A1 0B:B2 0C:C3 0E:0A 0F:00 11:00 12:15 16:00 18:00 19:00 1A:00
2021-05-31 08:06:35 RegL_07.
2021-03-09 13:38:43 actuator 38
2021-09-24 11:51:10 battery ok
2021-09-24 11:51:10 batteryLevel 2.7
2021-05-30 14:21:58 cfgState ok
2021-09-24 10:59:30 commState CMDs_done
2021-03-09 13:38:43 desired-temp 19.0
2021-03-09 13:38:43 measured-temp 20.3
2021-09-24 11:51:10 motorErr ok
2020-05-16 13:50:03 powerOn 2020-05-16 13:50:03
2020-05-16 13:50:03 recentStateType info
2021-09-24 10:59:30 state CMDs_done
2021-09-24 10:59:30 time-request -
.mId 0095
IOgrp VCCU:nanoCUL_868_2_Net
actCycle 000:10
actStatus alive
autoReadReg 5_readMissing
event-on-change-reading .*
expert defReg,rawReg
firmware 1.5
icon hc_wht_regler
model HM-CC-RT-DN
serialNr NEQxxxxxx
subType thermostat
Moin,
Toll, dass du dich damit beschäftigst.
Das Thermostat-Widget ist das einzige was mir fehlt um endlich auf ftui3 um zu stellen.
Bei mir sieht das wie im Anhang aus.
Die oberen Reihen sind nur Infos
Das Widget zeigt in der Mitte gross die gewünschte Temp 20.5
darunter die Ventilposition 2% und
oben die Ist-Temp
so würde es zumindest für mich ausreichen.
<div data-type="thermostat" data-device="Heizung_WoZi"
data-touch-height="150"
data-touch-width="150"
data-valve="Valve"
data-get="state"
data-temp="Temp"
data-step="0.5"
data-set="" class="small"></div>
Ja danke für die Infos.
Könntet ihr mir noch bitte sagen ob der grip/Zeiger bedienbar ist? Oder was der für eine Funktion-/en hat?
Danke und lg mr_petz
Edit.
Ich vermute, dass der Zeiger zum setzen der solltemp und zum ausschalten vom Thermostat ist.
Wenn der Sollwert gesetzt wurde, dann wird der Anfang der Farbscala an den Ticks danach gesetzt.
Das Ende der Farbscala zeigt die Aktuelle Temperatur an.
Richtig???
Du vermutest richtig.
über den Zeiger setzt man die Solltemperatur.
Die Farbscala verbindet quasi die eingestellte Soll,- mit der Ist-Temperatur.
Die Min und Max-Werte sollte man im Widget vorgeben können. Meine Thermostate gehen in der Error-Mode wenn ich versuche Werte zu senden die nicht zwischen 5 und 30 Grad sind. Wobei eine feste Vorgabe auch die Nachkommastelle .0 oder .5 sein muss.
Schön wäre noch wenn das Widget bei der Bedienung grösser wird zwecks besserer Einstellbarkeit.
Anbei noch einmal Bilder.
1. Regler ganz links
2. Regler rechts
3. Regler beim bedienen
Hi, nochmal eine Verständnisfrage bzw Vorschlag.
Würde es nicht mehr sinn machen (visuell), wenn beim Hochdrehen der SollTemp die Farbscala der Ticks grau bleibt und erst mit steigender Ist-Temperatur angeht?
So würde man sehen das die SollTemp noch nicht erreicht ist.
Der Zeiger hat dann trotzdem die entsprechende soll-Farbe...
Noch eine andere Frage. Kommen alle Readings wie Temp,Ventil,Batterie vom gleichen Device? Wenn ja, kann ich das gut umsetzen.
mfg mr_petz
Zitat von: mr_petz am 27 September 2021, 09:38:21Würde es nicht mehr sinn machen (visuell), wenn beim Hochdrehen der SollTemp die Farbscala der Ticks grau bleibt und erst mit steigender Ist-Temperatur angeht?
So würde man sehen das die SollTemp noch nicht erreicht ist.
Der Zeiger hat dann trotzdem die entsprechende soll-Farbe...
Finde ich eine gute Idee, solange man die Differenz Ist zu Soll visuell gut sehen kann. Wie würdest du den Fall abbilden, wenn Soll < Ist (zB im Sommer) ist?
Zitat von: mr_petz am 27 September 2021, 09:38:21Kommen alle Readings wie Temp,Ventil,Batterie vom gleichen Device?
Bei der CUL_HM standard Konfiguration mit HMclassic imho ja wenn man dies direkt aus dem Stellantrieb (RT-DN) ausliest, bei TSCUL_HM nicht (siehe meine config weiter oben) - da werden einige Daten über verschiedene Channel -sprich: FHEM-Devices- geliefert.
Zusätzlich kann es sein, dass ich zwar verschiedene Stellantriebe (RT-DN) aber nur einen (Raum-)Thermostat (TC) habe. Dann möchte der Anwender zB nur die Soll/Ist-Temperatur vom TC und nicht vom RT-DN anzeigen.
Wie es bei anderen Stellantrieben (Zigbee? HmIP?) aussieht, kann ich nicht beurteilen.
Zitat von: yersinia am 27 September 2021, 10:32:54
Finde ich eine gute Idee, solange man die Differenz Ist zu Soll visuell gut sehen kann. Wie würdest du den Fall abbilden, wenn Soll < Ist (zB im Sommer) ist?
Wenn Soll<Ist, würde ich die Farbscala vom Soll zu Ist aktivieren.
Bei off könnte ich es auch mit off anzeigen und die Farbscala wäre da aus.
So dachte ich mir das.
Edit:Anhang zum zeigen hinzugefügt...
Zitat von: yersinia am 27 September 2021, 10:32:54
Bei der CUL_HM standard Konfiguration mit HMclassic imho ja wenn man dies direkt aus dem Stellantrieb (RT-DN) ausliest, bei TSCUL_HM nicht (siehe meine config weiter oben) - da werden einige Daten über verschiedene Channel -sprich: FHEM-Devices- geliefert.
Zusätzlich kann es sein, dass ich zwar verschiedene Stellantriebe (RT-DN) aber nur einen (Raum-)Thermostat (TC) habe. Dann möchte der Anwender zB nur die Soll/Ist-Temperatur vom TC und nicht vom RT-DN anzeigen.
Wie es bei anderen Stellantrieben (Zigbee? HmIP?) aussieht, kann ich nicht beurteilen.
Ok. Dann müsste man mehre Device in der Config anlegen.
Ich kann immer das komplette oder mit get einzelne Readings vom Device auslesen.
Mal sehen wie ich das umsetzen werde...
Also ich würde es schöner finden wenn die Scala auch farbig bleibt wenn Ist<Soll.
Mit freundlichen Grüßen
Nochmal zum Ist<Soll.
Neuer Vorschlag siehe Anhang.
Da sieht man auf jedenfall das geheizt wird bzw das es nach oben geht.
Ich bin immer noch der Meinung, das man hier einen visuellen Unterschied zu Soll<Ist machen sollte...
Was denkt ihr?
lg mr_petz
Ja das mit dem Unterschie soll/ ist sehe ich auch so. So wie im Beispiel gefällt mir das sehr gut.
By the way- wahrscheinlich stelle ich mich doof an- wo finde ich den Thermostat?
VG
Thomas
Zitat von: tom2966 am 30 September 2021, 15:14:58
By the way- wahrscheinlich stelle ich mich doof an- wo finde ich den Thermostat?
VG
Thomas
Sorry. Ist noch im Bau ;)
Hi@all.
Ich glaube es hat sich hier vielleicht erledigt.
setstate hat es im Knob mit drin. siehe Demo ganz unten:
https://knowthelist.github.io/ftui/www/ftui/examples/knob.html
Testet es einfach mal.
das war nur ein erster Versuch, das zu testen. Bei HM Thermostat gibt es das Problem, dass nach Änderung der desired-temp, das Minuten braucht, eh sich das in den Readings ändert. Es bleibt erst der state auf "set_desired-temp <wert>" stehen, bis das verarbeitet wurde.
Ok. Ich hätte ja auch schon eine Test-Version, aber leider keine Thermostate...
Ich teste immer mit meinem ebusd an der Heizung. Da werden die Readings sofort aktualisiert..
Mal sehen...
Ok. ich bin schon weiter gekommen unabhängig vom Stand von setstate.
Man könnte die Optik wie im Anhang mit Icons gestalten.
Icons und Werte sind hier fiktiv nur zur Veranschaulichung.
1.Wert === Battery
2.Wert === Valve-Position
3.Wert === Humidity
Eine Testversion werde ich in kürze hochladen.
lg mr_petz
Hi@all.
Erste Testversion!
Settings:
[(value)]="Device:Reading" --> kann auch set get auseinander sein
[temp]="Device:Reading" --> temperatur
[battery]="Device:Reading" -> battery
[valve]="Device:Reading" --> valve-position
[humidity]="Device:Reading" --> humidity
size="110" --> Standard (muss nicht angegeben werden)
min="15" --> Standard (muss nicht angegeben werden)
max="35" --> Standard (muss nicht angegeben werden)
tick="0" --> Standard (muss nicht angegeben werden und wird aus min,max,step errechnet)
step="0.5" --> Standard (muss nicht angegeben werden)
degrees="240" --> Standard (muss nicht angegeben werden)
rotation="-120" --> bei bedarf Drehung
unit=" °C" --> Einheit
is-thermometer --> Thermometeransicht
is-humidity --> Luftfeuchteansicht
value-in-rgb -> Soll Temperatur in RGB wie Ticks
temp-in-rgb -> Ist Temperatur in RGB wie Ticks
lowcolor="68, 119, 255"
mediumcolor="255,0,255"
highcolor="255,0,0"
movegradient="6" --> zum verschieben der Farbscala
readonly --> bei Thermometer automatisch
no-min-max --> wenn gesetzt, werden die min und max Werte nicht mehr angezeigt
has-zoom -> Zoom aktivieren
Bsp:
<ftui-thermostat
[(value)]="Heizung:Soll"
[temp]="Heizung:Temp"
[battery]="Heizung:Batt"
[valve]="Heizung:Valve"
[humidity]="Heizung:Humi"
>
</ftui-thermostat>
Ich hoffe das sollte fürs erste reichen. Testet es und sagt einfach was geht oder nicht geht.
Wie gesagt ist eine Testversion. Bei meinen Tests hat alles soweit funktioniert...
Ich konnte mit meinen Mitteln erstmal nichts anders machen...
Mir geht es auch erstmal rein um die Funktion. Optik kann man noch anpassen...
ps. Zoom geht auch schon zum testen.
Edit:
set-Verfahren geändert nach Update vom masterGit
läuft super.
Kann man es so gestalten, dass man einige readings ausblenden kann (z.b. battery)?
Bei mir sieht es sehr gedrungen aus.
Mit freundlichen Grüßen
Noch etwas.
Es sind 24°C erreicht aber die Ist-Temperatur (farblicht) steht bei 23,5
Anbei ein Bild zur Verdeutlichung
Zitat von: Shadow3561 am 09 Oktober 2021, 15:46:35
Noch etwas.
Es sind 24°C erreicht aber die Ist-Temperatur (farblicht) steht bei 23,5
Anbei ein Bild zur Verdeutlichung
Ok.
Schön dass es ansich funktioniert. Ich habe kein Thermostat.
Sind deine TempWerte die kommen genau 23.5 und 24.0? Wenn ja ist da ein bug drinn. Wenn nein, muss ich das Runden anders gestalten...
Edit:
Habe es mal nachgestellt mit genauen Werten, da ist kein Fehlverhalten.
Kannst du deine Settings und das Reading mal bitte zeigen?
desired ist 24 und measured ist 23.99
Mit freundlichen Grüßen
Zitat von: Shadow3561 am 09 Oktober 2021, 16:06:53
desired ist 24 und measured ist 23.99
Mit freundlichen Grüßen
Ok. da wird abgerundet in den Ticks setzen auf die x.5...
mal schauen ob das auch anders geht...
Auch bei mir (mit HM-IP Thermostat) läuft das super! Danke für die Arbeit! Der Bitte mit dem Ausblenden bezüglich Batt/ Feuchte/ Ventilöffnung schliesse ich mich an, zumal ja auch nicht alle Regler die Feuchte melden.
Ein Thema noch- immer beim Aktualisierung der Seite im Browser (Firefox) bekomme ich diese Meldung:
thermostat.component.js:330
TypeError:TickActive is undefined.
Meine Definition:
<ftui-thermostat
[(value)]="EG_Flur_Heizung:control"
[temp]="EG_Flur_Heizung:1.ACTUAL_TEMPERATURE"
[valve]="EG_Flur_Heizung:1.LEVEL"
max="30"
min="6"
tick="0"
size="70">
</ftui-thermostat>
Zitat von: tom2966 am 09 Oktober 2021, 16:28:48
Auch bei mir (mit HM-IP Thermostat) läuft das super! Danke für die Arbeit! Der Bitte mit dem Ausblenden bezüglich Batt/ Feuchte/ Ventilöffnung schliesse ich mich an, zumal ja auch nicht alle Regler die Feuchte melden.
Ein Thema noch- immer beim Aktualisierung der Seite im Browser (Firefox) bekomme ich diese Meldung:
thermostat.component.js:330
TypeError:TickActive is undefined.
Meine Definition:
<ftui-thermostat
[(value)]="EG_Flur_Heizung:control"
[temp]="EG_Flur_Heizung:1.ACTUAL_TEMPERATURE"
[valve]="EG_Flur_Heizung:1.LEVEL"
max="30"
min="6"
tick="0"
size="70">
</ftui-thermostat>
Ok. Wie gesagt, es geht erstmal um die Funktion.
Luftfeuchte etc. kann ich noch rausnehmen wenn es nicht definiert ist.
Der Tickfehler kommt nur beim refresh oder erstladen oder?
Das merze ich noch aus...
ZitatOk. Wie gesagt, es geht erstmal um die Funktion.
Bei mir, Safari unter macOS BigSur, läuft alles bestens. Firefox ebenfalls ohne Fehler.
ok. zum testen. jetzt sollte er richtig Runden und den Tick an der richtigen Stelle setzen..
Tempwerte werden jetzt wenn Bsp.: größer 22.25 auf 22.5 und wenn größer 22.75 auf 23.0 gerundet. Umgekehrt halt abgerundet.
Edit: wenn keine battery etc. angegeben, dann ist das Icon nicht mehr zu sehen...
Zitat von: mr_petz am 09 Oktober 2021, 17:27:36
ok. zum testen. jetzt sollte er richtig Runden und den Tick an der richtigen Stelle setzen..
Tempwerte werden jetzt wenn Bsp.: größer 22.25 auf 22.5 und wenn größer 22.75 auf 23.0 gerundet. Umgekehrt halt abgerundet.
lauft
Zitat von: mr_petz am 09 Oktober 2021, 16:37:35
Ok. Wie gesagt, es geht erstmal um die Funktion.
Luftfeuchte etc. kann ich noch rausnehmen wenn es nicht definiert ist.
Der Tickfehler kommt nur beim refresh oder erstladen oder?
Das merze ich noch aus...
Moin- noch mal danke für die geile Arbeit. Bin noch beim Testen- die Fehlermeldung kommt nur beim erstladen und refresh... soweit ich bisher gesehen habe ist das aber Abhängig von den Werten tick/ min/ max- bei max 30 und min 6 kommt bei tick 0 oder 12 die Meldung, bei tick 1 zum Beispiel nicht. Und wenn der Fehler auftritt, daa ist die Ist- Temperator als "0,0" angezeigt, am min- tick. Nach einiger Zeit wird das aber richtig dargestellt- ich bin noch nicht sicher ob das nicht auch was mit HM-IP zu tun hat...Ich teste weiter.
Danke fürs testen. Schau mal bitte welche Werte (Temp) bei dem Fehler gerade am Thermostat sind, damit ich das nachstellen kann.
Kann mir gut vorstellen, dass da vielleicht falsche oder minuswerte gesendet werden???
Zum nachstellen brauche ich dann deine Definitionen/Settings und Tempwerte.
Edit:
Ich habe mal noch die Bedingungen angepasst. Anhang dort wie beim letzten mal.
https://forum.fhem.de/index.php/topic,123084.msg1178702.html#msg1178702
Hi,
hier noch mal meine Definition:
<ftui-thermostat
[(value)]="OG_Flur_Heizung:control"
[temp]="OG_Flur_Heizung:1.ACTUAL_TEMPERATURE"
[valve]="OG_Flur_Heizung:1.LEVEL"
max="30"
min="6"
tick="12"
size="70">
</ftui-thermostat>
Wenn ich nun auf Reload gehe, kommt noch die Fehlermeldung. Settings wie oben, Am Regler eingestellt/ angezeigt:
Soll: 20,5
Ist: 23,0
Das wird auch an der Skale angezigt. Nur die kleine Bschriftung mit dem Istwert steht auf 0,0 beim Min der Skale- siehe Screenshot. Nach einer gewissen Zeit- ich denke wenn vom Heizregler aktuelle Werte kommen- ist dann an der richtigen Stelle...
VG
Thomas
Ah ok. da muss ich erst einen fiktiven Wert annehmen bis er sich die Daten geholt hat.
Ich habe es mal nachgestellt.
Ich konnte keinen Fehler beobachten, selbst wenn die Tempwerte später kommen steht 0.0 da und dann setzt er alles auf normal.
Auch dann nicht wenn die tempwerte eine Minuszahl sind.
???
edit:
Ich konnte aber feststellen wenn der Soll nicht eingelesen ist und/oder kleiner min ist, dann kommt ein Fehler.
Ich hänge mal eine neue Version an:
https://forum.fhem.de/index.php/topic,123084.msg1178702.html#msg1178702
ps. Cache leeren nicht vergessen...
Und Update von FTUI3 machen. Ich musste das Set neu gestalten...
Hi,
Danke Dir- ich schaue mir das mal an, werde aber beruflich bedingt wahrscheinlich erst am Freitag dazu kommen. Ich melde mich auf jeden Fall!
Vg
Thomas
So, jetzt getestet. Beim ersten Aufruf kommt halt der Fehler noch.
thermostat.component.js: 335
TypeError:tickActive[i) is undefined
Einzige Konsequenz- die Ist Temp ist "0.0" und wird auch da angezeigt. Sobald die erste Datenübertragung (z.B. neue Einstellung oder einfach eine neue Wertübertragung) erfolgt ist der Wert dann da und alles wie es sein soll. Denke mal das hat mit HMIP zu tun. Ist erst mal ok so, ich starte ja mein Tablet nicht alle 5 Minuten neu..... Danke Dir für die Unterstützung...
VG
Thomas
Edit meint noch- das komische ist, das die Isttemperatur auf der Skala von Anfang an richtig angezeigt wird. Es ist tatsächlich nur die numerische Anzeige die nicht gleich stimmt...
Ok. Zur Erklärung zu Zeile 335:
Im Code wird wenn die aktuelle Temperatur > aktueller Ist-Soll ist = soll er Rückwärts die Ticks auf aktiv stellen.
Sprich wenn Soll<Ist werden die Ticks dazwischen dann Farbig.
Entweder verrent der sich da oder ich habe da noch einen Fehler drin.
Die Ticks werden zu erst geladen und sollten auch nur bei einer Länge von größer 0 verarbeitet werden.
Mal sehen ob ich einen Denkfehler habe oder ich muss die Ticks oder Werte noch anders behandeln.
Danke fürs testen. Ich probiere weiter.
Schön das auch das neue set funktioniert...
Edit:
Ach jetzt verstehe ich das von dir geschriebene.
Er setzt die farbigen Ticks Richtig, aber die Temp steht auf 0.0.
Das bedeutet ja, dass er die aktuelle Temp ja schon bekommen hat...????
Ich glaube ich muss noch das setzen der aktuellen Temp beim Start zu erst laden...
LG mr_petz
Zitat von: mr_petz am 15 Oktober 2021, 19:41:27
Edit:
Ach jetzt verstehe ich das von dir geschriebene.
Er setzt die farbigen Ticks Richtig, aber die Temp steht auf 0.0.
Das bedeutet ja, dass er die aktuelle Temp ja schon bekommen hat...????
Ich glaube ich muss noch das setzen der aktuellen Temp beim Start zu erst laden...
LG mr_petz
Ja genau so ist es... Sorry, wenn ich etwas unklar geschrieben hatte.
VG
Thomas
Hallo,
gibt es für den "tickActive"-Fehler eine Lösung oder einen Workaround? Ich möchte in eine View insgesamt 18 Thermostat-Anzeigen bauen... da käme dann bei jeder Aktualisierung einiges an roten Meldungen zusammen.
Der Fehler ist mit der letzten Version hier aus dem Thread:
thermostat.component.js:335
TypeError: tickActive[i] is undefined (Firefox)
TypeError: Cannot read properties of undefined (reading 'classList') (Chrome, Opera)
Vielen Dank schon mal :-)
P.S.: Wäre es möglich die Anzeige bei vorhandenem Thermometer nicht mehr automatisch auf readonly zu setzen? Ich fände eine Ansicht nur mit der Solltemperatur + Unit wesentlich "hübscher" als das "Soll: " ohne Einheit.
Sorry, darum muss ich mich noch kümmern...
lg
Edit:
Ist zur Zeit "nur" beim ersten Laden. Beim aktualisieren der Werte dann nicht mehr....
Zitat von: Bort76 am 11 November 2021, 08:59:39
...
P.S.: Wäre es möglich die Anzeige bei vorhandenem Thermometer nicht mehr automatisch auf readonly zu setzen? Ich fände eine Ansicht nur mit der Solltemperatur + Unit wesentlich "hübscher" als das "Soll: " ohne Einheit.
Warum willst du das Thermometer bedienen? Ist doch "nur" eine Anzeige.
Soll mit unit kann ich noch machen...
Zitat von: mr_petz am 11 November 2021, 09:54:04
Ist zur Zeit "nur" beim ersten Laden. Beim aktualisieren der Werte dann nicht mehr....
Wollte mich die Woche eigentlich mal in Ruhe hinsetzen und schauen, ob ich Dir da helfen kann und das gefixt bekomme. Klappt aber irgendwie nicht so ganz (das mit Ruhe und der Zeit) - daher habe ich es jetzt für mich schmutzig gelöst, indem ich die betroffenen Codestellen mit try...catch "ruhig" gestellt habe. Denn wie Du richtig schreibst: Es betrifft nur die Initialisierung und beeinträchtigt die Funktion nicht.
Zitat von: mr_petz am 11 November 2021, 09:54:04
Warum willst du das Thermometer bedienen? Ist doch "nur" eine Anzeige.
Soll mit unit kann ich noch machen...
Ich hätte es gerne bedienbar wie das Thermostat mit der Optik eines Thermometers - ist aber nichts, was unbedingt Priorität hätte :)
Hi.
Ich habe hier eine neue Version zum testen für Euch. ;)
Der Code wurde verändert und gekürzt.
Hinzugekommen ist:
- Das BatteryIcon wird jetzt mit step() inkl Farben (siehe animierter Anhang (ist hier nur zur Darstellung über einen dummy gesteuert!)) gemappt. Stepwerte sind <25, <50, <75, <100
- Das Value hat jetzt unit die man selber definieren kann, ansonsten bleibt es ohne unit (Bsp.: unit=" °C")
- Der Zoom wurde angepasst und muss mit has-zoom aktiviert werden
Restliche Definitionen sind wie hier beschrieben:
https://forum.fhem.de/index.php/topic,123084.msg1178702.html#msg1178702
Testet einfach mal und sagt wie und was geht/nicht geht usw...
!Ich habe mit der aktuellen Version von setstate getestet!
Ich hänge hier mal temporär an!
Danke und LG mr_petz
ps. Browsercache leeren, weil auch die css angepasst wurde!
Edit: nochmal code angepasst... (2 Schleifen weniger)
Hallo,
ich finde das Modul hervorragend und möchte es gerne bei mir einsetzen. Ich verwende als Template die Mobile Version von FTUI3 mir hellem Hintergrund. Vielleicht habe ich es übersehen, aber ich finde keine Einstellung wie ich die weiße Schrift verändern kann.
Vielen Dank
Hi wieral.
Es befindet sich noch in der Entwicklung wie es in der Threadüberschrift steht...
Schriftfarbe und allgemeines Layout sind zur Zeit nicht einstellbar.
Es geht mir erstmal rein um die Funktion(en) ob das soweit läuft!
Dann kann man immer noch in die Feinheiten gehen...
LG mr_petz
Zur Info: Es sollte nicht Ziel sein, alle möglichen Element-Farben per HTML-Attribute festlegen zu können.
Gerade Text-Farbe sollte als CSS-Variable verfügbar sein und im Theme-File überschrieben/festgelegt werden können.
Siehe knob.component.css
Ja, da gebe ich dir prinzipiell Recht.
Ich vermute aber, dass viele alle Farben der Texte unterschiedlich haben wollen..
z.B.: min,max grau; soll Weiß; aTemp rot oderso...
Ich kann aber noch var(--text-color) einfügen...
Hi.
Ich füge hier mal eine überarbeitete Version an.
Code überarbeitet (jetzt beim setzen nur noch eine for-schleife).
has-old-style als Attribute hinzugefügt. Hier werden bei Value>Temp die Ticks auch RGB-farbig (siehe Anhang).
In der CSS wurden den Textfarben var(--text-color) und den Icons var(--color-base) zugewiesen und damit die Farben vom Theme genommen.
Ausgenommen sind hier die Ticks und min-max.
Ändern der Textfarben könnte man zur Zeit z.Bsp. mit:
style="--text-color: black"
erreichen.
Ansonsten alles wie bisher...
LG mr_petz
ps. so sollte es auch bei dir @wieral passen mit den Textfarben.
Edit: zur Info für setstate ;): Ich baue auch noch in der nächsten Version var(--thermostat-text-color, var(--text-color)) ein, um es in einer user.css zu deklarieren!
Da muss ich mir noch einzelne Namen dafür ausdenken... w.z.Bsp.: var(--thermostat-value-color, var(--text-color)) oderso.
Für Vorschläge bin ich offen...
Hi@all.
Ich füge hier mal wieder eine überarbeitete Version an.
Code nochmal überarbeitet/gekürzt.
has-old-style hat jetzt kein Soll: mehr vor der Solltemperatur stehen.
Für die CSS können jetzt Iconfarben,Textfarben und die Größe der aktuellen Temperatur in einer user.css angepasst werden:
ftui-thermostat{
--thermostat-battery-color: standard=> --text-color;
--thermostat-battery-icon: standard=> --color-base;
--thermostat-valve-color: standard=> --text-color;
--thermostat-valve-icon: standard=> --color-base;
--thermostat-humidity-color: standard=> --text-color;
--thermostat-humidity-icon: standard=> --color-base;
--thermostat-value-color: standard=> --text-color;
--thermostat-text-color: standard=> rgba(255, 255, 255, 0.2);
--thermostat-temp-color: standard=> --text-color;
--thermostat-temp-size: standard=> 0.7em;
--thermostat-tick-color: standard=> rgba(255, 255, 255, 0.2);
}
Einfach hinter dem : eigene Werte einsetzen. Bsp:
ftui-thermostat{
--thermostat-value-color: var(--primary-color);
--thermostat-temp-color: white;
--thermostat-temp-size: 0.9em;
}
Testet es einfach und sagt bitte was noch fehlt oder nicht geht.
Ansonsten alles wie bisher...
LG mr_petz
Guten Morgen,
konnte die Änderung der Farbeinstellungen erst jetzt testen. Funktioniert prima.
Vielen Dank.
Hallo mr_petz,
erst einmal herzlichen Dank für das Thermostat. Ich habe es gleich einmal ausprobiert, in meinem Produktivsystem habe ich das FTUI-2 Widget verwendet.
Für den ersten Versuch habe ich ein HM-CC-RT-DN benutzt und es funktioniert wie es soll (wenn man den Channel _Clima benutzt).
Den Batteriestatus rechne ich linear von der Ausgangsspannung der Batterien:
[battery]="HM_Hzg_Poel_Kueche:batteryLevel | divide(3.1) | multiply(100) | round(0)"
Meine Wunschliste:
-Anzeige des 'neuen' Sollwerts wenn man den Zeiger bewegt
-Skalierbarkeit der Beschriftung, ggfs. Ist-Temperatur innen für den Fall das wenig Platz da ist.
Besinnliche Feiertage,
MDietrich
Hi MDietrich.
Zitat von: MDietrich am 23 Dezember 2021, 04:36:25
...
Für den ersten Versuch habe ich ein HM-CC-RT-DN benutzt und es funktioniert wie es soll (wenn man den Channel _Clima benutzt).
Was heisst das jetzt für mich "wenn man den Channel _Clima benutzt"?
Ich hatte ja schon erwähnt, dass ich selber keine Thermostate besitze...
Zitat
Den Batteriestatus rechne ich linear von der Ausgangsspannung der Batterien:
[battery]="HM_Hzg_Poel_Kueche:batteryLevel | divide(3.1) | multiply(100) | round(0)"
Ist das von Relevanz für die Entwicklung?
Zitat
Meine Wunschliste:
-Anzeige des 'neuen' Sollwerts wenn man den Zeiger bewegt
-Skalierbarkeit der Beschriftung, ggfs. Ist-Temperatur innen für den Fall das wenig Platz da ist.
zu 1.
Das ist ein Fehler vom letzten Update von mir. im zoom-modus geht es. Mache ich bei der nächsten Version wieder richtig.
zu 2.
Halte ich nicht für optimal, weil die Ist-Temperatur dann durchaus vom grib/zeiger verdeckt werden könnte...
Mal schauen was andere dazu sagen.
Ok bis dahin
LG mr_petz
Edit: Ich habe mal schnell den Soll Wert bei nicht has-zoom gefixt und oben am letzten Beitrag angehangen...
Hi mr_petz,
der Fix funtioniert!
Danke für die schnelle Reaktion,
MDietrich
Hallo mr_petz,
zur Info: ich habe mir für mein Projekt ein Template gebaut, anbei ein Bild.
- links: Verknüpft mit einem Wandthermostat HM-TC-IT-WM-W-EU. Das Icon für die Ventilstellung wird leider angezeigt, obwohl hier ein Leerstring "" übergeben wird.
- mitte: Verknüpft mit einem Heizkörperthermostat HM-CC-RT-DN. Hier ist das selbe Thema mit dem Icon für die Luftfeuchtigkeit
- rechts: wie mitte, während Kommandos anstehen oder abgearbeitet werden, wird dies durch den gelben Punkt signalisiert.
Funktioniert generell wie es soll, und ich habe eine Übersicht mit acht Anzeigen realisiert.
Bei der Anzeige auf dem Tablett ist Fully passt es auch, nur der Text bei Batterie, Ventilposition und Feuchte ist gegenüber dem Icon ein wenig nach oben versetzt.
Kann man das Setzen der Solltemperatur so anpassen, dass nur dann etwas passiert, wenn man direkt den Zeiger bewegt oder auf die Skala klickt? Wenn ich nicht aufpasse, ist mir schon passiert, dass ich die Solltemperatur auf den Min- bzw. Max-Wert setze, wenn ich im zweiten oder dritten Quadranten klicke.
Viele Grüße,
MDietrich
Zitat von: MDietrich am 29 Dezember 2021, 02:05:36
..
zur Info: ich habe mir für mein Projekt ein Template gebaut, anbei ein Bild.
- links: Verknüpft mit einem Wandthermostat HM-TC-IT-WM-W-EU. Das Icon für die Ventilstellung wird leider angezeigt, obwohl hier ein Leerstring "" übergeben wird.
- mitte: Verknüpft mit einem Heizkörperthermostat HM-CC-RT-DN. Hier ist das selbe Thema mit dem Icon für die Luftfeuchtigkeit
- rechts: wie mitte, während Kommandos anstehen oder abgearbeitet werden, wird dies durch den gelben Punkt signalisiert.
..
sieht doch schon gut aus :)
Wenn du so
[valve]="" definiert hast, dann wird auch das Icon angezeigt. Wenn du es nicht sehen willst, musst du [valve]="" komplett rausnehmen/löschen.
Zitat
Bei der Anzeige auf dem Tablett ist Fully passt es auch, nur der Text bei Batterie, Ventilposition und Feuchte ist gegenüber dem Icon ein wenig nach oben versetzt.
Ja. Das kommt bestimmt von der eigenen Größenangabe. Ich kann es noch zum korrigieren Benutzerdefiniert machen.
Ist ein wenig schwierig für mich mit dem css... :o
Zitat
Kann man das Setzen der Solltemperatur so anpassen, dass nur dann etwas passiert, wenn man direkt den Zeiger bewegt oder auf die Skala klickt? Wenn ich nicht aufpasse, ist mir schon passiert, dass ich die Solltemperatur auf den Min- bzw. Max-Wert setze, wenn ich im zweiten oder dritten Quadranten klicke.
Hier hatte ich bewusst den cursor-pointer extra so "groß" gemacht. Mal sehen ob ich das optional nur auf den Zeiger anpassen kann.
LG mr_petz
Edit: Ich habe jetzt auch den step fürs Icon Battery zum definieren rausgeholt. Ist aber esrtmal nur auf github von mir. zum definieren so angeben:
battery-icon-color="step('-99:danger, 25:warning, 50:success, 75:primary')"
Das gleiche gilt fürs Icon ansich:
battery-icon="step('-99:battery-0, 25:battery-1, 50:battery-2, 75:battery-3, 100: battery')"
Man kann natürlich auch "nur" ein map machen wenn man will...
Zitat von: MDietrich am 29 Dezember 2021, 02:05:36
zur Info: ich habe mir für mein Projekt ein Template gebaut, anbei ein Bild.
- links: Verknüpft mit einem Wandthermostat HM-TC-IT-WM-W-EU. Das Icon für die Ventilstellung wird leider angezeigt, obwohl hier ein Leerstring "" übergeben wird.
- mitte: Verknüpft mit einem Heizkörperthermostat HM-CC-RT-DN. Hier ist das selbe Thema mit dem Icon für die Luftfeuchtigkeit
- rechts: wie mitte, während Kommandos anstehen oder abgearbeitet werden, wird dies durch den gelben Punkt signalisiert.
Funktioniert generell wie es soll, und ich habe eine Übersicht mit acht Anzeigen realisiert.
Viele Grüße,
MDietrich
Hallo MDietrich,
magst Du Dein Template als Gedanken-Anregung für die Allgemeinheit teilen?
Gruß LuGu
Zitat von: mr_petz am 29 Dezember 2021, 09:01:41
sieht doch schon gut aus :)
Wenn du so [valve]="" definiert hast, dann wird auch das Icon angezeigt. Wenn du es nicht sehen willst, musst du [valve]="" komplett rausnehmen/löschen.
Da liegt mein Problem.
Das Wandthermostat liefert keine Ventilstellung und das Heizungsthermostat keinen Wert für die Feuchte. Wäre es möglich, dass das Icon nur dann angezeigt wird, wenn der String leer, sprich wenn Länge <1 ist?
Gruß,
MDietrich
ZitatDa liegt mein Problem.
Das verstehe ich ehrlich gesagt nicht, wenn Du z.B. ein Ventil hast, gibst Du da Attribut "valve" mit, hast Du keins, lässt Du es weg, wo ist denn da jetzt ein Problem, bzw. was soll der Sinn dabei sein, das Attribut valve="" anzugeben, wenn das Gerät gar kein Ventil hat?
Oder geht es dabei um ein content file? Das fände ich eher suboptimal, dann müsste man das nämlich bei allen Elemente so machen um eine Konsistenz zu erhalten, ob setstate da mitspielt?
Zitat von: LuGu am 29 Dezember 2021, 23:54:36
Hallo MDietrich,
magst Du Dein Template als Gedanken-Anregung für die Allgemeinheit teilen?
Gruß LuGu
Kein Problem, here it is:
<!--
Content-File for HOMEMATIC thermostat
MDietrich
Date: 2021-12-30
shows the thermostate using the component provided by mr_petz
with additional state information
prepared for a tile size of 5x4 (heightxwidth)
example:
<ftui-grid-tile row="1" col="3" height="5" width="4" shape="round"></ftui-grid-tile>
<ftui-content file="content_Thermostat.html"
Thermostat="HM_Hzg_Poel_WzT"
Raum="Wohnzimmer"
Kanal="Climate"
Sensor="HM_SEC_WZ">
</ftui-content>
</ftui-grid-tile>
todo: icons for humidity / valve position are shown even this reading is not provided
-->
<!--
/* FHEM tablet ui - FTUI */
/**
* UI builder framework for FHEM
*
* Version: 3.0.0
*
* Copyright (c) 2015-2020 Mario Stephan <mstephan@shared-files.de>
* Under MIT License (http://www.opensource.org/licenses/mit-license.php)
* https://github.com/knowthelist/ftui
*/
-->
<!--
Indexdatei für POEL Version 2022 mit FTUI 3
Version 0.0 - 2021-12-02 Beginn der Erstellung
-->
<!--
/*
* Ftui3 Thermostat component for FTUI version 3
*
* by mr_petz
*
* Under MIT License (http://www.opensource.org/licenses/mit-license.php)
*
* https://github.com/knowthelist/ftui
*/
-->
<ftui-title>
{{Raum}}
</ftui-title>
<ftui-row>
<ftui-column align-items="left" padding="1">
<ftui-cell>
<ftui-icon
type= "svg"
path="../images/openautomation"
size= "2"
[name]="{{Thermostat}}_{{Kanal}}:controlMode |
map('auto: sani_heating_automatic, manual: sani_heating_manual,
set_auto: sani_heating_automatic, set_manual: sani_heating_manual')"
color= "gray">
</ftui-icon>
</ftui-cell>
<ftui-cell>
<ftui-icon
name="circle"
color="warning"
[hidden]="{{Thermostat}} | map('CMDs_done : true, .* : false')"
[color]="{{thermostat}} | map('CMDs_done: success, CMDs_processing: warning, CMDs_pending: warning')"
size="0.5">
</ftui-icon>
</ftui-cell>
<ftui-cell>
<ftui-icon
type= "svg",
path="../images/myicons"
size= "2",
[name]="{{Thermostat}}:motorErr | map('ok: cog, error: cog')"
[color]="{{Thermostat}}:motorErr | map('ok : gray, error: error')">
</ftui-icon>
</ftui-cell>
</ftui-column>
<ftui-column align-items="top" margin="0">
<ftui-cell>
<ftui-thermostat
[(value)]="{{Thermostat}}_{{Kanal}}:desired-temp"
[temp]="{{Thermostat}}_{{Kanal}}:measured-temp"
[battery]="{{Thermostat}}:batteryLevel | add(-2.1) | divide(1.1) | multiply(100) | round(0)"
[valve]="{{Thermostat}}_{{Kanal}}:ValvePosition"
[humidity]="{{Thermostat}}_{{Kanal}}:humidity"
size="135"
min="10"
max="30"
step="0.5"
has-zoom="true"
>
</ftui-thermostat>
</ftui-cell>
<ftui-cell padding="0">
<ftui-label
[hidden]="{{Thermostat}} | map('CMDs_done : true, .* : false')"
[text]="{{Thermostat}}">
</ftui-label>
</ftui-cell>
</ftui-column>
<ftui-column align-items="right" padding="1">
<ftui-cell>
<ftui-icon
type= "svg"
path="../images/openautomation"
size= "2"
[name]="{{Sensor}}:state | map('closed: fts_window_1w, open: fts_window_1w_open')"
[color]="{{Sensor}}:state | map('open: yellow, closed: gray')">
</ftui-icon>
</ftui-cell>
<ftui-cell>
</ftui-cell>
<ftui-cell>
<ftui-icon
type= "svg",
path="../images/fhemSVG",
color="gray"
size= "2",
name="hm-cc-rt-dn">
</ftui-icon>
<ftui-badge text=" " color="transparent">
<ftui-icon
type= "svg"
path="../images/openautomation"
size= "0.5"
[name]="{{Thermostat}}:R-modusBtnLock | map('on: secur_locked, off: unlock, set_on: secur_locked, set_off: unlock')"
color="gray">
</ftui-icon>
</ftui-badge>
</ftui-cell>
</ftui-column>
</ftui-row>
Viel Spaß damit, über Rückmeldung/Verbesserungsvorschläge würde ich mich freuen.
MDietrich
Ich habe jetzt den Pointer Bereich reduziert. Kleiner würde ich es nicht machen. Beim knob ist der eigentlich auch so groß.
Ich habe mal ein Bild angehangen zur Veranschaulichung. Ein Umbau der PointerEvents auf nur den Zeiger ist leider sehr komplex und würde einen großen Umbau bedeuten.
Des Weiteren habe ich für die user.css noch die Top-Positionen von Batterie,Valve und Luftfeuchte aufgenommen.
Ist erstmal im git von mir...
ftui-thermostat{
--thermostat-battery-top: standard=> 60%;
--thermostat-battery-icon-top: standard=> 63%;
--thermostat-valve-top: standard=> 77%;
--thermostat-valve-icon-top: standard=> 81%;
--thermostat-humidity-top: standard=> 95%;
--thermostat-humidity-icon-top: standard=> 98%;
}
LG mr_petz
Edit: Wenn man jetzt beide Bilder so betrachtet sind die eine optische Täuschung. Witzig ;D
Edit2: Ich habe auch das setzen vom icon geändert. wenn def '' (Leer) und null, wird kein icon angezeigt!
@MDietrich
Hi, hast du die neue Version schon gestestet?
Habe da für dich paar Anpassungen drin.
Noch ein Hinweis zum Template:
In deiner Definition vom thermostat kannst du step="0.5" weglassen weil es Standard ist.
Auchbei has-zoom="true" brauchst du nur has-zoom zu definieren.
Das sollen aber nur Hinweise sein :)
LG mr_petz
Edit: Hinweis für alle die auch jedes ftui-thermostat einzeln stylen wollen und nicht wissen wie, dann gibt er einfach eine eigene id für jedes mit. Bsp.:
<ftui-thermostat wz-id="1" usw...
und in der user.css dann so:
[wz-id="1"]{
--thermostat-value-color:var(--danger-color);/*oder Farbe*/
--thermostat-temp-color:var(--danger-color);/*oder Farbe*/
}
Das ist nur ein Beispiel!
Hallo mr_petz,
ich bin erst gestern Abend zum Probieren gekommen. Mit dem kleineren Pointer-Bereich komme ich jetzt besser zurecht. Danke!!
Die Darstellung mit Fully Kiosk sieht jetzt auch gut aus.
Die beiden Parameter im content-file sind vom "Herumspielen" übrig geblieben.
LG und alles Gute für 2022
MDietrich
Hallo mr_petz,
ich habe aktuell immer eine Fehlermeldung auf der Browser-Console:
GET http://xxx.xxx.xxx.xxx.50:8083/fhem/themes/color-attributes.css net::ERR_ABORTED 404 (Not Found)
Der Auslöser ist in der Datei thermostat.component.js:
<style>@import "components/thermostat/thermostat.component.css";
@import "../themes/color-attributes.css";
</style>
Da ist ein "." zuviel, so geht es :):
<style>@import "components/thermostat/thermostat.component.css";
@import "./themes/color-attributes.css";
</style>
LG und ein schönes Wochenende
MDietrich
Gemäß der ersten Zeile wären jetzt immer noch zwei Zeichen "zuviel" ... "./" ... nicht unbedingt bezogen auf die Ladbarkeit der css, sondern bezogen auf kürzere Ladezeiten der js ... ;)
Danke für die Hinweise.
Habe es geändert.
LG mr_petz
Hallo mr_petz,
ich habe noch eine Frage.
Um ein unbeabsichtigtes Ändern der Solltemperatur zu verhindern habe ich:
a) ein Dummy definiert:
Internals:
CFGFN
FUUID 61e39af5-f33f-73da-f1cd-ce3ad0b2032e7986
NAME d_thermostatReadOnly
NR 8298
STATE true
TYPE dummy
OLDREADINGS:
READINGS:
2022-01-16 07:18:22 state true
Attributes:
room Dummy
setList true false
b) mit diesem Dummy setze ich das readonly-Flag:
<ftui-thermostat
[(value)]="{{Thermostat}}_{{Kanal}}:desired-temp"
[temp]="{{Thermostat}}_{{Kanal}}:measured-temp"
[battery]="{{Thermostat}}:batteryLevel | add(-2.1) | divide(1.1) | multiply(100) | round(0)"
[valve]="{{Thermostat}}_{{Kanal}}:ValvePosition"
[humidity]="{{Thermostat}}_{{Kanal}}:humidity"
size="130"
min="10"
max="30"
step="0.5"
[readonly]="d_thermostatReadOnly">
</ftui-thermostat>
c) mit einem Button ändere ich den Dummy:
<ftui-button
fill="solid"
states="true,false"
[value]="d_thermostatReadOnly"
(value)="d_thermostatReadOnly">
<ftui-label [text]="d_thermostatReadOnly:state | map('true:Locked, false:Unlocked')"></ftui-label>
</ftui-button>
Das "Umstellen" funktioniert einmal, danach bedarf es eines reloads, bevor etwas passiert. :'(
Gibt es hierzu eine andere Lösung?
Schönen Sonntag,
MDietrich
Hi, kannst du so mappen (funktioniert ohne map leider nicht):
<ftui-thermostat
[(value)]="{{Thermostat}}_{{Kanal}}:desired-temp"
[temp]="{{Thermostat}}_{{Kanal}}:measured-temp"
[battery]="{{Thermostat}}:batteryLevel | add(-2.1) | divide(1.1) | multiply(100) | round(0)"
[valve]="{{Thermostat}}_{{Kanal}}:ValvePosition"
[humidity]="{{Thermostat}}_{{Kanal}}:humidity"
size="130"
min="10"
max="30"
[readonly]="d_thermostatReadOnly | map('true: true, false: false')">
</ftui-thermostat>
Button für´n dummy:
<ftui-button
fill="solid"
states="true,false"
[(value)]="d_thermostatReadOnly">
<ftui-label [text]="d_thermostatReadOnly | map('true:Locked, false:Unlocked')"></ftui-label>
</ftui-button>
In meiner Testumgebung geht es so...
LG
Edit: Code angepasst. Ach du hast ja true und false im dummy...
ps :state brauchst du hier nicht....
Hallo mr_petz,
danke, jetzt mit dem Mapping funktioniert es.
Gruß,
MDietrich
Statt [readonly]="d_thermostatReadOnly | map('true: true, false: false')"
könnte man das
[readonly]="d_thermostatReadOnly | toBool()"
setzen
Ja danke. geht auch :)
toBool() hatte ich nicht auf dem Schirm...
LG
Hallo setstate.
danke für den Hinweis, wäre ich von alleine nicht drauf gekommen.
Sollte man ggfs. für "FTUI3 Tips und Tricks" aufheben.
Zitat von: setstate am 16 Januar 2022, 22:09:11
Statt [readonly]="d_thermostatReadOnly | map('true: true, false: false')"
könnte man das
[readonly]="d_thermostatReadOnly | toBool()"
setzen
Gruß,
MDietrich
@all
Habe noch bissl was hinzugefügt.
Könnt ihr euch hier anschauen (Demo).
https://mr-petz.github.io/ftui/www/ftui/examples/thermostat.html
und hier stehen die Beispiele im exampleFile:
https://github.com/mr-petz/ftui/blob/thermostat/www/ftui/examples/thermostat.html
LG mr_petz
Zitat von: mr_petz am 03 Oktober 2021, 13:49:42
Ok. Ich hätte ja auch schon eine Test-Version, aber leider keine Thermostate...
Falls Du Homematic hast (und natürlich einen Heizkörper, sonst ist ja schlecht), kann ich Dir gern (Fehlkauf) einen Homematic-Thermostaten schenken - einfach ansagen. Ansonsten bin ich jetzt auch hier ... :)
Wenn ich sofort beschreiben würde, was ich in FTUI hatte und in FTUI3 wieder darstellen möchte, wird das für den ersten Schritt zu umfangreich, da verzetteln wir uns sicher - zumal ich ja erstmal alles verstehen muss. Ok, mein aktueller erster Schritt: Ich hatte/habe das (aus dem Militär ausgeliehene) Konzept der taktischen Bildschirme. Man kann sich das so vorstellen wie ein Jetpilot, der zunächst auf dem Default-Bildschirm die allerwichtigsten Daten so angezeigt bekommt, dass er sie in einer Sekunde überblickt - dann kann er auf einzelne Elemente drücken und bekommt den jeweiligen konkreten taktischen Bildschirm - das Verfahren hat dann mehrere Unterebenen.
Auf dem Haupt-Schirm klicke ich also auf "Fenster, Türen, Temperaturen" - dann kommt der taktische Schirm mit den Stati der Fenster und Türen und Raumtemperaturen - also noch gar nicht wirklich Thermostat bzw. Thermostatsteuerung: Hier nur die Raumtemperaturen.
Ich habe möchte nun die IST-Temperaturen im genannten Konzept anzeigen und spielte mit volume3d und thermostat rum, siehe Grafik. Bitte beachten: Der selbstgewählte mir zur Verfügung stehende Raum ist klein, die Kachelelemente müssen also (gewollt) in die Richtung von Icons gehen:
<ftui-grid base-width="96" base-height="86" margin="4">
Die numerische Anzeige der Temperatur sehe ich als unerlässlich an, das habe ich zwei Fragen bzw. Bitten:
1) Ist es möglich, dass ich die Schriftgröße für die Temperatur unabhängig von der Widgetgröße ändern kann?
2) Derzeit ist da eine Nachkommastelle. Ist es möglich, dass ich darauf Einfluss nehmen kann, ob eine Nachkommastelle angezeigt wird?
Sowohl bei volume3d als auch bei thermostat arbeitest Du mit (scheinbar) gleitenden Farbübergängen. Darf ich da einen Wunsch, eine große Bitte äußern? Kann man das denn auch in "solid" haben? Also das Kreissegment wird bis zum angezeigten Wert solid mit Farbübergang gefüllt, danach bis zum rechten Skalenende grau. Ob man außen ganz kleine "ticks" dran macht wäre dann noch zu überlegen.
Bildschirmauszug "Fenster, Türen, Temperaturen":
Hallo mr-petz,
ich habe die aktuelle Version ausprobiert, stehe mit den Flags haszoom und hasoldstyle aber auf dem Schlauch.
egal ob ich wie im Beispiel:
<ftui-thermostat
[(value)]="{{Thermostat}}_{{Kanal}}:desired-temp"
[temp]="{{Thermostat}}_{{Kanal}}:measured-temp"
[battery]="{{Thermostat}}:batteryLevel | add(-2.1) | divide(1.1) | multiply(100) | round(0)"
[valve]="{{Thermostat}}_{{Kanal}}:ValvePosition"
[humidity]="{{Thermostat}}_{{Kanal}}:humidity"
size="130"
min="10"
max="30"
step="0.5"
has_old_style
has_zoom
[readonly]="d_thermostatReadOnly | toBool()">
</ftui-thermostat>
oder
ftui-thermostat
[(value)]="{{Thermostat}}_{{Kanal}}:desired-temp"
[temp]="{{Thermostat}}_{{Kanal}}:measured-temp"
[battery]="{{Thermostat}}:batteryLevel | add(-2.1) | divide(1.1) | multiply(100) | round(0)"
[valve]="{{Thermostat}}_{{Kanal}}:ValvePosition"
[humidity]="{{Thermostat}}_{{Kanal}}:humidity"
size="130"
min="10"
max="30"
step="0.5"
has_old_style=true"
has_zoom="true"
[readonly]="d_thermostatReadOnly | toBool()">
</ftui-thermostat>
benutze, ich habe weder den Zoom, noch den oldstyle...
Eine Idee was ich falsch mache?
LG und ein schönes Wochenende
MDietrich
@MDietrich
Die verwendeten Attribute
has_old_style
has_zoom
heissen
has-old-style
has-zoom
Es reicht die Angabe vom Attribut selbst, es muss kein Wert zugewiesen werden.
s.a. die von @mr-petz verlinkte Beispieldatei ...
@curt
Zitat von: curt am 22 Januar 2022, 04:47:26
Falls Du Homematic hast (und natürlich einen Heizkörper, sonst ist ja schlecht), kann ich Dir gern (Fehlkauf) einen Homematic-Thermostaten schenken - einfach ansagen. Ansonsten bin ich jetzt auch hier ... :)
Danke für´s Angebot, aber ich habe ja meine Heizung über e-bus ein/angebunden und da gibt es ja auch alle Daten... (ausser Battery)
Zitat
Die numerische Anzeige der Temperatur sehe ich als unerlässlich an, das habe ich zwei Fragen bzw. Bitten:
1) Ist es möglich, dass ich die Schriftgröße für die Temperatur unabhängig von der Widgetgröße ändern kann?
Ist Temperatur geht mit:
--thermostat-temp-size
und Soll Temperatur jetzt mit (ganz vergessen):
--thermostat-value-size
Zitat
2) Derzeit ist da eine Nachkommastelle. Ist es möglich, dass ich darauf Einfluss nehmen kann, ob eine Nachkommastelle angezeigt wird?
Da gibst du einfach wie in der Demo oben bei Humidity:
tofixed="2"
für 2 Nachkommastellen an.
Zitat
Sowohl bei volume3d als auch bei thermostat arbeitest Du mit (scheinbar) gleitenden Farbübergängen. Darf ich da einen Wunsch, eine große Bitte äußern? Kann man das denn auch in "solid" haben? Also das Kreissegment wird bis zum angezeigten Wert solid mit Farbübergang gefüllt, danach bis zum rechten Skalenende grau. Ob man außen ganz kleine "ticks" dran macht wäre dann noch zu überlegen.
Du willst einen kompletten Farbbalken. Richtig?
Das kannst du hierzur Zeit nur mit vielen ticks erreichen. Die Bedienung wird aber dann träge.
Mal sehen ob ich da was hinbekomme. Bin ja nicht so fit im css....
Ansonsten müsstest du dafür den knob von setstate nehmen.
LG mr_petz
Zitat von: OdfFhem am 22 Januar 2022, 05:57:28
@MDietrich
Die verwendeten Attribute
has_old_style
has_zoom
heissen
has-old-style
has-zoom
Es reicht die Angabe vom Attribut selbst, es muss kein Wert zugewiesen werden.
s.a. die von @mr-petz verlinkte Beispieldatei ...
Genau.
Nur @mr-petz stimmt hier nicht. ;D
Und wie gesagt den step="0.5" musst du nicht angeben, da er Standard ist.
LG mr_petz
Zitat von: mr_petz am 22 Januar 2022, 11:37:32
Nur @mr-petz stimmt hier nicht. ;D
... bzgl. FHEM falsch ... bzgl. GitHub richtig ... ::) ... dank FTUI3 bin ich eher ein Freund von "Kebab Case" ;)
Zitat von: mr_petz am 20 Januar 2022, 21:54:49
https://github.com/mr-petz/ftui/blob/thermostat/www/ftui/examples/thermostat.html
LG mr_petz
Ja GitHub wollte mein Underscore nicht :-\
Moin,
"_" oder "-" - the problem was in front of my computer!
Funktioniert jetzt alles, vielen Danke für die Unterstützung!
LG
MDietrich
Anbei noch ein Bild, wie es jetzt bei mir aussieht.
"Lock" schalte ich für alle Thermostate auf einmal. Status unlock setze ich nach 90 Sekunden wieder automatisch auf lock.
LG MDietrich
Zitat von: mr_petz am 22 Januar 2022, 11:35:08
tofixed="2"
Das funktioniert perfekt, danke.
Zitat von: mr_petz am 22 Januar 2022, 11:35:08
Ist Temperatur geht mit:
--thermostat-temp-size
und Soll Temperatur jetzt mit (ganz vergessen):
--thermostat-value-size
Das kriege ich leider nicht hin, da mache ich was falsch, das folgende funktioniert nicht:
<ftui-thermostat
[value]="Temperatur_Bad_unten:temperature"
size="45" readonly no-min-max has-zoom is-thermometer tofixed="1"
style="--text-color:my_yellow; --thermostat-temp-size:36px; --thermostat-value-size:36px;" class="size-2"
>
Zitat von: mr_petz am 22 Januar 2022, 11:35:08
Du willst einen kompletten Farbbalken. Richtig?
Exakt.
(Ggf außen wahlweise mit ganz kleinen Ticks.)
Zitat von: mr_petz am 22 Januar 2022, 11:35:08
Mal sehen ob ich da was hinbekomme. Bin ja nicht so fit im css....
Das hatte ja (aber in fhem selbst) jemand schon hinbekommen, Damian oder so. Siehe mein Beitrag #2043 mit Screenshot in https://forum.fhem.de/index.php/topic,115259.2040.html
Ich hatte noch keine Zeit zu suchen, der Code muss ja irgendwo sein - und der Thread ja auch. Im Idealfall kann man da mopsen oder den Autoren zur Mitarbeit überreden.
P.S. @mr_petz
Es ist Moderator @Damian , das Ganze ist ein DOIF-Projekt, siehe https://forum.fhem.de/index.php/topic,106059.0.html
Ein wunderschönes Beispiel eines Farbverlaufbalkens ist in diesem Thread unter #78 zu sehen.
Vielleicht bin ich zu naiv: Ggf. kann man dort sehen, wie er das mit bzw. ohne CSS macht - und das hier adaptieren.
Es geht NICHT darum, das komplette Projekt zu übernehmen, es geht darum, das Konzept des
solid-Farbverlaufs für Balken und Kreissegmente zu übernehmen bzw. sich von @Damian erklären zu lassen. (Leider kann ich sowas nicht selbst.)
Zitat von: curt am 24 Januar 2022, 03:30:53
..
Das kriege ich leider nicht hin, da mache ich was falsch, das folgende funktioniert nicht:
<ftui-thermostat
[value]="Temperatur_Bad_unten:temperature"
size="45" readonly no-min-max has-zoom is-thermometer tofixed="1"
style="--text-color:my_yellow; --thermostat-temp-size:36px; --thermostat-value-size:36px;" class="size-2"
>
Exakt.
(Ggf außen wahlweise mit ganz kleinen Ticks.)
...
Hi curt. Ich habe da was für dich. :D
Ich habe grundlegend am css und js geändert um optisch besser die verschiedene Größen darzustellen.
Also ziehe die neue Version vom GitHub (css und js)!
Zu deinem Anliegen. So wie ich es jetzt dir zeige, geht es bei mir:
<ftui-thermostat style="--thermostat-value-size:16px; --thermostat-tick-color:var(--gray);" class="size-1"
[value]="Temperatur_Bad_unten:temperature"
tick="180"
no-wide-ticks
size="45"
no-min-max
is-thermometer
tofixed="2">
</ftui-thermostat>
Sieht dann aus wie im Anhang. Bei gesetzten is-thermometer brauchst du kein readonly, ist automatisch.
Außerdem funktioniert kein has-zoom bei is-thermometer, da es ja readonly ist.
Zum vergrößern könntest du hier ein popup öffnen lassen mit einem größeren Thermostat.
Da fügst du einfach Bsp.: popup-target="Popup1" hinzu.
Die vielen ticks bringen deine optisch gewünschte Ansicht. :D
Hinzugekommen ist noch no-wide-ticks (es werden keine dicken Ticks gesetzt) damit das einheitlicher aussieht.
Teste es bitte und sag ob du so zufrieden bist.
LG mr_petz
Das wird ja richtig toll! Danke!
(Und danke für die Erläuterungen.)
Ich habe noch Fragen:
Diese drei angebbaren Werte (lowcolor usw.), da kann ich offenbar andere Farben angeben. Aber es geht nur mit drei alphanumerischen Angaben? Sprich: Sowas wie "my_signalred" oder "#A00000" geht nicht?
Gleiches Thema (nur lowcolor gesetzt) - ich arbeite mit min="0" max="40": Normierst Du da korrekt auf min/max oder versehentlich auf die Defaultwerte davon? (Oder habe ich das alles völlig falsch verstanden?)
Und reine Neugierde, ich brauche es momentan nicht: Bei style geht --textcolor:my_yellow nicht?
Zitat von: curt am 25 Januar 2022, 22:49:37
...
Ich habe noch Fragen:
Diese drei angebbaren Werte (lowcolor usw.), da kann ich offenbar andere Farben angeben. Aber es geht nur mit drei alphanumerischen Angaben? Sprich: Sowas wie "my_signalred" oder "#A00000" geht nicht?
Ja geht zur Zeit nur mit RGB Code.
Hier
https://www.w3schools.com/colors/colors_picker.asp?color=00bfff
kannst du die RGB Codes und die dazugehörigen Hex und HSL Codes bestimmen/ablesen.
Zitat
Gleiches Thema (nur lowcolor gesetzt) - ich arbeite mit min="0" max="40": Normierst Du da korrekt auf min/max oder versehentlich auf die Defaultwerte davon? (Oder habe ich das alles völlig falsch verstanden?)
min max geht standardmäßig von 15 bis 35. Daraus wird dann das Gradient gesetzt. zum verschieben der Farben gibt es noch movegradient="Eine Zahl" (Standard = 7).
Wenn du andere Start/Endwerte haben willst gibst du es einfach mit min="0" max="40" an.
Zitat
Und reine Neugierde, ich brauche es momentan nicht: Bei style geht --textcolor:my_yellow nicht?
Hier geht entweder
--text-color:my_yellow
oder für Ist
--thermostat-value-color:my_yellow
oder für text
--thermostat-text-color:my_yellow
Ich habe gerade bemerkt, dass das Thermostat nicht mehr mittig in der Höhe sitzt. Das behebe ich noch.
LG mr_petz
Zitat von: mr_petz am 25 Januar 2022, 23:21:23
Ja geht zur Zeit nur mit RGB Code.
Kein Problem.
Zitat von: mr_petz am 25 Januar 2022, 23:21:23
min max geht standardmäßig von 15 bis 35. Daraus wird dann das Gradient gesetzt.
Ich nahm 10-40 und (nur lowcolor gesetzt!) den ungültigen Farbwert #A00000 - mach das bitte testweise auch mal:
Da hatte ich ohne genauer testen zu können den Eindruck, dass Du versehentlich nicht die von mir gesetzten Begrenzer, sondern die Defaultbegrenzer nimmst - reine Vermutung meinerseits. Schau es Dir mal selbst an.
Zitat von: mr_petz am 25 Januar 2022, 23:21:23
zum verschieben der Farben gibt es noch movegradient="Eine Zahl" (Standard = 7).
Hatte ich gelesen, aber noch nicht bespielt.
Zitat von: mr_petz am 25 Januar 2022, 23:21:23
Ich habe gerade bemerkt, dass das Thermostat nicht mehr mittig in der Höhe sitzt. Das behebe ich noch.
Immer mit der Ruhe.
So. Ich habe die Position gefixt (denke ich).
Des Weiteren habe ich jetzt Hex Farben hinzugefügt und es gibt ein neues Attribute namens fadegradient um die einzelnen Farben zu strechen oder enger zu machen.
Bsp.:
lowcolor="#4477ff"
mediumcolor="#7744ff"
highcolor="#ff4477"
fadegradient="10"
Testet es einfach mal :D
LG mr_petz
Hi@all.
Ich experimentiere gerade ein wenig mit gradient am arc des knob herum.
Das ist ja alles in svg erstellt. Den Arc würde ich gern ins thermostat übernehmen.
Ich habe es auch schon hinbekommen Gradient darzustellen im svg und sogar auch mit canvas. Bei canvas sieht alles aber nicht so glatt aus.
Jetzt kommt meine Bitte/Frage. Wer kann gut mit svg umgehen und einen guten gradient für den arc erstellen?
Ich hänge mal ein Bild an, wie ich es derzeit habe (Habe hier den Knob genommen!).
Gradient war ja auch ein Wunsch von mir im Knob.
Mir geht es hier aber nicht um den Knob, sondern um den arc vom knob!
LG mr_petz
Edit: Habe es jetzt gut hinbekommen. Bild angehangen...
Weiss nicht ob setstate interresse hat das einzubauen?
Und wie siehts beim 10% aus? Wenn man einen linearGradient auf Stroke legt, sieht es bei 100% gut aus, aber klein sind auch alle Farben vorhanden.
Bei SVG müsste man den ARC in viele kleine Segmente zerlegen und jedem einzelnen eine berechnete Farbe geben. Aber ob dann noch die Performance gut ist, wenn man massenweise <path Elemente hat ...
Hi setstate.
Habe es so gelöst und es geht mit verschiedenen Größen in der Demo:
<svg class="svg" height="${this.height}" width="${this.width}" focusable="false">
<defs>
<linearGradient id="Gradient1" gradientTransform="rotate(100)">
<stop offset="0%" stop-color="#ff00dd"/>
<stop offset="20%" stop-color="#0000ff"/>
</linearGradient>
<linearGradient id="Gradient2" gradientTransform="rotate(80)">
<stop offset="10%" stop-color="#ff00dd"/>
<stop offset="20%" stop-color="#ff0033"/>
</linearGradient>
<pattern id="Pattern" x="0" y="0" width="160" height="160" patternUnits="userSpaceOnUse">
<g transform="rotate(0, 0, 0)">
<rect shape-rendering="crispEdges" x="0" y="0" width="160" height="640" fill="url(#Gradient1)"/>
<rect shape-rendering="crispEdges" x="80" y="0" width="160" height="640" fill="url(#Gradient2)"/>
</g>
</pattern>
</defs>
<g class="scale" stroke="gray"></g>
<path class="outline" d="" fill="none" stroke-width="${this.strokeWidth}" />
<path class="fill" d="" fill="none" style="stroke:url(#Pattern)" stroke-width="${this.strokeWidth}" />
<polygon class="needle" />
<circle class="handle" r="9" fill="none" />
<circle class="desired" r="5" fill="none" />
</svg>
Edit: also nur die Standard path..
Größen des Gradient sind hier noch fix.
Ist ja alles nur ein Vorschlag. Man kann durch die stop-offsets und dazugehörigen rotate ganz gut die Farben verteilen...
Habe es im Thermostat auch schon drin zum testen...
Ich kann ja noch Bescheid geben ob es mit verschiedenen Größen gut anpassbar ist oder nicht...
LG mr_petz
Zitat von: mr_petz am 30 Januar 2022, 17:26:45
Weiss nicht ob setstate interresse hat das einzubauen?
Vielleicht noch ein wenig früh ... aber erstmal sehr herzlichen Dank! Natürlich würde ich es begrüßen, wenn es dann von setstate eingebaut werden könnte.
Ich habe damit rumgespielt und da es mir gefiel in meine im Werden befindliche Ablösung von FTUI2 eingebaut.
Der erste Screenshot zeigt den taktischen Bildschirm, natürlich noch unfertig, siehe Markierung. Und es werden noch weitere Kacheln gefüllt werden, da wird es nochmals eine Farbanpassung geben müssen: Ein Tuschkasten soll es nicht werden.
Der zweite Screenshot ist tatsächlich fast fertig, da wird mir der Zustand der Türen/Fenster sowie die Temperaturen gezeigt. Dabei sind die Temperaturen nicht die des Thermostats; ich habe in jedem Raum zusätzlich ein Thermometer. (Künftig wird ein Klick auf ein Element jeweils eine weitere Unterseite zeigen, dort dann mit Diagramm sowie tatsächlich Thermostat. Und dort wird dann ein Popup sein - zur Steuerung des Thermostats.)
Folgendes fällt auf: Mit
Vivaldi (erste beiden Screenshots) sieht das alles ziemlich gut aus. Bei
Firefox (dritter Screenshot) ist das erkennbar anders: Da werden deutliche Artefakte erzeugt.
Was man auch wissen muss: Bei der Methode wirken nicht alle Farbübergänge, beispielsweise wirkt blau->gelb überhaupt nicht gut. Man kann nicht alles haben - und ich bin zufrieden: Das reicht mir. ;)
@mr_petz
Wo Du grad so schön dabei bist:
Bei der Putzfrau im ersten Sceenshot habe ich den Slider, Meter geht ja leider (noch?) nicht senkrecht. Wie kann ich Dich denn dazu überreden, diese schönen Farbverläufe auch bei Slider als Option einzubauen?
@curt
Meter und senkrecht:
<ftui-meter [value]="ftuitest" min="-10" max="30" height="6em"
color="ok-warning-alert"
is-vertical has-scale has-color-scale></ftui-meter>
Ja, ich hätte den Hauptthread zuerst lesen müssen ... da steht, dass das jetzt geht.
Okok, also müssen wir @mr_petz belatschern, dass er den Farbverlauf auch noch bei Meter einbaut ... :D
Zitat von: curt am 31 Januar 2022, 00:53:41
Ja, ich hätte den Hauptthread zuerst lesen müssen ... da steht, dass das jetzt geht.
Okok, also müssen wir @mr_petz belatschern, dass er den Farbverlauf auch noch bei Meter einbaut ... :D
Auch den Farbverlauf gibt es bei meter schon.
<ftui-meter [value]="ftuitest" min="-10" max="30" height="6em"
color="ok-warning-alert"
is-vertical has-scale has-color-scale>
</ftui-meter>
https://knowthelist.github.io/ftui/www/ftui/examples/meter.html (https://knowthelist.github.io/ftui/www/ftui/examples/meter.html)
Gruß LuGu
Zitat von: mr_petz am 30 Januar 2022, 23:10:10
Hi setstate.
Habe es so gelöst und es geht mit verschiedenen Größen in der Demo:
<svg class="svg" height="${this.height}" width="${this.width}" focusable="false">
<defs>
<linearGradient id="Gradient1" gradientTransform="rotate(100)">
<stop offset="0%" stop-color="#ff00dd"/>
<stop offset="20%" stop-color="#0000ff"/>
</linearGradient>
<linearGradient id="Gradient2" gradientTransform="rotate(80)">
<stop offset="10%" stop-color="#ff00dd"/>
<stop offset="20%" stop-color="#ff0033"/>
</linearGradient>
<pattern id="Pattern" x="0" y="0" width="160" height="160" patternUnits="userSpaceOnUse">
<g transform="rotate(0, 0, 0)">
<rect shape-rendering="crispEdges" x="0" y="0" width="160" height="640" fill="url(#Gradient1)"/>
<rect shape-rendering="crispEdges" x="80" y="0" width="160" height="640" fill="url(#Gradient2)"/>
</g>
</pattern>
</defs>
<g class="scale" stroke="gray"></g>
<path class="outline" d="" fill="none" stroke-width="${this.strokeWidth}" />
<path class="fill" d="" fill="none" style="stroke:url(#Pattern)" stroke-width="${this.strokeWidth}" />
<polygon class="needle" />
<circle class="handle" r="9" fill="none" />
<circle class="desired" r="5" fill="none" />
</svg>
Edit: also nur die Standard path..
Größen des Gradient sind hier noch fix.
Ist ja alles nur ein Vorschlag. Man kann durch die stop-offsets und dazugehörigen rotate ganz gut die Farben verteilen...
Habe es im Thermostat auch schon drin zum testen...
Ich kann ja noch Bescheid geben ob es mit verschiedenen Größen gut anpassbar ist oder nicht...
LG mr_petz
ok, danke. Ich habe es erstmal (so ähnlich) übernommen. ich habe es nur Theme-fähig gemacht. Ich möchte vermeiden, dass RGB-Werte direkt bei den Komponenten angegeben werden.
Meiner Meinung nach hat das folgende Nachteile:
- Bei Tag/Nacht Umschaltung per Theme, schalten diese Elemente nicht mit.
- bei einer Farbanpassung, muss man mit Such und Find alt mit neu in allen Files ersetzen, anstatt nur an einer Stelle im Themefile den Wert anzupassen.
- Viele setzen aus Bequemlichkeit oder aus Unwissenheit über die Bedeutung der Farben bei der Usability einfach zu viel unterschiedliche, zu knallige und einfach unschöne Farben: #ff0000, #00ff00
@setstate
Schön dass du es doch übernimmst. :D
Habe es gerade auf deiner Online-demo/examples getestet und da werden jetzt gar keine Farben mehr angezeigt!?
Habe es auch nochmal mit meiner Version mit 360° und Standardgröße und stroke-width="65" im example getestet und sieht so aus wie im Anhang.
LG mr_petz
Edit: Die Hex-Farben von mir waren nur zum testen gedacht. Bin gespannt wie deine Version läuft. :)
@setstate
Deine Version sieht auch gut aus und man kann mit color paar Vorgaben setzen.
Mir ist nur aufgefallen, dass du in der knob.css bei min,mix und max immer --knob-fill-color stehen hast. Sollte da nicht z.Bsp.: --knob-min-color etc stehen? Da ja sonst immer fill für alles gesetzt wird.
Das fill hattest du unter .fill in der css zum setzen der Gesamtfarbe drin und jetzt nicht mehr. Kann man das nicht voneinander trennen um einzelne Farben zu setzen?
Ich werde es dann auch so umsetzen. Ich kann viel lernen durch dich :D. gerade beim css. Danke!
LG mr_petz
Stimmt, da fehlte was. Ist jetzt ergänzt. Danke für den Hinweis
Zitat von: setstate am 31 Januar 2022, 09:00:19
- Viele setzen aus Bequemlichkeit oder aus Unwissenheit über die Bedeutung der Farben bei der Usability einfach zu viel unterschiedliche,
Ich kann dem Gedanken insoweit folgen, als das Du das grundsätzlich vorgibst - und wer das ändern will, muss user.css bemühen. Soweit ok.
Mit usability kenne ich mich auch ein wenig aus, daher muss nun Widerspruch erfolgen:
Zitat von: setstate am 31 Januar 2022, 09:00:19
zu knallige und
Was als knallig oder als matt wahrgenommen wird, hängt von sehr vielen Faktoren ab, ich nenne einige: Typ des Anzeigegeräts, Situation des Umgebungslichts, Sehbehinderungen wie Farbblindheiten. (Über Rot-Grün-Schwäche wird wohl jeder gehört haben. Aber ich zum Beispiel habe eine Blau-Grau-Schwäche.)
Zitat von: setstate am 31 Januar 2022, 09:00:19
einfach unschöne Farben:
Also das liegt nun im Auge des Betrachters.
Zitat von: LuGu am 31 Januar 2022, 08:00:38
Auch den Farbverlauf gibt es bei meter schon.
<ftui-meter [value]="ftuitest" min="-10" max="30" height="6em"
color="ok-warning-alert"
is-vertical has-scale has-color-scale>
</ftui-meter>
Ähmmm, nein.
Gemeint ist: Ich lege die untere Farbe, die mittlere Farbe sowie die obere Farbe fest. Und zwischen diesen Farben gibt es einen Farbverlauf, der automatisch errechnet wird.
Zitat von: curt am 02 Februar 2022, 06:17:09
Ähmmm, nein.
Gemeint ist: Ich lege die untere Farbe, die mittlere Farbe sowie die obere Farbe fest. Und zwischen diesen Farben gibt es einen Farbverlauf, der automatisch errechnet wird.
Aber genau das wir doch hier gemacht, wenn du eine Gradient Color mir drei Farben benutzt (z.B. "ok-warning-alert"). Oder du baust dir deinen eigene Gradient Color.
[color="ok-warning-alert"][is-vertical] {
--color-base: linear-gradient(var(--danger-color) 20%, var(--warning-color) 40%, var(--success-color) 60%);
}
Vielleicht habe ich ja auch dein Ansinnen nicht/falsch verstanden.
Gruß LuGu
Zitat von: LuGu am 02 Februar 2022, 07:39:09
Vielleicht habe ich ja auch dein Ansinnen nicht/falsch verstanden.
Im Zweifel habe
ich es nicht verstanden. Tasten wir uns mal heran, schau Dir bitte mal das Bild an (ignoriere bitte die Artefakte).
Das entsteht aus
<ftui-thermostat
[value]="my_dummy:state"
min="-10" max="40" lowcolor="#00FF00" mediumcolor="#FFFF00" higcolor="#8B0000" fadegradient="80"
size="45" no-min-max is-thermometer tofixed="1" tick="180" no-wide-ticks
style="--text-color:my_yellow; --thermostat-tick-color:var(--gray); --thermostat-value-size:16px;" class="size-1 bold"
>
Falls ich das (mit genau diesen drei Farben) bei
meter machen kann - zeigst Du mir bitte, wie das geht?
@setstate
Ich hätte da mal eine Fachfrage/Bitte.
Ich versuche gerade die Farben von min,mix,max direkt auszulesen um sie auch für meinen Zeiger zu setzen und anderweitig zu setzen.
Hier muss ich aber den Umweg über mein rgbGradient() gehen, da ich den Zeiger und die Ticks nicht als svg setzen lasse. Ich wollte die gesetzten oder die benutzerdefinierten Farben auslesen mit:
window.getComputedStyle(this.minColor).stopColor
es geht natürlich auch mit:
window.getComputedStyle(this.minColor).getPropertyValue('stop-color')
this.minColor ist hier natürlich ein shadowRoot.querySelector auf die class="min" vom <stop> des <svg>.
Bei beiden Versionen des Auslesens, wird mir nach dem ersten Laden mit Cacheleerung der Seite nur rgb(0,0,0) ausgegeben.
Bei einem refresh ohne Cacheleerung wird mir der richtige rgb()-Wert angezeigt.
Zum nachvollziehen habe ich es auch mit dem Knob getestet. Dort ist das Verhalten genauso. Es wird immer erst (mit Cacheleerung) der rgb(0,0,0) übergeben.
Getestet unter Chrome und FF.
Ich staune nur dass im svg immer die richtige Farbe da ist.
Egal ob beim Knob oder bei mir im Thermostat.
Ist das einlesen der CSS hier der Übeltäter? Ich habe meine CSS wie die deine definiert.
.min {
stop-color: var(--color-min, var(--thermostat-min-color, rgb(0,0,255)));
}
.mix {
stop-color: var(--color-mix, var(--thermostat-mix-color, rgb(255,0,255)));
}
.max {
stop-color: var(--color-max, var(--thermostat-max-color, rgb(255,0,0)));
}
Wie kann/könnte ich die Farben auslesen, dass sie sofort verfügbar sind?
Da könnte ich dann auch die drei Farbattribute wegfallen lassen.
Ich hoffe du oder jemand anders kann mich da Unterstützen oder einen Tip geben. Danke.
LG mr_petz
getComputedStyle erwartet ein DOM-Element als Parameter, von dem eine Style-Eigenschaft ausgelesen werden soll.
Ist this.minColor eine Element? Ist das nicht nur eine Property eines Elementes?
Schau dir mal die Wrapperfunktion getStylePropertyValue, die im charts.component.js genutzt wird, an. Dort funktioniert das Auslesen, welche Styles auf das Element gelten, schon im constructor.
Zitat von: curt am 02 Februar 2022, 08:19:27
<ftui-thermostat
[value]="my_dummy:state"
min="-10" max="40" lowcolor="#00FF00" mediumcolor="#FFFF00" higcolor="#8B0000" fadegradient="80"
size="45" no-min-max is-thermometer tofixed="1" tick="180" no-wide-ticks
style="--text-color:my_yellow; --thermostat-tick-color:var(--gray); --thermostat-value-size:16px;" class="size-1 bold"
>
Falls ich das (mit genau diesen drei Farben) bei meter machen kann - zeigst Du mir bitte, wie das geht?
Das solltest
du hinbekommen. Aber die Farben ... ;)
In eine /themes/myftui-theme.css:
--lowcolor: #00FF00;
--mediumcolor: #FFFF00;
--highcolor: #8B0000;
In eine user.css:
[color="low-medium-high"] {
--color-base: linear-gradient(90deg, var(--highcolor) 30%, var(--mediumcolor) 70%, var(--lowcolor) 90%);
--color-min: var(--white);
--color-max: var(--white);
--color-contrast: var(--black);
}
[color="low-medium-high"][is-vertical] {
--color-base: linear-gradient(var(--highcolor) 20%, var(--mediumcolor) 50%, var(--lowcolor) 90%);
}
und dann noch der ftui-meter
<ftui-meter [value]="ftuitest" min="0" max="100" width="2em" height="10em"
color="low-medium-high"
is-vertical has-scale has-color-scale>
</ftui-meter>
Das Ergebnis mit genau diesen drei Farben siehst du im Anhang.
Geht vielleicht auch einfacher, aber auf die Schnelle .. es funktioniert.
Gruß LuGu
erstmal vielen Dank für die viele Arbeit die in dem Widget schon drinsteckt.
Ich habe mehrere ZWave Eurotronics Spirit Thermostate und die haben ja ein paar Besonderheiten, zum Beispiel dass sie zwei Sollwerte haben (einen für den normalen Heizbetrieb und einen für den sog. Absenkmodus). Einige Readings gibt es leider gar nicht automatisch und einige sind etwas unpraktisch formatiert.
Aber ich habe heute mal angefangen zu testen, und werde noch weiter dokumentieren was mir auffällt.
Für den Anfang habe ich noch das Problem dass die IST Temperatur zwar über ein Reading kommt aber hinter dem Wert noch ein C mitführt, also 20.5 C statt 20.5 und somit wird der Wert als NaN angezeigt.
Wie bekomme ich das denn hinter [temp]="device:temperature"
am einfachsten weg?
@omnior
Durch die Verwendung der beliebten Pipes kann man die angelieferten Werte der Readings für die FTUI3-Verwendung beeinflussen ...
2 Möglichkeiten wären:
[temp]="device:temperature | part(1)"
[temp]="device:temperature | toNumber()"
@OdfFhem
Klasse, vielen Dank, wie einfach :)
Zitat von: LuGu am 02 Februar 2022, 22:30:54
Das solltest du hinbekommen. Aber die Farben ... ;)
Ja, habe ich hinbekommen, sehr herzlichen Dank für Deine ausführliche Erklärung!
(Die Farben sind perfekt, muss ja nur mir gefallen ...)
Ich zitiere auszugsweise:
<ftui-meter [value]="ftuitest" min="0" max="100" width="2em" height="10em"
color="low-medium-high"
is-vertical has-scale has-color-scale>
</ftui-meter>
@mr_petz
In Deinem ftui-thermostat funktioniert diese Vereinfachung offenbar nicht. Dabei wäre das ja ganz schön: Man hat typischerweise viele Temperaturen bzw. auch Thermostaten - hat hat man doch nur ein oder höchstens zwei Farbschemen - anders gesagt: Das wäre eine tolle Vereinfachung. @LuGu beschreibt das Vorgehen aus Nutzersicht in Beitrag #102.
Kannst Du bitte darüber nachdenken, das in ftui-thermostat einzubauen?
P.S: Die Gradientverschiebung darf ja gern bleiben ... das wäre dann wohl die Erweiterung des Konzepts, ja?
Ich weiß, ich weiß ...
Zitat von: omnior am 05 Februar 2022, 20:06:36
erstmal vielen Dank für die viele Arbeit die in dem Widget schon drinsteckt.
Ich habe mehrere ZWave Eurotronics Spirit Thermostate und die haben ja ein paar Besonderheiten,
Wie schön, endlich noch jemand mit ZWave-Thermostaten.
Ich habe das Thema für FTUI3 noch gar nicht angefasst: Ich fange mit der obersten Ebene an, da kommen meine Thermostate gar nicht vor.
Das ist bei mir so sortiert (FTUI2): Home ist der Taktikbildschirm, da gibt es nur die Aussage Fenster-auf oder Fenster-zu. Wenn ich da draufklicke, bekomme ich eine Seite mit den Stati aller Fenster und zugeordnet der Raumtemperaturen. Wenn ich dann auf einen konkreten Raum klicke, bekomme ich (u.a.) die Grafik des Temperaturverlaufs nebst Fenster auf/zu. Und erst wenn ich dann weiterklicke, bekomme ich ein Popup für den Thermostat. Und dort kann ich die Solltemperatur via Rädchen einstellen, ich habe zudem Schaltflächen für Boost, Aus usw.
Übrigens ist die Rückmeldung des Soll durchaus machbar, Du musst dann nach dem Setzen der neuen Solltemperatur und nach sleep 3 ein get auf die Temperatur nachschieben. Das hilft natürlich nicht, wenn unten an einem Heizkörper jemand rumspielt - bei den fraglichen Heizkörpern frage ich alle 30min via get ab. Natürlich geht das auf die Batterie ... irgendwie muss man sich für einen Kompromiss entscheiden.
Sei hier also herzlich gegrüßt, ich will gern von Deinen Erfolgen lernen (Codebeispiele!). Und ich will gern zeigen, wie ich das dann realisiere.
@curt
Hier hatte ich das stylen für jedes einzelne Thermostat schon einmal beschrieben.
Das geht im Übrigen mit fast allen Modulen in FTUI3.
https://forum.fhem.de/index.php/topic,123084.msg1197659.html#msg1197659
LG mr_petz
Edit:
An dem svg-gradient bin ich ja schon dran, siehe Anhang!
@curt
genau so ähnlich stelle ich mir das auch vor. Mein FTUI2 ist mittlerweile einfach zu überladen und mir gefällt die Idee deiner "taktischen" Bildschirme ;)
Ich hatte bisher die beiden Sollwerte (heating und energySaveHeating) in Userattributen abgelegt, aber 100%ig hat das nie funktioniert, es gab immer wieder Kombinationen wo diese nicht aktuell waren.
Jetzt bin ich am überlegen ob ich nicht komplett auf den Energiesparmodus verzichte.
Schön wäre es in der Tat wenn man je nach gewählten Modus einen anderen Sollwert in die Mitte setzen könnte, denn es ist verwirrend wenn im Energiesparmodus noch der Sollwert des Heizmodus angezeigt wird. Da es bei den Spirits ja nur ein desired-temp gibt und dies sich nicht ändert wenn der Modus gewechselt wird, müsste man den Sollwert des Energiesparmodus immer über get device setpoint 11
ermitteln und dann eventuell in desired-temp reinschieben. Vielleicht denke ich da aber zu kompliziert.
Eine andere kleine Frage hätte ich zur Darstellung der Isttemperatur. Momentan wird die immer auf 0,5 Grad gerundet. Wie stelle ich ein, dass diese auf 0,1 Grad genau dargestellt wird?
Zitat von: omnior am 06 Februar 2022, 15:08:17
Schön wäre es in der Tat wenn man je nach gewählten Modus einen anderen Sollwert in die Mitte setzen könnte, denn es ist verwirrend wenn im Energiesparmodus noch der Sollwert des Heizmodus angezeigt wird. Da es bei den Spirits ja nur ein desired-temp gibt und dies sich nicht ändert wenn der Modus gewechselt wird, müsste man den Sollwert des Energiesparmodus immer über get device setpoint 11
ermitteln und dann eventuell in desired-temp reinschieben. Vielleicht denke ich da aber zu kompliziert.
Hi, omnior.
Kannst du das bitte genauer erklären. Was soll je nach Zustand in der Mitte Stehen und worauf muss ich dann triggern?
Zitat
Eine andere kleine Frage hätte ich zur Darstellung der Isttemperatur. Momentan wird die immer auf 0,5 Grad gerundet. Wie stelle ich ein, dass diese auf 0,1 Grad genau dargestellt wird?
Und ich dachte es kommen immer nur 0.5 Werte. Ich muss da wissen ob es einstellbar sein soll oder ich es allgemein auf 0.1+tofixed() setze.
LG mr_petz
Zitat von: mr_petz am 06 Februar 2022, 19:02:22
Hi, omnior.
Kannst du das bitte genauer erklären. Was soll je nach Zustand in der Mitte Stehen und worauf muss ich dann triggern?
Ich will es mal versuchen. Diese Eurotronics Spirit können mit dem Befehl
set device tmHeating oder tmEnergySaveHeating
in zwei verschiedene Betriebsmodi gebracht werden. Dieser Betriebsmodus ist abrufbar mit
get device thermostatMode
abrufbar. Man erhält dann "thermostatMode:energySaveHeating" oder "thermostatMode:Heating"zurück. Der Betriebsmodus steht im Reading thermostatMode.
Jeder Modus hat aber seinen eigenen Sollwert! Während der Wert von desired-temp aber immer den Sollwert des Heating Mode darstellt, kann der Sollwert des jeweiligen Betriebsmodus über
get device setpoint 1 oder set device setpoint 11
abgerufen werden. Man erhält dann jeweils folgendes zurück: "setpointTemp:xx.x C heating
desired-temp:xx.x" (bzw. setpointTemp:xx.x C energySaveHeating". Dieser Sollwert ist immer auf 0.5 Grad gerundet. Er ist leider nirgends in einem Reading gespeichert, es gibt lediglich das Reading desired-temp und das bezieht sich auf den Heating Mode.
Das Setzen des Sollwerts erfolgt durch:
set devicethermostatSetpointSet xx C 1 bzw. set devicethermostatSetpointSet xx C 11
.
Je nach eingestelltem Betriebsmodus sollte also derjenige Sollwert der gerade gültig ist in der Mitte angezeigt werden.
Zitat
Und ich dachte es kommen immer nur 0.5 Werte. Ich muss da wissen ob es einstellbar sein soll oder ich es allgemein auf 0.1+tofixed() setze.
Die Istwerte des Eurotronics kommen mit zwei Dezimalstellen hinter dem Komma ein Möglichkeit zum Runden wäre prima.
Vielleicht mögen ja auch andere Eurotronics-kundige noch ergänzen falls ich etwas wichtiges vergessen haben sollte...
LG Robert
Hi Robert.
Anderer Vorschlag um dein Problem zu lösen.
Du erstellst 2 mal das selbe Thermostat an gleicher Stelle, einmal mit device:tmHeating und einmal mit device:tmEnergySaveHeating als value.
Dann noch einen Button zum Umschalten der Modi worauf du dann mit [hidden] im Thermostat triggerst und so wird entweder das device:tmHeating oder device:tmEnergySaveHeating Thermostat angezeigt.
Das funktioniert. Wenn du da Hilfe brauchst beim einrichten, dann sag einfach Bescheid.
Das ist die einfachste Lösung und wir nutzen FTUI3 Boardmittel ;)
Das Runden mache ich noch rein.
LG mr_petz
ps. Der trigger reagiert dann auf fhem und den Button.
Zitat von: omnior am 06 Februar 2022, 15:08:17
genau so ähnlich stelle ich mir das auch vor. Mein FTUI2 ist mittlerweile einfach zu überladen und mir gefällt die Idee deiner "taktischen" Bildschirme ;)
Ich kann gern mal zeigen, wohin die Reise (bei mir) gehen soll; ich habe das ja bei FTUI2 schon so. Aber nicht jetzt, es ist spät.
Nach meinen ersten Erfahrungen würde ich Dir empfehlen, nichts zu überstürzen, vielleicht können wir uns zudem gegenseitig stützen: Das ist hier Alpha, höchstens frühes Beta. Es gibt keine Doku, alle naselang fliegt Dir irgendwas um die Ohren ... seit dem letzten Update ist der schöne Farbverlauf bei "meter" wieder weg, den mir eine milde Seele schenkte. Nur so als Beispiel.
Zitat von: omnior am 06 Februar 2022, 15:08:17
Jetzt bin ich am überlegen ob ich nicht komplett auf den Energiesparmodus verzichte.
Die Frage ist, wofür man den überhaupt braucht. Man kann das unter verschiedenen Gesichtspunkten betrachten, allen gleich ist, dass es für den Regelkreis ein SOLL gibt. Bei diesem Energiesparmodus wird ja lediglich -mit einfachen Worten- langsamer geheizt. Bezogen auf nur einen Heizkörper bedeutet das (Hauptsätze der Wärmelehre), dass da überhaupt nichts gespart wird. Das liegt daran, dass unser Thermostat nach meiner Beobachtung bei tmHeating nicht überschwingt, der ist schon nahe am asymptodischen Grenzfall.
Mal unterstellt man hat ein Haus - das wird es deutlich komplexer. Da hat man zum Beispiel eine Brennwerttherme, die selbst schon ein Regler ist (abhängig mindestens von der Außentemperatur). Und angenommen exakt einen Heizkörper - schon haben wir zwei verkettete Regelkreise.
Normalerweise hat man mehrere Heizkörper, es wird schnell unübersichtlich - da sind sogar Situationen vorstellbar, in denen dieser Energiesparmodus sich in sein Gegenteil verkehrt - weil die Heizung für längere Zeit und damit konstanter heißes Wasser zur Verfügung stellen muss.
Aber da will ich gar keine Diskussion anstroßen, ich wollte nur begründen, warum ich diesen zweiten Heizmodus (Energiesave) nicht nutze.
Zitat von: omnior am 06 Februar 2022, 15:08:17
Eine andere kleine Frage hätte ich zur Darstellung der Isttemperatur. Momentan wird die immer auf 0,5 Grad gerundet. Wie stelle ich ein, dass diese auf 0,1 Grad genau dargestellt wird?
In meiner Erinnerung: step.
Zitat von: mr_petz am 07 Februar 2022, 18:15:41
Dann noch einen Button zum Umschalten der Modi worauf du dann mit [hidden] im Thermostat triggerst und so wird entweder das device:tmHeating oder device:tmEnergySaveHeating Thermostat angezeigt.
Das ist eine gute Idee und ich will es gerne probieren. Im Moment scheitere ich aber schon an diesem einfachen Button bzw. dem @click. Das umschalten funktioniert im Prinzip, aber irgendwie kommt der get Befehl (über den @click) immer vor dem set und somit wird nach dem Umschalten noch nichts in der Oberfläche aktualisiert. Vermutlich hab ich irgendwas nicht richtig verstanden bzw. umgesetzt.
<ftui-button
[hidden]="ZWave_THERMOSTAT_46:thermostatMode | map('heating: true, energySaveHeating: false')"
[(value)]="ZWave_THERMOSTAT_46"
fill="outline" shape="circle" states="tmHeating,tmEnergySaveHeating"
@click="javascript:sendFhem('get ZWave_THERMOSTAT_46 thermostatMode')"
>Energiesparmodus</ftui-button>
<ftui-button
[hidden]="ZWave_THERMOSTAT_46:thermostatMode | map('heating: false, energySaveHeating: true')"
[(value)]="ZWave_THERMOSTAT_46"
fill="outline" shape="circle"
width="auto"
states="tmEnergySaveHeating,tmHeating"
@click="javascript:sendFhem('get ZWave_THERMOSTAT_46 thermostatMode')"
Ja der @click wird zuerst gesendet (Stand jetzt).
Dann schreibe mal beide Befehle in den @click getrennt mit ; und ein fake value zum triggern.
Ich kann erst heute Nachmittag Unterstützung leisten.
LG mr_petz
Edit: Was mich jetzt wundert ist, dass deine Befehle/Readings/States unterschiedlich sind?
Bsp.:
energySaveHeating und tmEnergySaveHeating
heating und tmHeating
Wenn dem so ist, dann musst du es im Beispiel anpassen oder mir sagen was im state und was im thermostatMode steht.
Ansonsten probiere es mal so V1:
<ftui-button fill="outline" shape="circle"
color="green"
[hidden]="ZWave_THERMOSTAT_46:thermostatMode | map('tmHeating: true, tmEnergySaveHeating: false')"
[value]="ZWave_THERMOSTAT_46:thermostatMode"
@click="javascript:sendFhem('set ZWave_THERMOSTAT_46 thermostatMode tmHeating; get ZWave_THERMOSTAT_46 thermostatMode')">Energiesparmodus
</ftui-button>
<ftui-button fill="outline" shape="circle"
color="red"
[hidden]="ZWave_THERMOSTAT_46:thermostatMode | map('tmHeating: false, tmEnergySaveHeating: true')"
[value]="ZWave_THERMOSTAT_46:thermostatMode"
@click="javascript:sendFhem('set ZWave_THERMOSTAT_46 thermostatMode tmEnergySaveHeating; get ZWave_THERMOSTAT_46 thermostatMode')">Heating
</ftui-button>
Hier wird per [value] nur für den trigger [hidden] das Reading gelesen und per @click die Befehle gesendet.
alternativ wenn dein Reading thermostatMode heating und energySaveHeating hat V2:
<ftui-button fill="outline" shape="circle"
color="green"
[hidden]="ZWave_THERMOSTAT_46:thermostatMode | map('heating: true, energySaveHeating: false')"
[value]="ZWave_THERMOSTAT_46:thermostatMode"
@click="javascript:sendFhem('set ZWave_THERMOSTAT_46 thermostatMode tmHeating; get ZWave_THERMOSTAT_46 thermostatMode')">Energiesparmodus
</ftui-button>
<ftui-button fill="outline" shape="circle"
color="red"
[hidden]="ZWave_THERMOSTAT_46:thermostatMode | map('heating: false, energySaveHeating: true')"
[value]="ZWave_THERMOSTAT_46:thermostatMode"
@click="javascript:sendFhem('set ZWave_THERMOSTAT_46 thermostatMode tmEnergySaveHeating; get ZWave_THERMOSTAT_46 thermostatMode')">Heating
</ftui-button>
alternativ wenn dein Devicestate heating und energySaveHeating hat V3:
<ftui-button fill="outline" shape="circle"
color="green"
[hidden]="ZWave_THERMOSTAT_46 | map('heating: true, energySaveHeating: false')"
[value]="ZWave_THERMOSTAT_46"
@click="javascript:sendFhem('set ZWave_THERMOSTAT_46 thermostatMode tmHeating; get ZWave_THERMOSTAT_46 thermostatMode')">Energiesparmodus
</ftui-button>
<ftui-button fill="outline" shape="circle"
color="red"
[hidden]="ZWave_THERMOSTAT_46 | map('heating: false, energySaveHeating: true')"
[value]="ZWave_THERMOSTAT_46"
@click="javascript:sendFhem('set ZWave_THERMOSTAT_46 thermostatMode tmEnergySaveHeating; get ZWave_THERMOSTAT_46 thermostatMode')">Heating
</ftui-button>
ps. Beim ftui-button wirkt kein width="" sondern nur mit style="width:auto;". k.A. ob das schon mal ging...
Hier ist auch ein gerade erstelltes, ähnliches und funktionierendes Beispiel:
https://forum.fhem.de/index.php/topic,126067.msg1206862.html#msg1206862
Zitat von: curt am 08 Februar 2022, 03:05:50
...
Nach meinen ersten Erfahrungen würde ich Dir empfehlen, nichts zu überstürzen, vielleicht können wir uns zudem gegenseitig stützen: Das ist hier Alpha, höchstens frühes Beta. Es gibt keine Doku, alle naselang fliegt Dir irgendwas um die Ohren ... seit dem letzten Update ist der schöne Farbverlauf bei "meter" wieder weg, den mir eine milde Seele schenkte. Nur so als Beispiel.
Bitte nicht ganz so schlecht reden. Beta ist hier schon richtig! Wobei ich gerne von Entwicklung rede. ;) Es müssen hier alle durch die hier mitentwickeln und testen.
Und ausserdem wird sich hier gegenseitig geholfen/unterstütz wenn einer mal probleme hat.
@setstate macht hier super Arbeit und gibt hier sein ganzes Wisssen an alle weiter und behebt immer zeitnah Fehler (wenn welche aufkommen).
ps. Beim Meter funktioniert immer noch Gradient:
https://knowthelist.github.io/ftui/www/ftui/examples/meter.html
Zitat
...
In meiner Erinnerung: step.
step ist nur für den Sollwert.
LG mr_petz
Zitat von: mr_petz am 08 Februar 2022, 20:32:11
Bitte nicht ganz so schlecht reden.
Es hat nichts mit "Dinge schlecht reden" zu tun, wenn man ganz sachlich Dinge beim Namen nennt.
Zitat von: mr_petz am 08 Februar 2022, 20:32:11
Und ausserdem wird sich hier gegenseitig geholfen/unterstütz wenn einer mal probleme hat.
Mein Thermostat mit eigenem Farbübergang funktioniert dank der Hilfe eines freundlichen anderen Users. Die Auslagerung in user.css bekam ich nicht hin, Du hattest mir da einen Link zugeworfen, der genau garnichts erklärt; jedenfalls für mich nicht.
Zitat von: mr_petz am 08 Februar 2022, 20:32:11
@setstate macht hier super Arbeit und gibt hier sein ganzes Wisssen an alle weiter und behebt immer zeitnah Fehler (wenn welche aufkommen).
Bei allem Respekt: Bei Meter ist der Farbverlauf weg, das ist jetzt wieder hellblau.
Zitat von: mr_petz am 08 Februar 2022, 20:32:11
ps. Beim Meter funktioniert immer noch Gradient:
Die ständig verlinkte Seite nützt (mir) genau gar nichts. Eine treue Seele zeigte mir, wie man das schön mit Farbverlauf macht - das ist jetzt putt. Und ich habe keinen Ansatz, wo ich da suchen muss - ich weiß ja nichtmal, was er da änderte. Und wenn ich das letzte Update so ansehe, bin ich da wohl nicht so ganz der Einzige.
Schau: Wir gehen da mit unterschiedlichen realen Möglichkeiten ran, ich erwähnte ja schon, dass ich doof bin: Ich bin nicht in der Lage, das bis in die letzten Verästelungen zu studieren. Obwohl ich ein klein wenig Ahnung habe, bin ich Nutzer. Und da ist es dann schlussendlich das Selbstverständnis des Projekts: Geht es um Selbstbeschäftigung als Zweck? Oder ist der Zweck die Hausautomation nebst Virtualisierung?
Du wirst mir gleich mangelnde Dankbarkeit und opensource vorwerfen, ich weiß. Nein, ich bin nicht undankbar, ich bin sogar sehr dankbar - sehr vielen hier. Wenn aber ein Update fröhlich ziemlich viel wegschießt, ist es halt Alpha und nicht Beta - in meinem Verständnis, so weit bin ich dann doch vom Fach.
Ich habe da tatsächlich auch eine ganz persönliche Bitte an Dich. Du gehst bei einem Teil der Nutzerschaft, also zumindest bei mir, vielleicht aber auch bei stumm Mitlesenden, von einer falschen Voraussetzung aus. Zumindest glaube ich, das so verstanden zu haben. Mein Ziel ist nicht, dass wirklich alles so zu verstehen, dass ich nächstens Entwickler bin. Ich will das nutzen. Und dafür brauche ich ein funktionierendes Codebeispiel - welches ich entweder einfach so nutze oder halt mit dem rumspiele und für mich anpasse. (Und irgendwann später will ich es gar nicht mehr anfassen, dann soll das einfach nur tun.)
Übrigens funktioniert der ausgelagerte Homescreen bei mir immer noch nicht. Aber das ist mein Problem, das Codebeispiel von @setstate funktioniert (auch) bei mir. Ich muss da gelegentlich in Ruhe prüfen, wo da der Unterschied ist - Dein Hinweis war es jedenfalls leider nicht.
@omnior
Ich denke Du machst da noch einen Fehler. So schnell kann der ZWave-Thermostat aufeinanderfolgende Befehle gar nicht verarbeiten, es besteht die Gefahr, dass der zweite Befehl gar nicht ankommt oder weggeworfen wird. Ich lernte hier, dass man zwischen zwei Befehle (sagen wir set und get) schlauerweise ein "sleep 3" einschieben sollte. Und tatsächlich habe ich seitdem keine Probleme.
Zitat von: mr_petz am 08 Februar 2022, 09:32:15
Was mich jetzt wundert ist, dass deine Befehle/Readings/States unterschiedlich sind?
Bsp.:
energySaveHeating und tmEnergySaveHeating
heating und tmHeating
Ja, das ist bei den ZWave Spirits so. Man erhält ein Reading aus thermostatMode zurück (z.B. heating) und wenn man diesen Modus aber setzen will schickt man direkt den Befehl tmHeating.
Das Beispiel ist mir so klar danke für die ganzen Hinweise.
Eine kleine Frage hätte ich noch. Bei dem ftui-button, wenn der Button einen Text anzeigen soll. Für statischen Text ist klar, aber was benutze ich wenn der Text aus einem Reading kommen soll. Mit [text] scheint es nicht zu gehen.
Und nochmal kurz zu dem style="width:auto;" das klappt zwar, allerdings ist der Rand etwas knapp bemessen, damit will ich sagen, dass der Text dann direkt am Rand des Buttons endet, optisch ansprechender wäre es wenn der Knopf dann noch etwas breiter sein könnte. Kann man das irgendwo einstellen?
@curt
Ich probier das jetzt auch mal mit dem zusätzlichen sleep, vielleicht kam daher ja auch manchmal das Problem dass es nicht richtig funktionieren wollte.
@omnior
Fügst du ein Label ein mit map oder alleinstehend.
Bsp.:
<ftui-button
fill="solid"
states="true,false"
style="width:40px;"
[(value)]="dummy">
<ftui-label [text]="dummy | map('true:Mode1, false:Mode2')"></ftui-label>
</ftui-button>
Hier wird wenn dummy true ist dem Button Mode1 als text gegeben und wenn false Mode2.
Ansonsten:
<ftui-button
fill="solid"
states="true,false"
style="width:40px;"
[(value)]="dummy">
<ftui-label [text]="dummy"></ftui-label>
</ftui-button>
ps. ich habe jetzt das Round bei IstTemp von mir rausgenommen. Du kannst jetzt mit
Bsp.:
[temp]="dummy | round(2)"
auf zwei nachkomma runden. Ich hoffe das ist so ok für dich.
Du kannst natürlich auch das round() weglassen, dann nimmt er das was kommt.
LG mr_petz
Edit: Deine Lösung wäre dann hier für alle hilfreich. :)
Achso, zu style="width:auto;" im button.
Hier kannst du im label mit margin="0.1" arbeiten um die seitlichen Abstände zu erhöhen.
Ich zeige es dir an deinem Beispiel:
<ftui-button fill="outline" shape="circle" style="width:auto;"
color="green"
[hidden]="ZWave_THERMOSTAT_46 | map('heating: true, energySaveHeating: false')"
[value]="ZWave_THERMOSTAT_46"
@click="javascript:sendFhem('set ZWave_THERMOSTAT_46 thermostatMode tmHeating; get ZWave_THERMOSTAT_46 thermostatMode')">
<ftui-label [text]="ZWave_THERMOSTAT_46" margin="0.5"></ftui-label>
</ftui-button>
<ftui-button fill="outline" shape="circle" style="width:auto;"
color="red"
[hidden]="ZWave_THERMOSTAT_46 | map('heating: false, energySaveHeating: true')"
[value]="ZWave_THERMOSTAT_46"
@click="javascript:sendFhem('set ZWave_THERMOSTAT_46 thermostatMode tmEnergySaveHeating; get ZWave_THERMOSTAT_46 thermostatMode')">
<ftui-label [text]="ZWave_THERMOSTAT_46" margin="0.5"></ftui-label>
</ftui-button>
ZitatEs hat nichts mit "Dinge schlecht reden" zu tun, wenn man ganz sachlich Dinge beim Namen nennt.
curt:"Das ist hier Alpha, höchstens frühes Beta. Es gibt keine Doku, alle naselang fliegt Dir irgendwas um die Ohren ..."
Das würde ich nicht gerade als sachliche Kritik ansehen, mal abgesehen davon, daß es nicht stimmt, daß es keine Doku gäbe.
Wie ich schonmal schrieb, wenn man nicht damit klar kommt, daß FTUI3 Betastatus hat und sich noch in Entwicklung befindet, dann sollte man einfach die Finger davon lassen und nicht rumnörgeln, wenn mal nicht alles so funktioniert, wie man sich das vorstellt.
Ich finde, dafür, daß Du außer Fragen, nichts zur Entwicklung beiträgst, Dein Anspruchsdenken teilweise etwas unverschämt.
Zitat von: LuGu am 02 Februar 2022, 22:30:54
Das solltest du hinbekommen. Aber die Farben ... ;)
Hallo @LuGu,
Dein Konstrukt in Beitrag #102 war wunderschön, hat toll funktioniert und sah für meinen Geschmack, den Du offenbar nicht ganz teilst, toll aus.
Vor Tagen spielte ich mal wieder ein Update ein. Und seitdem sind diese schönen meter-Balken leider wieder hellblau. Und ich habe keine Ahnung warum das so ist, was ich ändern muss. Kannst Du das bitte sagen?
Zitat von: curt am 11 Februar 2022, 02:40:57
Hallo @LuGu,
Dein Konstrukt in Beitrag #102 war wunderschön, hat toll funktioniert und sah für meinen Geschmack, den Du offenbar nicht ganz teilst, toll aus.
Vor Tagen spielte ich mal wieder ein Update ein. Und seitdem sind diese schönen meter-Balken leider wieder hellblau. Und ich habe keine Ahnung warum das so ist, was ich ändern muss. Kannst Du das bitte sagen?
Hallo curt,
vermutlich hast du die Farben nicht wie von mir beschrieben in einer eigenen ftui-theme.css z.b. my ftui-theme.css deklariert, sondern direkt in der ftui-theme.css. Die wurde natürlich mit dem Update überschrieben.
--lowcolor: #00FF00;
--mediumcolor: #FFFF00;
--highcolor: #8B0000;
Gruß LuGu
Warum immer gleich eigenes Theme und user.css?
Wenn man als Anfänger vorm "geht-gar-nicht"-Problem steht, sollte man erstmal klein anfangen und ein Control aus den Examples kopieren und probieren.
Wenn das klappt, kann man darüber sprechen, wie man es etwas grüner und blauer bekommen kann.
@LuGu @setstate
Zitat von: LuGu am 11 Februar 2022, 10:36:50
vermutlich hast du die Farben nicht wie von mir beschrieben in einer eigenen ftui-theme.css z.b. my ftui-theme.css deklariert, sondern direkt in der ftui-theme.css. Die wurde natürlich mit dem Update überschrieben.
Negativ.
Dein kompletter Codevorschlag fand bei mir in user.css statt. Und funktionierte bis zum letzten großen Update wunderfein.
Und falls mein völlig inkompetenter Rat irgendwie von Belang sein sollte: Solche Nutzereinstellungen müssen in user.css passieren, wo denn sonst?
Zitat von: setstate am 11 Februar 2022, 10:45:09
Warum immer gleich eigenes Theme und user.css?
Das war gar nicht, ganz im Gegenteil war das ganz klein. Es gab kein eigenes Theme, die Einstellungen sind in user.css - wo sonst bitte?
Zitat von: setstate am 11 Februar 2022, 10:45:09Wenn man als Anfänger vorm "geht-gar-nicht"-Problem steht, sollte man erstmal klein anfangen und ein Control aus den Examples kopieren und probieren.
Das war ganz klein und klappte ganz hervorragend, es gibt da sogar Screenshots von mir. Umgesetzter Beitrag #102 wie gesagt, meinen realen Code kann ich gern nachreichen.
Zitat von: setstate am 11 Februar 2022, 10:45:09
Wenn das klappt, kann man darüber sprechen, wie man es etwas grüner und blauer bekommen kann.
Das Problem ist jetzt eher, dass Du den funktionierenden Teil (wir reden über meter mit Farbverlauf) wieder weggeschossen hast. (vgl Beitrag #102)
Ja mir ist völlig klar, dass das ein Seiteneffekt war, der nicht beabsichtigt wurde: Du hast das weggeschossen. Die Frage ist jetzt eher, ob man Farbverläufe wie von @LuGu vorgeschlagen überhaupt will - ich unterstelle der Einfachheit halber, dass Du willst, dass man Deine wirklich geniale Arbeit auch nutzt.
Ich weiß nicht, wie wir da weiterkommen, ich wurde ja schon heftig angegriffen. Lass es mich mal ganz profan sagen: Ich hätte es gern wieder so schön, wie ich es schon mal hatte - FTU3 gibt das ja offensichtlich her.
Heute ist wünschdirwas:
Ich möchte, dass der Code von LuGu wieder funktioniert.
ABER NOCH BESSER wäre natürlich, wenn Du die Möglichkeit von frei wählbaren Farbverläufen gleich in
meter (und wo auch immer) integrieren könntest.
Und vielleicht netterweise beschreiben, wie das dann real geht.
Sei herzlich -und mit großem Dank- gegrüßt.
So.
Können wir hier wieder zum eigentlichen Thema zurückkehren?
Hier geht es nicht um das/den ftui-meter!
Solche Fragen darüber gehören in den Hauptthread!
Danke und LG
Zitat von: mr_petz am 07 Februar 2022, 18:15:41
Hi Robert.
Anderer Vorschlag um dein Problem zu lösen.
Du erstellst 2 mal das selbe Thermostat an gleicher Stelle, einmal mit device:tmHeating und einmal mit device:tmEnergySaveHeating als value.
Dann noch einen Button zum Umschalten der Modi worauf du dann mit [hidden] im Thermostat triggerst und so wird entweder das device:tmHeating oder device:tmEnergySaveHeating Thermostat angezeigt.
Das funktioniert. Wenn du da Hilfe brauchst beim einrichten, dann sag einfach Bescheid.
Das ist die einfachste Lösung und wir nutzen FTUI3 Boardmittel ;)
Das Runden mache ich noch rein.
LG mr_petz
ps. Der trigger reagiert dann auf fhem und den Button.
ich möchte nochmal auf deinen Vorschlag zurück kommen. Das Umschalten des Modus funktioniert wunderbar mit dem [hidden] aber ich verstehe noch nicht ganz wie ich es umsetzen kann zweimal einen Thermostat zu erstellen.
Das Problem ist ja, dass die Solltemperatur (die in der Mitte angezeigt wird) über desired-temp gesteuert wird. Dieses desired-temp bezieht sich aber immer nur auf den Heizmodus. Damit will ich sagen, auch wenn der Thermostat im Energiesparmodus ist, liefert desired-temp den Sollwert aus dem Heizmodus.
Die einzige Möglichkeit diesen Sollwert im Energiesparmodus zu verändern geht mit einem
set device thermostatSetpointSet xx C 11
(dabei steht xx für die Temperatur, C für Celsius und 11 für den Energiesparmodus).
Hi Robert.
Als erstes...:
poste mal bitte deine Definitionen vom thermostat und von den buttons.
Als zweites...:
in desired-temp steht also immer der Heizmodus-Sollwert.
Wo steht denn der Energiesparmodus-Sollwert? Wird der nur durch dein set-Befehl zum desired-temp?
Wenn ja, kannst du dein set Befehl doch auch in den Button integrieren wo du den Energiesparmodus aktivierst.?
Wie gesagt, es fehlen noch paar Infos zum nachvollziehen.
LG mr_petz
mr_petz, der wird nie zum desired-temp. Desired-temp ist immer nur der Sollwert des Heizmodus.
Der Sollwert des Energiesparmodus kann nur gesetzt werden durch:
set device thermostatSetpointSet xx C 11
und er kann nur abgerufen werden durch:
get device setpoint 11
Hier das list des Thermostats:
Internals:
DEF e8edde56 46
FUUID 5cff49d3-f33f-5aeb-fa31-fba46ce1ee105f46
IODev ZBoard
LASTInputDev ZBoard
MSGCNT 1164
NAME ZWave_THERMOSTAT_46
NR 115
STATE <b>heating</b><br/><div style='color:red'>Ist:21.45 C </div>Batterie:100%
STILLDONETIME 0
TYPE ZWave
ZBoard_MSGCNT 1164
ZBoard_RAWMSG 0004002e0643030b2200b4
ZBoard_TIME 2022-02-11 14:22:25
ZWaveSubDevice no
cmdsPending 0
homeId e8edde56
isWakeUp
lastMsgSent 1644585723.47818
nodeIdHex 2e
webCmd desired-temp
READINGS:
2022-02-08 21:37:09 IODev ZBoard
2022-02-10 23:55:45 SEND_DATA failed:00
2021-06-12 14:24:01 UNPARSED SENSOR_MULTILEVEL 06310724620a97
2022-02-05 11:17:59 alarm PowerManagement: Event cleared: Previous Events cleared
2022-02-03 14:35:00 assocGroup_1 Max 1 Nodes ZBoard
2022-02-03 14:34:12 assocGroups 1
2022-02-10 20:40:58 battery 100 %
2022-02-10 20:40:58 batteryPercent 100
2022-02-10 20:40:58 batteryState ok
2022-02-03 17:40:12 configBacklight BacklightEnabled
2022-02-03 17:40:12 configBatteryReport SendOnceADay
2022-02-03 17:40:12 configLCDInvert Normal
2022-02-03 17:40:13 configLCDTimeout 0
2022-02-06 13:43:23 configMeasuredTemperatureOffset 236
2022-02-03 17:40:13 configOpenWindowDetection HighSensibility
2022-02-03 17:40:13 configTemperatureReportThreshold 1
2022-02-03 17:40:13 configValveOpeningPercentageReport 1
2022-02-11 12:29:16 desTempHeating 22.0
2022-02-11 14:22:25 desTempSaving 18.0
2020-10-15 22:55:31 desired-new 00
2022-02-11 12:29:16 desired-temp 22.0
2020-10-21 22:22:59 fwMd fwMdManId: 0148, fwMdFwId_0: 0301, fwMdChkSum_0: e455, fwMdUpgradeable: ff, fwMdNrTarg: 01, fwMdFrqSize: 0028, fwMdFwId_1: 0001
2021-01-06 06:30:39 luminance 10.35 %
2019-12-17 09:02:32 model EUROtronic EUR_SPIRITZ Wall Radiator Thermostat
2019-12-17 09:02:32 modelConfig eurotronic/eur_spiritz.xml
2019-12-17 09:02:32 modelId 0148-0003-0001
2022-02-03 17:41:14 neighborList ZBoard ZWave_SWITCH_BINARY_47 ZWave_SWITCH_BINARY_67
2022-02-03 17:41:48 neighborUpdate done
2019-12-30 19:18:34 power 33.2 W
2021-10-08 10:02:41 protection off
2022-02-11 14:20:58 reportedState dim 30
2022-02-11 14:22:25 setpointTemp 18.0 C energySaveHeating
2022-02-11 14:20:58 state dim 30
2022-02-07 17:26:46 swbStatus 0
2022-02-11 14:20:59 temperature 21.45 C
2022-02-11 12:29:16 thermostatMode heating
2022-02-07 00:21:19 thermostatSetpointSet 18 C 11
2022-02-08 07:43:48 thermostatSetpointSupported heating energySaveHeating
2022-02-10 23:56:04 timeToAck 6.037
2022-02-11 14:22:25 transmit NO_ACK
Attributes:
IODev ZBoard
alias Konoba Thermostat
classes ZWAVEPLUS_INFO ASSOCIATION ASSOCIATION_GRP_INFO VERSION MANUFACTURER_SPECIFIC DEVICE_RESET_LOCALLY PROTECTION SENSOR_MULTILEVEL SWITCH_MULTILEVEL THERMOSTAT_MODE THERMOSTAT_SETPOINT BATTERY CONFIGURATION ALARM POWERLEVEL SECURITY SECURITY_S2 TRANSPORT_SERVICE SUPERVISION FIRMWARE_UPDATE_MD
generateRouteInfoEvents 1
icon temp_control
neighborListPos 406.25,442.05
room Konoba,ZWave
sortby 36
stateFormat <b>thermostatMode</b><br/><div style='color:red'>Ist:temperature </div>Batterie:batteryPercent%
userReadings desTempHeating:setpointTemp.*heating {return ReadingsNum($name,"setpointTemp",0)},desTempSaving:setpointTemp.*energySaveHeating {return ReadingsNum($name,"setpointTemp",0)}
userattr heizt heizt_map structexclude
vclasses ALARM:8 ASSOCIATION:2 ASSOCIATION_GRP_INFO:1 BATTERY:1 CONFIGURATION:1 DEVICE_RESET_LOCALLY:1 FIRMWARE_UPDATE_MD:3 MANUFACTURER_SPECIFIC:1 POWERLEVEL:1 PROTECTION:1 SECURITY:1 SECURITY_S2:1 SENSOR_MULTILEVEL:5 SUPERVISION:1 SWITCH_MULTILEVEL:1 THERMOSTAT_MODE:3 THERMOSTAT_SETPOINT:3 TRANSPORT_SERVICE:2 VERSION:2 ZWAVEPLUS_INFO:2des Thermostats:
und hier die Buttons bzw. der Thermostat im FTUI3
<!-- Temp Konoba -->
<ftui-grid-tile row="2" col="2" height="4" width="4" shape="round">
<ftui-label size="3" >Konoba</ftui-label>
<ftui-thermostat style="--thermostat-temp-size:19px;--thermostat-value-size:19px;" [(value)]="ZWave_THERMOSTAT_46:desired-temp"
[temp]="ZWave_THERMOSTAT_46:temperature | toNumber()" unit="°C" tofixed="1" decimals="1"
[battery]="ZWave_THERMOSTAT_46:batteryPercent"
[valve]="ZWave_THERMOSTAT_46:reportedState | part(2)"
[humidity]="ZWave_SENSOR_MULTILEVEL_41:humidity | part(1)| round(0)"
[color]="ZWave_THERMOSTAT_46:temperature | step('0: blue, 18: ok, 20: yellow, 22: orange, 30: danger')"
size="110"
type="handle" min="8" max="28" decimals="2" unit="°C" tofixed="1" has-old-style
[readonly]="d_thermostatReadOnly | toBool()">
</ftui-thermostat>
<ftui-label size="3" [text]="ZWave_THERMOSTAT_46:thermostatMode"></ftui-label>
<ftui-button
[hidden]="ZWave_THERMOSTAT_46:thermostatMode | map('heating: true, energySaveHeating: false')"
[(value)]="ZWave_THERMOSTAT_46"
fill="outline" style="width:auto;"
shape="circle" color="green"
states="tmHeating,tmEnergySaveHeating"
@click="javascript:sendFhem('get ZWave_THERMOSTAT_46 thermostatMode')"
>" Energiesparmodus "</ftui-button>
<ftui-button
[hidden]="ZWave_THERMOSTAT_46:thermostatMode | map('heating: false, energySaveHeating: true')"
[(value)]="ZWave_THERMOSTAT_46"
fill="outline" style="width:auto;"
shape="circle" color="red"
states="tmEnergySaveHeating,tmHeating"
@click="javascript:sendFhem('get ZWave_THERMOSTAT_46 thermostatMode')"
>" Heizmodus "</ftui-button>
</ftui-grid-tile>
Mhhh.
Das wird im Modul schwierig.
Das setzen (set) würde ohne probleme gehen, aber das holen der SollTemp dann nicht. Da muss ich erst noch einiges Umstricken...
Mal schauen was wir da machen könnten...
LG
Zitat von: omnior am 11 Februar 2022, 13:54:53
Das Problem ist ja, dass die Solltemperatur (die in der Mitte angezeigt wird) über desired-temp gesteuert wird.
...
Die einzige Möglichkeit diesen Sollwert im Energiesparmodus zu verändern geht mit einem set device thermostatSetpointSet xx C 11
(dabei steht xx für die Temperatur, C für Celsius und 11 für den Energiesparmodus).
Anmerkung: Auch die Solltemperatur für "normales" Heating kann man erinnerlich über die Langversion ändern. An Stelle der 11 (ich habe es nicht im Kopf, steht in einer PDF) ist dann 21 oder 12 oder so.
Zitat von: curt am 12 Februar 2022, 23:49:07
Anmerkung: Auch die Solltemperatur für "normales" Heating kann man erinnerlich über die Langversion ändern. An Stelle der 11 (ich habe es nicht im Kopf, steht in einer PDF) ist dann 21 oder 12 oder so.
ja genau mit der 1, also:
set device thermostatSetpointSet xx C 1
Hi Robert.
Ich habe mal eine Testversion für den ZWave. Ich hoffe da habe ich alles richtig verstanden.
Ein (value) braucht man hier nicht setzen.
Nur das (| part(1) ist hier nötig und muss gesetzt werden!):
[value]="ZWave_THERMOSTAT_46:setpointTemp | part(1)"
[mode]="ZWave_THERMOSTAT_46:thermostatMode"
und der Rest von dir.
Zur Erklärung:
Wenn [mode] gesetzt, dann wird je nach status von thermostatMode (heating,energySaveHeating) automatisch unterschieden ob die gesetzte SollTemp mit c 1 oder c 11 gesetzt und per get device setpoint nach 3sec geholt wird.
Den Modus umschalten kannst du ja weiterhin mit deinem Button.
Teste auch von der Fhemseite aus.
Im Anhang ist nur das script.
Sag bitte ob es so gehen würde.
LG mr_petz
Zitat von: mr_petz am 17 Februar 2022, 21:53:25
Sag bitte ob es so gehen würde.
LG mr_petz
beim Umschalten erhalte ich folgende Fehlermeldung:
thermostat.component.js:128
TypeError:Cannot read properties of
undefined (reading 'id')
Bist du sicher, dass
[value]="ZWave_THERMOSTAT_46:setpointTemp | part(1)"
richtig ist? Denn der Get Befehl ist ja eigentlich
get ZWave_THERMOSTAT_46:setpoint
obwohl also der Befehl "setpoint" lautet bekommt man als Rückgabewert z.B.:
setpointTemp:18.0 C energySaveHeating
oder
setpointTemp:23.0 C heating
desired-temp:23.0
Vielleicht liegt es auch am Rückgabewert von get device thermostatMode? Hier kommt ja thermostatMode:energySaveHeating oder thermostatMode:heating zurück
Gruß Robert
Ok. bei meinen test ist kein Fehler aufgetreten.
Habe eine geänderte Version oben angehangen. (https://forum.fhem.de/index.php/topic,123084.msg1208924.html#msg1208924)Zeige dann auch wie du definiert hast und wo genau beim umschalten der Fehler passiert (button oder fhem).
get = [value]
set = (value)
Fehler Zeile 128 ist für den [mode]
LG
Edit:
Zitat
Vielleicht liegt es auch am Rückgabewert von get device thermostatMode? Hier kommt ja thermostatMode:energySaveHeating oder thermostatMode:heating zurück
Laut deinem List kommt heating oder energySaveHeating vom Reading thermostatMode zurück und darauf reagiere ich ja mit:
[mode]="ZWave_THERMOSTAT_46:thermostatMode"
Zitat
2022-02-11 14:20:59 temperature 21.45 C
2022-02-11 12:29:16 thermostatMode heating
2022-02-07 00:21:19 thermostatSetpointSet 18 C 11
Wenn das so nicht klappt, dann teste ich noch mit setpointTemp:23.0 C heating. Da muss ich halt das heating separieren...
Noch ein Hinweis. Ich teste hier immer offline mit dummys...
Die Fehlermeldung ist jetzt weg, allerdings klappt es mit dem Umschalten noch nicht so ganz. Die in der Mitte eingestellte Temperatur vom Sollwert des Heizmodus oder des Energiesparmodus ändert sich nicht sofort nach dem Umschalten. Ich habe den Eindruck es erfolgt erst nachdem ich in fhem nochmal einen get device setpoint 1 oder 11 und danach zusätzlich einem Refresh der Seite anstoße.
Außerdem bekomme jetzt beim Refresh der Seite:
fhem.service.js:67
TypeError:readingID.replace is not a
function
Allerdings könnte sein dass dieser Fehler auch vorher schon bei der ersten Version auftrat mir nur nicht aufgefallen ist, weil er unter dem anderen Fehler verborgen war.
Die Meldung taucht offensichtlich immer nur beim Refresh auf, beim Drücken auf den Button zum Umschalten nicht mehr.
Ansonsten, ja im List wird steht es so, ich dachte vielleicht nur weil das Popup Fenster immer mit dem Readingausdruck: zurückgibt
Ok, neuer Versuch.
Bitte auch ein FTUI3 Update machen! Ich teste meistens mit der aktuellsten Version!
[mode] geändert.
Jetzt wird beim setzen von heating oder energySaveHeating auch noch ein get setpoint nach 3sec gesendet um die aktuelle SollTemp zu bekommen.
Und da hoffe ich auf ein Event seitens Fhem.
Ansonsten muss ich halt auf den setpointTemp-Wert gehen. (Arbeite ich nebenbei schon aus)
Teste bitte auch das setzen der Werte unter fhem und hier in ftui3
LG
Erste kurze Tests sehen gut aus, der Sollwert verändert sich jetzt nach den 3 Sekunden. Ich habe bei mir meistens den Get Befehl mit 1 Sekunde Verzögerung ausgelöst und auch keine schlechten Erfahrungen gemacht, aber das spielt keine wirkliche Rolle.
Super, ich gebe Bescheid wenn mir noch etwas auffällt.
Gruß Robert
Eines ist mir bisher aufgefallen.
Um weniger Events zu loggen, hatte ich bei den Devices das event-on-change-reading genutzt und dort stehen jetzt folgende Eintrage drin:
thermostatMode, temperature, setpoint, setpointTemp, thermostatSetpointSet
trotzdem aktualisiert die Solltemperatur noch nicht, erst wenn ich das Attribut komplett lösche funktioniert es.
Gibt es noch irgendein Reading was ich vergessen habe und was mit aufgenommen werden muß?
Ein zweiter Punkt betrifft die Behandlung von Timouts. Ich habe einen Thermostaten der ist öfters nicht so richtig erreichbar (es sind 60cm dicke Steinwände) und somit sind auch die im FTUI angezeigten Werte vielleicht gar nicht richtig, denn es wurde gar nichts aktualisiert. Ich würde also gerne irgendwie sichtbar machen dass das Device gerade nicht erreichbar ist. Gibt es hierzu vielleicht eine gute Idee wie man das lösen kann?
Zitat von: omnior am 18 Februar 2022, 15:33:55
...
Ein zweiter Punkt betrifft die Behandlung von Timouts. Ich habe einen Thermostaten der ist öfters nicht so richtig erreichbar (es sind 60cm dicke Steinwände) und somit sind auch die im FTUI angezeigten Werte vielleicht gar nicht richtig, denn es wurde gar nichts aktualisiert. Ich würde also gerne irgendwie sichtbar machen dass das Device gerade nicht erreichbar ist. Gibt es hierzu vielleicht eine gute Idee wie man das lösen kann?
In deinem List steht dieser Eintrag:
2022-02-11 14:22:25 transmit NO_ACK
Das ist ein Zeichen für keine/schlechte Verbindung oder verlorene Daten oder keine Antwort. Hier sollte OK stehen.
Soweit habe ich das Verstanden. Darauf könntest du triggern um dein Empfang zu visualisieren.
Das könnte auch die Ursache für die nicht aktuellen Sollwerte sein...
Das event-on-change-reading ist denke schon richtig. So werden ja nur Events bei Änderungen erzeugt.
LG mr_petz
So...nun auch noch eine Frage in diesem Thema:
Ich hab mir die beiden Datein
thermostat.component.css
thermostat.component.js
von mr_petz heruntergeladen und in meinen FTUI Ordner unter /components/thermostat/ kopiert und die Rechte gesetzt - so wie beim calview auch, welches übrigens funktioniert...aber das aufgerufene Thermostat bleibt in meinem FTUI3 dunkel. Woran kann das liegen?
Hier mal meine Konfiguration - die eigentlich der Beispielkonfiguartion entspricht:
<ftui-column>
<ftui-thermostat class="size-1"
[value]="TK_Flur_EG:temperature"
unit=" °C"
min="10"
max="40"
tick="50"
rotation="-120"
movegradient="1.7"
is-thermometer>
</ftui-thermostat>
<ftui-label align-items="top" margin="1">Flur EG</ftui-label>
</ftui-column>
Zitat von: Stonemuc am 22 März 2022, 13:43:40
So...nun auch noch eine Frage in diesem Thema:
Ich hab mir die beiden Datein
thermostat.component.css
thermostat.component.js
von mr_petz heruntergeladen und in meinen FTUI Ordner unter /components/thermostat/ kopiert und die Rechte gesetzt - so wie beim calview auch, welches übrigens funktioniert...aber das aufgerufene Thermostat bleibt in meinem FTUI3 dunkel. Woran kann das liegen?
....
Wird denn garnichts garnichts angezeigt? Hast du mal in die BrowserKonsole nachgeschaut ob es geladen wurde? Probiere es mal mit einer Standardconfig:
<ftui-thermostat
[value]="TK_Flur_EG:temperature"
is-thermometer
>
</ftui-thermostat>
LG
Stimmt...du sagst es, ich bekomme diverse Fehlermeldungen von unterwegs aus mal draufgeschaut:
[codeUncaught TypeError: window.ftuiApp is undefined
onerror http://xxx/fhem/ftui3/ftui.js:46
Uncaught TypeError: window.ftuiApp is undefined
onerror http:/xxx/fhem/ftui3/ftui.js:39
Laden des Moduls von "http://xxx/fhem/ftui3/components/thermostat/thermostat.component.js" wurde auf Grund eines nicht freigegebenen MIME-Typs ("text/plain") blockiert.
Failed to load ../../components/thermostat/thermostat.component.js TypeError: error loading dynamically imported module ftui.helper.js:154:17
error http://xxx/fhem/ftui3/modules/ftui/ftui.helper.js:154
loadModule http://xxx/fhem/ftui3/modules/ftui/ftui.app.js:110
]
Da scheint irgendwas bei dir nicht zu funzen.
Ich habe gerade nochmal den aktuellen Stand vom master geholt und die Online-Demo geht immer noch.
Hast du auch die aktuelle FTUI3 Version?
Oder Bockt dein Browser rum? Cache nochmal leeren..
Vielleicht hat es beim Kopieren was zerschossen...ich zieh sie mir heute Abend nochmal neu...
Zitat von: Stonemuc am 22 März 2022, 16:00:11
Vielleicht hat es beim Kopieren was zerschossen...ich zieh sie mir heute Abend nochmal neu...ich hatte es als als Rechtsklich speichern und dann mit Kopieren auf meinen FHEM Server gelöst.
Dann amch ich es direkt auf dem FHEM Server mit wget
Auch hier kurze Rückmeldung - es hat tatsächlich was beim Kopieren zerschossen. neu gezogen per wgte und es läuft....
Habe mal einen svg-arc hinzugefügt (siehe Demo).
has-arc ist ohne ticks und
has-arc-tick mit ticks.
Dann noch den mode für ZWave wie oben beschrieben.
Einfach mal testen...
LG mr_petz
Hallo Zusammen,
entweder ist ein Bug im Thermometer oder ich blick's nur nicht und habe bei der Definition etwas vergeigt.
Sobald die Einstellung über die Mitte meines Thermometers hinausgeht stimmt der Farbverlauf nicht mit meiner Definition überein.
Das passiert aber nur wenn ich has-old-style und has-ark-tick kombiniere.
<ftui-grid-tile row="5" col="1" height="1" width="1">
<header>Test</header>
<ftui-thermostat min="16" max="28" size="65" unit="°C"
lowcolor="0,0,255"
highcolor="255,0,0"
mediumcolor="0,255,0"
battery-icon-color="step('-99:danger, 25:warning, 50:success, 75:primary')"
battery-icon="step('-99:battery-0, 25:battery-1, 50:battery-2, 75:battery-3, 100: battery')"
value-in-rgb
class="size-3 bold"
[value]="HT_Frieder_soll:desired-temp"
[temp]="HT_Frieder_soll:measured-temp"
[battery]="HT_Frieder:batteryLevel | scale(2.1, 3.2, 0, 100) | round(0)"
[valve]="HT_Frieder_soll:ValvePosition"
has-old-style
has-arc-tick>
</ftui-thermostat>
</ftui-grid-tile>
Ein Tipp für mich?
LG Hardy
Danke fürs testen.
Ja die 2. "grüne" Hälfte wird nicht mit übergeben.
Ich werde das fixen.
LG
Die Antwort kam aber schnell :D
Noch etwas ist mir aufgefallen:
Sobald ich "readonly" als Parameter drin hab geht kein "popup-target" mehr. Wäre aber Klasse, wenn das möglich wäre, dann könnte ich ein großes Thermometer zum Einstellen nehmen (ist auf dem Tablet angenehmer).
Gruß Hardy
Hi Hardy.
readonly kommt von FTUI3-Hause aus.
Ich habe jetzt fixed als Attribute im thermostat eingebaut. Somit bleiben die pointer-events erhalten.
Einfach fixed in deiner Definition mit angeben und man kann es nicht bedienen.
Du kannst jetzt mit z.Bsp:
popup-target="pop1"
oder
@click="pop1.open()"
dein popup öffnen ohne das du das thermostat bedienst....
ps. Farben sollten jetzt passen..
LG mr_petz
Danke, läuft :D
Kurze Frage aus dem Off (ich war seit Ende Februar nicht da):
Muss ich Updates von ftui-thermostat immer noch von Dir ziehen? Oder ist das inzwischen in den normalen Update-Prozess von FHEM eingezogen (sofern man FTUI3 dort integiert hat)?
Ein kleines Problem mit der "mediumcolor" habe ich zudem auch: mediumcolor wird nicht mittig im Kreissegment angezeigt, das ist verschoben. Von daher auch die Frage: Gibt es nun eine Art Doku?
update immer noch von mir und das gradient kannst du mit fadegradient und movegradient versuchen zu schieben...
Doku ist die Demoseite...
LG
Zitat von: mr_petz am 29 Mai 2022, 19:18:50
update immer noch von mir
Hmmm, verstanden.
Zitat von: mr_petz am 29 Mai 2022, 19:18:50
und das gradient kannst du mit fadegradient und movegradient versuchen zu schieben...
Ahhh - fadegradient kenne ich schon. Ist verstanden. - Kannst Du bitte ganz kurz sagen, wie movegradient wirkt?
Im Übrigen möchte ich Dir für Dein Engagement und Deine freundlichen Antworten danken.
Zitat von: curt am 30 Mai 2022, 03:20:11
....
Kannst Du bitte ganz kurz sagen, wie movegradient wirkt?
es wirkt ähnlich wie fadegradient. hier werden die Bereiche der Farben stark verschoben (0 bis 10 inkl Kommastellen Bsp.: 3.5)
0 ist mehr LowColor und 10 mehr HighColor
@mr_petz
Gelegentlich fange ich mit der aktiven Thermostat-Steuerung an, vielleicht erinnerst Du Dich, dass ich in der Diskussion bzgl. ZWave-Thermostaten mitmischte. Und dann suche ich auch den Kollegen, der das mit ZWave schon realisierte, vielleicht zeigt er seine aktuelle Version.
Aktuell nutze ich nur die passive Funktion im Sinne eines Thermometers. Also das sieht richtig schniecke aus.
Und dann habe ich gleich weitergemacht, ich habe Bodensensoren für die Bodenfeuchtigkeit. Damit man weiß, wann der Topf mal wieder zu gießen ist. Diese Bodensenoren (billiges Zeugs, 17 Euro oder so) funken wie ein normales Thermometer temperature und humidity.
Also nahm ich dafür folgendes Konstrukt:
<ftui-grid-tile row="4" col="4" height="1" width="1" color="my_grey3">
<ftui-row>
<ftui-tab view="XT300_3" direction="vertical">
<ftui-thermostat
[value]="XT300_3:humidity"
min="0" max="100" lowcolor="#750000" mediumcolor="#FF0000" highcolor="#007F00" fadegradient="100"
size="45" no-min-max is-thermometer tofixed="1" tick="180" no-wide-ticks
style="--text-color:my_yellow; --thermostat-tick-color:var(--gray); --thermostat-value-size:16px;" class="size-1 bold"
>
</ftui-thermostat>
</ftui-tab>
</ftui-row>
<ftui-row>
<ftui-label margin="-24px 0 0 0">Gewächshaus</ftui-label>
</ftui-row>
</ftui-grid-tile>
Ich würde jetzt nicht behaupten, dass ich sehr viel von usability verstehe - aber eins fällt da schon auf:
Das graue Kreissegment ist ja immer rechts. Das ist bei Temperatur auch sehr sinnvoll. Aber bei Luftfeuchte (hier: Bodenfeuchte) funktioniert das im Sinne von usability nicht. Da müsste es quasi spiegelverkehrt sein: da müsste das hellgraue Segment links sein, der Farbverlauf müsste rechts sein. Ich weiß nicht, konnte ich das verständlich beschreiben?
Falls Screenshots zur Verdeutlichung erforderlich sind, reiche ich die gern nach.
Ist es für Dich sehr aufwändig, einen "Schalter" dafür einzubauen? Vermutlich schon - aber toll wäre es.
Hi mr_petz,
mal ne kurze Frage: Ich habe mir dein Thermostat nun mit eingebaut, funktioniert einwandfrei. Hab nun die Variante mit dem Lock/Unlock Button probiert, funktioniert auch. Hier hätte ich gerne das beim aufrufen nach einem Refresh der Seite das per Default auf Locked steht, muss ich hier unbedingt über eine FHEM Variable gehen oder ist das auch möglich mittels der "temporären" Variable zu machen?
Gruß Markus
Hi Markus,
schön das deine config funktioniert.
Um dein Anliegen zu realisieren gibst du einfach einmal readonly alse true an und einmal dein binding:
readonly="true"
[readonly]="dummy6 | map('on:true,off:false')"
Also beides...
So ist beim start readonly.
LG
Es kann ja alles sooo einfach sein ;)
Vielen Dank, ich probiere es nachher gleich aus!
LG
Hi mr_petz,
erstmal Danke für das Thermostat Modul, läuft top.
Mal ne frage eher Kosmetischer Natur, wäre es möglich wie beim FTUI2 Thermostat dass data-off einzubauen.
So das es dann anzeigt off wenn die Heizung aus ist, statt wie bei mir 4.5C.
Gruß Ronny
Kann ich einbauen.
Ich sage dann noch Bescheid...
LG
@Ronny1979
So.
Ich habe mal kein extra Attribute erstellt, sondern mit FTUI-Boardmitteln gearbeitet.
Hole einfach die Bananas aus der Box und gib der Box ein map() mit. Bsp:
[value]="dummy | map('4.5:aus')"
(value)="dummy"
Edit: Gerade mitbekommen. Du kannst die Bananas auch in der Box lassen... Doch nicht...
statt 'aus' kannst du auch OFF oder off etc nehmen.
Wichtig ist, wenn man value-decimals mit definiert oder Werte mit Komma hat, dann muss man auch die Nachkommastelle /stellen mit ins map() schreiben auch wenn es eine 0 ist. (bsp.: map('4.0:aus'))
Der Zeiger wird ausgeblendet wenn es aus ist.
Teste es und sag Bescheid.
LG mr_petz
Edit: Ganz vergessen zu erwähnen. Du musst natürlich noch die neue Version ziehen...
Zitat von: mr_petz am 14 Oktober 2022, 20:44:37
@Ronny1979
So.
Ich habe mal kein extra Attribute erstellt, sondern mit FTUI-Boardmitteln gearbeitet.
Hole einfach die Bananas aus der Box und gib der Box ein map() mit. Bsp:
[value]="dummy | map('4.5:aus')"
(value)="dummy"
Edit: Gerade mitbekommen. Du kannst die Bananas auch in der Box lassen...
statt 'aus' kannst du auch OFF oder off etc nehmen.
Wichtig ist, wenn man value-decimals mit definiert oder Werte mit Komma hat, dann muss man auch die Nachkommastelle /stellen mit ins map() schreiben auch wenn es eine 0 ist. (bsp.: map('4.0:aus'))
Der Zeiger wird ausgeblendet wenn es aus ist.
Teste es und sag Bescheid.
LG mr_petz
Edit: Ganz vergessen zu erwähnen. Du musst natürlich noch die neue Version ziehen...
Hallo mr_petz,
ich hab das eben mal nachgebaut bei mir, Zeiger wird wie beschrieben ausgeblendet aber es wird nicht der Text "off" oder "aus" angezeigt sondern "NaN", ich denke hier wird wahrscheinlich nur eine Zahl angezeigt werden können zur Zeit. Mache ich nämlich das mapping mit einer Zahl, z.B. mit "0" wird das korrekt ausgeführt.
Gruß Markus
Hi Markus@meier81
Danke fürs testen. Hast du den cache geleert?
Teste mal hier in der Onlinedemo:
https://mr-petz.github.io/ftui/www/ftui/examples/thermostat.html
Da habe ich es unten im Trigger readonly eingebaut. Bei 15.0 ist off...
Edit: k.A. was da sonst nicht stimmt???
Edit2: Doch... wenn man mehrfach den off Wert benutzt/setzt wenn es bereits auf off steht...
Das biege ich noch gerade...
LG
Das passt soweit auch bei mir. Könnte es sein das es an dem Typ der Anzeige liegt, hab bei mir das mit dem Text umgesetzt, also "Soll: 22.0°C".
Ich werde es morgen auch nochmal anders probieren wie in deiner Demo, ich berichte wieder.
LG
Ok. Habe es angepasst.
Jetzt kommt kein NaN mehr und der grip-Zeiger erscheint wieder sobald man die Mouse/Finger bewegt...
Testet es einfach. Danke.
LG mr_petz
Hi mr_petz,
vielen Dank, funktioniert so wie es soll.
gruß
Ronny
Ja, bei mir auch ;D
Gruß Markus
Hallo,
wäre es vielleicht auch möglich bei der Batterie Anzeige selbst zu Entscheiden ob das % Angezeigt wird?
Hintergrund, mein Thermostat zeigt im reading nur low oder ok an.
<ftui-thermostat style="--thermostat-temp-size:10px;--thermostat-value-size:1.2em"
[(value)]="Heizung_Kinderzimmer:desiredTemperature | map('4.5:Aus')"
[temp]="Heizung_Kinderzimmer:temperature"
[valve]="Heizung_Kinderzimmer:valvePosition"
[humidity]="Heizung_Kinderzimmer:humidity"
[battery]="Heizung_Kinderzimmer:battery"
battery-icon="map('low:battery-0, ok: battery')"
battery-icon-color="map('low:red, ok:green')"
unit="°C"
size="90"
value-decimals="2"
temp-decimals="1"
step="0.5"
min="4.5"
max="30"
has-zoom
temp-in-rgb
>
</ftui-thermostat>
gruß
Ronny
Ok. Habe es geändert.
Man kann die % bei Batterie und Luftfeuchte jetzt durch die Pipe:
append(' %')
anhängen...
Bedeutet für alle die jetzt updaten und % oder was anderes haben wollen!
Für Valve auch.
Hinweis:
Du must [] und () trennen, sonst kommt beim setzen nur mist raus...
[value]="Heizung_Kinderzimmer:desiredTemperature | map('4.5:Aus')"
(value)="Heizung_Kinderzimmer:desiredTemperature"
LG mr_petz
Ok, werde ich machen.
Danke für das schnelle umsetzen.
Gruß
Ronny
Hallo mr_petz,
mir ist noch was aufgefallen, es betrifft bei iOS den Safari Browser.
Da sind Elemente verschoben, ist jetzt nicht schlimm da es eh auf nen Android Tablet läuft.
Bloß als kleiner Hinweis.
Gruß
Ronny
Hallo!
Bei mir gibt es noch ein kleines Problem. Wenn ich den Wert des Thermostates per einfachen klick (nicht durch verschieben, hier funktioniert es wie gewünscht) verändere, dann wird der vorher ausgewählte Wert an FHEM gemeldet.
In der Demo funktioniert es sowohl im Browser als auch auf meinem Tablet.
Woran kann das liegen? Ich habe die aktuelle Version gerade eingespielt und zum testen nur das Beispiel genommen:
<ftui-thermostat class="size-1"
[(value)]="dummy0"
[temp]="dummy1"
unit=" °C"
value="20" temp="21.5" <!-- !Diese Zeile ist nur für die Demo und muss wieder entfernt werden! -->
>
</ftui-thermostat>
Danke!
Gruß
Bismosa
@Ronny1979
Konnte den Sonderling Safari gerade testen (teste da eigentlich nicht damit). Er will unbedingt width und heigth bei svg. Habe es mal angepasst. :) (denke ich...)
@bismosa
Ich hatte da mal mit dem EventListener gespielt... ging leider schief.
Bei click mit mouse ging es, aber bei click touch nicht.
Sollte jetzt gehen... ;)
LG
Hallo!
danke für die schnelle Reaktion! :)
Stimmt. Mit der Maus ging/geht es.
Bei Touch wird jetzt 2x ein Wert übermittelt. Erst der alte, dann der neue.
Eigentlich nicht so schlimm. Kostet aber ein paar Funk-Credits.
Danke für deine Bemühungen!
Gruß
Bismosa
Hi,
danke wieder mal, also im IOS passt jetzt alles.
Mit dem Touch ist es wie bei meinen Vorredner, erst der alte Wert dann der neue Wert.
z.B. meine Skala ist von 10 - 30 eingestellt, Tippe ich auf ca. 18 wird erst 10 und danach 18 gesendet.
Gruß
Ronny
@Ronny1979,@bismosa
Könnt ihr nochmal bitte Testen? Ich habe nochmal den EventListener bearbeitet.
Touchevents sind so böööse >:(
LG
Hallo!
Bei mir funktioniert alles. Kein doppeltes Senden mehr und es werden gleich die richtigen Werte übermittelt. :)
Super! Vielen Dank!
Gruß
Bismosa
Bei mir auch, läuft jetzt mit Touch eingaben.
Danke
Gruß Ronny
Hallo,
erstmal vielen Dank für dieses tolle Widget!
Frage: Ist es möglich an den Zoom-Settings Anpassungen oder Einstellungen vorzunehmen?
Problem: Ich habe ein recht kleines Tablet und 11 Thermostaten, also begrenzt Platz.
Wenn ich die Temperatur einstellen möchte ohne has-zoom, dann verdecke ich mit meinem Finger den
Temperaturwert, klar.
Mit der Einstellung has-zoom ist meine Tile aber zu klein, heißt der Soll-Wert wandert aus dem Tile heraus.
Damit man sieht was gemeint ist ein BIld anbei.
Vielleicht ist es möglich den Soll-Wert einen Tick kleiner einzustellen, oder z.B. die Option das die Skala nicht
mitzoomt (muss ja eig. nicht sein?!) und damit innerhalb der Tile etwas mehr Platz hat...
Ich hoffe man versteht was ich meine...
Gruß
Sascha
Ich habe das ZoomValue jetzt Benutzerdefiniert gestaltet.
Position left von der Mitte betrachtet, top von Thermostattop und die Zoomsize des Value.
Einfach einen css-Eintrag oder einen style-Eintrag erstellen.
Hier die Standardwerte:
--thermostat-zoom-value-left: 45%;
--thermostat-zoom-value-top: -7%;
--thermostat-zoom-value-size: 2.4em;
Die Ticks lasse ich so wie sie sind, damit der Zoomeffect sichtbar ist.
LG mr_petz
Edit:
Datei anlegen:
Legst du einfach im themes Ordner an und bennenst sie user.css
Da kannst du all deine styles bzw. class reinschreiben.
Diese wird nach/bei einem Update nicht überschrieben!
im ftui bindest du sie auf deiner Hauptseite so im head unter dem ftui.css <link> ein:
<link href="themes/user.css" rel="stylesheet">
Das wars...
Zitat von: mr_petz am 19 Oktober 2022, 10:36:50
Ich habe das ZoomValue jetzt Benutzerdefiniert gestaltet.
Position left von der Mitte betrachtet, top von Thermostattop und die Zoomsize des Value.
Einfach einen css-Eintrag oder einen style-Eintrag erstellen.
Hier die Standardwerte:
--thermostat-zoom-value-left: 45%;
--thermostat-zoom-value-top: -7%;
--thermostat-zoom-value-size: 2.4em;
Die Ticks lasse ich so wie sie sind, damit der Zoomeffect sichtbar ist.
LG mr_petz
Klasse! Löst mein Problem perfekt!
Mangels Wissen wie ich das in die css einbaue hab ich es per style-Eintrag eingebaut.
Vielen Dank!
Würde da gern noch eine Frage stellen:
Ich hab es immerhin hinbekommen in der css die Größen der Icons+Werte von Batterie, Ventil und Luftfeuchte zu ändern.
Das hat ja aber keinen Bestand wenn ich "updates" einspiele.
Hast du den entscheidenen Tipp wie ich das dauerhaft / Updateresistent ändern kann?
Danke!
Gruß
Sascha
Hallo,
das Modul ist super. Ich konnte fasst alle meine Wünsche umsetzen. Jetzt ist nur noch ein Punkt offen 8)
Ich würde gerne den Farbkreis etwas "dicker" darstellen. Mit class="size-3" werden aber nur die "Ticks" größer. Was muss ich ändern, damit der Farbkreis zur "Tick-Größe" passt (s. Bilder)
Hier noch meine Definition:
<ftui-thermostat unit=" °C" size="85" min="7.5" max="28.0" class="size-3"
has-old-style has-arc-tick movegradient="3.5"
lowcolor="0,0,255" mediumcolor="170,0,170"
style="--thermostat-value-size:25px;--thermostat-value-color:white; ;--thermostat-temp-size:20px; bold)"
[value]="FBDECT_FB_10971_0220184:desired-temp | part(1)"
(value)="FBDECT_FB_10971_0220184:desired-temp"
[temp]="FBDECT_FB_10971_0220184:temperature | part(1)">
</ftui-thermostat>
Viele Grüße
Jürgen
ok, du kannst jetzt die arc-größe (hatte es eigentlich extra so gemacht, dass die Ticks rausschauen) beeinflussen mit dem style Bsp.:
Hinterer (grauer)
--thermostat-arc-bg:10;
Fill (farbiger)
--thermostat-arc-fill:11;
LG mr_petz
Edit: Hier sind bei dir noch paar Fehler drin:
style="--thermostat-value-size:25px;--thermostat-value-color:white; ;--thermostat-temp-size:20px; bold)"
Korrektur (auch durch Hinweis von @OdfFhem):
style="--thermostat-value-size:25px; --thermostat-value-color:white; --thermostat-temp-size:20px;"
Zitat von: mr_petz am 15 Januar 2023, 01:23:29
Korrektur:
Hinweis zur Korrektur:
- mit dem style-Attribut können CSS-Eigenschaften festgelegt werden ... ok, keine wirklich neue Erkenntnis
- "bold" stellt eine fehlerhafte Angabe dar, da Wert ohne Eigenschaft nicht erlaubt
- also bold weglassen oder font-weight:bold verwenden
Passt prima.
Wann kommt das Modul in den FTUI3-Update-Prozess? Ich hatte es erst vergessen neu herunterzuladen 8)
Viele Grüße
Jürgen
Zitat von: juemuc am 15 Januar 2023, 20:52:56
Wann kommt das Modul in den FTUI3-Update-Prozess? Ich hatte es erst vergessen neu herunterzuladen 8)
Naja, ich denke da ist noch viel Testkram wie ZWave drin (suche noch Tester) und wenig kommentiert und mit meinen bescheidenen Kenntnissen umgesetzt...
Gerade eben noch hinzugefügt Bsp.:
--thermostat-tick-height:16px;
Länge der Ticks (wenn nicht angegeben, dann wird es auto. gesetzt)
--thermostat-tick-radius:50px;
Kreisgröße der Ticks (wenn nicht angegeben, dann wird es auto. gesetzt)
LG
ok. Danke für die Info. Mit ZWAVE kann ich leider nicht helfen.
Viele Grüße
Jürgen
Hi mr_petz,
ich habe noch eine Frage zu "battery". Wenn das Reading einen Wert mit % enthält, wird das Batterie-Icon mit diesem Prozentwert angezeigt. Enthält das Reading einen Wert ohne das %-Zeichen, wird dies auch im Thermostat nicht angezeigt (nur der Wert). Dafür blinkt aber die Batterie bei einem zu niedrigen Wert.
Kann man dies kombinieren? Die Batterie soll ab einem Wert x blinken und das % wird angezeigt?
Viele Grüße
Jürgen
Ich weiß es jetzt nicht genau, aber gibt es beim Thermostat nicht auch das unit="" Tag? In Deinem Fall also unit="%"
@grossmaggul
unit ist für´s value.
Edit: wobei man das auch mit append() erreicht...
@juemuc
Dein Anliegen verstehe ich noch nicht ganz....
LG
Hi mr_ Petz,
aktuell übergebe ich für [battery] ein Reading welches eine Zahl ohne %-Zeichen enthält. Somit wird im Widget neben dem Batterie-Icon auch nur diese Zahl angezeigt. Gleichzeitig blinkt das Batterie-Icon bei einem Wert von 10.
Übergebe ich ein Reading was auch das %-Zeichen enthält, wird zwar das Icon angezeigt, aber es blinkt nicht mehr. Dafür hat der Wert nun als Einheit das %-Zeichen.
Viele Grüße
Jürgen
Ah ok jetzt habe ich es verstanden...
Schaue ich mir an...
LG
@juemuc
Habe es gefixed...
LG
Passt. Vielen Dank
Ab welchem Prozentsatz fangt die Batterie an zu blinken?
Habe die Anwort im Coding gefunden 8) (<25%). Passt
Viele Grüße
Jürgen
Hallo euch allen,
jetzt hab ich aber zum blinken noch eine Anmerkung: Hab mir eben mal die neuesten Dateien vom Thermostat gezogen und hochgeladen, jetzt blinkt meine Batterieanzeige immer. Hab aber bei mir auch den Fall das ich keinen Wert übergebe sondern ein mapping für das Batterie-Icon. Hier mal meine Definition:
<ftui-row>
<ftui-thermostat class="size-1"
[value]="{{device}}:desired-temp | map('4.5:aus')"
(value)="{{device}}:desired-temp"
[temp]="{{device}}:measured-temp"
[valve]="{{device}}:1.LEVEL | append(' %')"
[humidity]="{{device}}:humidity | append(' %')"
[battery]="{{device}}:battery"
battery-icon="map('low:battery-0, ok: battery')"
battery-icon-color="map('low:red, ok:green')"
readonly="true"
[readonly]="Bedienung | map('locked:true,unlocked:false')"
tick="30"
min="0"
max="30"
movegradients="4"
fadegradient="20"
unit=" °C"
has-arc-tick
lowcolor="0,0,255">
</ftui-thermostat>
</ftui-row>
Besteht hier di Möglichkeit das blinken auszuschalten bzw. es nur blinken zu lassen bei "low"?
Gruß Markus
Hi Markus,
wenn Du low=>1 und high>100 zuordnet, sollte es funktionieren.
Viele Grüße
Jürgen
@meier81
Ok habe es geändert.
Wenn low dann class blink.
LG mr_petz
Zitat von: mr_petz am 26 Januar 2023, 15:02:08
@meier81
Ok habe es geändert.
Wenn low dann class blink.
LG mr_petz
Super, vielen Dank.
LG Markus
Jetzt verstehe ich garnix mehr. :(
(value)="{{device}}:desired-temp"
Genau das funktioniert bei mir nicht: Es wird nichts angezeigt.
Bei mir heißt {{device}} zwar {{Thermostat}}, aber daran wird es hoffentlich nicht liegen.
In gleichem popup funktioniert
<ftui-button color="my_blue"
@click="javascript:sendFhem('set Thermostat_Arbeitszimmer desired-temp 21.5;sleep 4;get Thermostat_Arbeitszimmer setpoint;')">21,5</ftui-button>
Also {{Thermostat}} ist korrekt gefüllt.
FHEM, FTUI, Thermostat - alles aktueller Stand.
Wo setze ich denn da nun an?
Da musst du schon mehr zeigen.
(value) ist außerdem zum setzten und nicht zum lesen.
LG
Ich bin in der Erkenntnis etwas weiter, aber nicht klüger. Folgende Situation:
<ftui-grid-tile row="2" col="3" height="1" width="1" color="my_grey3">
<ftui-content file="./haus/template_fenster.html" Raum="Arbeitszimmer" Raum_Detail="Raum_Arbeitszimmer" Thermostat="Thermostat_Arbeitszimmer" Geber1="Arbeits_rechts">
</ftui-content>
</ftui-grid-tile>
template_fenster.html
<ftui-row>
<ftui-label margin="-18px 0 0 0" class="size-0">{{Raum}}</ftui-label>
</ftui-row>
<ftui-row>
<ftui-tab view="{{Raum_Detail}}" direction="vertical">
<ftui-icon margin="-18px 0 0 0" size="3"
[name]="{{Geber1}} | map('open: `icons-eigene/window-open`, closed: `icons-eigene/window-closed`')"
[color]="{{Geber1}} | map('open:my_signalred, closed:my_signalgreen')">
</ftui-icon>
</ftui-tab>
</ftui-row>
Raum_Arbeitszimmer.html
<ftui-grid base-width="96" base-height="86" margin="4">
<!-- Arbeitszimmer -->
[code]
<!-- Zeile 2 -->
<ftui-grid-tile row="2" col="2" height="4" width="7" color="my_grey3">
<iframe src="https://192.168.128.13:8083/fhem/tablet/3-Raum_Arbeitszimmer.html" title="Grafik" width="670" height="400" style="border:none;"></iframe>
</ftui-grid-tile>
</ftui-tab-view>
<ftui-popup id="pop2" timeout="600" width="600px" height="350px">
<!--
<ftui-button [value]="ftuitest:MinMax" (value)="setreading ftuitest:MinMax" states="15,16,18,19,20,20.5,21,21.5,22,23,27">
<ftui-icon size="3" name="plus"></ftui-icon>
</ftui-button>
<ftui-label size="3" [text]="ftuitest:MinMax | fix(1)" unit=" %"></ftui-label>
<ftui-button [value]="ftuitest:MinMax" (value)="setreading ftuitest:MinMax" states="27,23,22,21.5,21,20.5,20,19,18,16,15">
<ftui-icon size="3" name="minus"></ftui-icon>
</ftui-button>
-->
<ftui-row>
<ftui-column>
<ftui-button class="size-1" color="my_darkblue" fill="solid"
@click="javascript:sendFhem('set {{Thermostat}} desired-temp 21.5;sleep 4;get {{Thermostat}} setpoint;')">
<span style="color:white; width:50px; font-size: x-large; font-weight:700;">21,5</span>
</ftui-button>
<ftui-button color="my_blue" @click="javascript:sendFhem('set Thermostat_Arbeitszimmer desired-temp 21.5;sleep 4;get Thermostat_Arbeitszimmer setpoint;')">21,5</ftui-button>
</ftui-column>
<ftui-row>
<ftui-thermostat class="size-1"
[value]="{{Thermostat}}:desired-temp"
(value)="{{Thermostat}}:desired-temp"
readonly="true"
tick="30"
min="0"
max="30"
movegradients="4"
fadegradient="20"
unit=" °C"
has-arc-tick
lowcolor="0,0,255">
</ftui-thermostat>
</ftui-row>
<ftui-column>
<ftui-column>
R-O
</ftui-column>
<ftui-column>
<ftui-button popup-close>close</ftui-button>
<ftui-label @click="pop2.close()">Close Pop2</ftui-label>
</ftui-column>
</ftui-column>
</ftui-row>
Das Problem ist keins von ftui-thermostat. Das Problem ist, dass die Variable {{Thermostat}} zwar ansich vorhanden ist, aber im Popup nicht verfügbar. Und da weiß ich nicht weiter: Kann ich das irgendwie an das Popup übergeben?
@curt
Das sind auch nicht alle Daten.
Raum_Arbeitszimmer.html - Aufruf fehlt in deiner Auflistung und ist unvollständig.
Aber wenn die Raum_Arbeitszimmer.html auch per content aufgerufen wird und da Thermostat="Dein Device" angegeben wird, dann werden auch die variablen ans popup übergeben.
Gerade getestet...
LG
Edit:
hier noch mein Test:
aufruf:
<ftui-grid-tile row="5" col="2" height="15" width="15" shape="round">
<ftui-content file="examples/contents/content-test.html" Raum="Arbeitszimmer" Raum_Detail="Raum_Arbeitszimmer" Thermostat="Thermostat_Arbeitszimmer" Geber1="Arbeits_rechts"></ftui-content>
</ftui-grid-tile>
content:
<ftui-grid base-width="96" base-height="86" margin="4">
<!-- Arbeitszimmer -->
<!-- Zeile 2 -->
<ftui-grid-tile row="2" col="2" height="4" width="7" color="my_grey3">
<ftui-label @click="pop2.open()">popup</ftui-label>
<ftui-popup id="pop2" timeout="600" width="600px" height="350px">
<ftui-thermostat class="size-1"
[value]="{{Thermostat}}:desired-temp"
(value)="{{Thermostat}}:desired-temp"
tick="30"
min="0"
max="30"
movegradients="4"
fadegradient="20"
unit=" °C"
has-arc-tick
lowcolor="0,0,255">
</ftui-thermostat>
<ftui-button popup-close>close</ftui-button>
<ftui-label @click="pop2.close()">Close Pop2</ftui-label>
</ftui-popup>
</ftui-grid>
Zitat von: mr_petz am 26 Februar 2023, 21:25:37
Das sind auch nicht alle Daten.
Ja, das stimmt. Ich vergaß den Codeteil in index.html:
<ftui-tab-view id="Raum_Arbeitszimmer">
<ftui-content file="haus/Raum_Arbeitszimmer.html"></ftui-content>
</ftui-tab-view>
Real wird also eine ID über eine Variable übergeben. Die Idee war ja, bei gleichen/ähnlichen Konstellationen ein content-file mehrfach zu nutzen.
@curt
Hier geht es weiter:
https://forum.fhem.de/index.php/topic,115259.msg1265680.html#msg1265680
LG
Jetzt geht es wieder hier weiter, Frage zum Design.
Im Grunde ist mit dem unten stehenden Code für mich alles nun schön. Bis auf eine Sache: Diese grauen Striche und die Anfangs- und Endbeschriftung, dieses grau: Kann ich da eine andere Farbe wählen? Und falls ja - wie?
<ftui-thermostat class="size-1"
[value]="{{Thermostat}}:desired-temp"
[temp]="{{Geber2}}:temperature"
[humidity]="{{Geber2}}:humidity | append(' %')"
[valve]="{{Thermostat}}:valve"
[valve]="{{Geber2}}:temperature"
unit=" °C"
size="180"
has-zoom
tick="40"
value-decimals="1"
step="0.05"
>
</ftui-thermostat>
@curt
Antwort steht hier:
https://forum.fhem.de/index.php/topic,123084.msg1192701.html#msg1192701
LG mr_petz
Zitat von: mr_petz am 02 März 2023, 07:05:48
Antwort steht hier:
Danke, verstanden. Und funktioniert grundsätzlich (hexadezimal).
Frage: Die in user.css selbst definierten Farben der Art "my_yellow" funktionieren da nicht? Oder mache ich da irgendwie einen Fehler?
@curt
Habe nochmal was am tick-color geändert.
jetzt sollten alle Farbangaben gehen w.z.Bsp.:
blue
var(--medium)
rgb(0,2,4)
rgba(0,2,4,0.5)
#012345
oder eigene.
LG mr_petz
Ich weiß nicht ob ich es recht verstanden habe.
In meiner user.css steht u.a.:
[color=my_yellow] {
--color-base: #FFFF00;
--color-contrast: var(--white);
--color-shade: var(--seagreen);
}
style="--thermostat-tick-color:my_yellow;" geht nicht. style="--thermostat-tick-color:#FFFF00;" geht.
Ja, Deine neue *.js habe ich genommen.
Hi,
dein Eintrag zieht nur bei color= als Attribute.
style="--thermostat-tick-color:#FFFF00;"
ist richtig und der hexstring kann durch rgb oder namen auch ersetzt werden.
Für eine user.css so definieren.Bsp.:
ftui-thermostat{
--thermostat-tick-color: #FFFF00;
}
LG
Ich habe es leider nicht verstanden.
Also am liebsten hätte ich style="--thermostat-tick-color:my_yellow;", da sagst Du, das gehe nicht. Andererseits sagst Du, dass der Hexstring durch Namen ersetzt werden kann.
Ich nehme an, dass Dein Beispiel das irgendwie macht - aber das Beispiel verstehe ich leider nicht.
Ok, anders: Angenommen es soll "mein_gelb" genutzt werden, wäre der Aufruf style="--thermostat-tick-color:mein_gelb;" erstmal gültig?
Und wie müsste das (die Definition) für "mein_gelb" dann in user.css aussehen?
user.css
ftui-thermostat{
--my-yellow: #FFFF00;
}
style
style="--thermostat-tick-color: var(--my-yellow);"
alternativ für ein attribute wie color="":
user.css
[tick-color="my-yellow"]{
--thermostat-tick-color: #FFFF00;
}
thermostat attribute
tick-color="my-yellow"
mit namen meinte ich yellow, black oder blue etc.
LG
Hallo mr_petz,
gibt es eine Möglichkeit die äußere Temperaturanzeige waagerecht (wie ein "Fähnchen") darzustellen? Gerade bei sehr hohen oder niedrigen Temperaturen ist die aktuelle Darstellung nur bedingt lesbar.
Viele Grüße
Jürgen
Hi Jürgen,
ja würde gehen. Nimmt halt mehr platz rechts und links weg.
Würde jetzt mal in die Runde fragen ob es allgemein so dargestellt werden soll, oder nur bei bedarf?!
Wenn bei bedarf dann mit Attribute.
LG
Sieht aus meiner Sicht super aus.
Gerne "immer" so anzeigen. Ist deutlich besserer lesbar.
Viele Grüße
Jürgen
Moin mr_petz,
ich versuche seid geraumer Zeit den Setpoint über Mqtt zu meinem Thermostat zu senden.
Mit set Mqtt2NodeRedBdorf publish cmnd/Gz_Thermostat/TempTargetSet 19.5 in der FHEM Eingabezeile erhält mein Thermostat den sollwert 19.5°.
Mit (value)="Mqtt2NodeRedBdorf publish cmnd/Gz_Thermostat/TempTargetSet " in der FTUI3 Thermostat Konfiguration kommt der letzte Wert in meinem Thermostat (Tasmota) an. Der ausgewählte Wert (z.B. 22.0) aber nicht. Ich sehe in der Tasmota Konsole den letzte gültige Wert als Sollwert ankommen. Ich denke das ist bei fehlendem Wert die normale Reaktion. In der kurzen Einblendung im FTUI (toast ?) sehe ich die Zeile "set Mqtt2NodeRedBdorf publish cmnd/Gz_Thermostat/TempTargetSet" . Es fehlt der Sollwert. Lasse ich das Leerzeichen vor oder nach "publish" weg (ist natürlich nicht mehr funktionsfähig :-)) wird der Sollwert in der kurzen Einblendung (toast ?) auch angezeigt.
Mache ich da was falsch? Ist der String zu lang?
Gruß
Harrybo
Hi HarryBo,
Jetzt solltest du erstmal in die MQTT Abteilung wechseln.
Wir senden hier nix übers mqtt-protokoll sondern an ein Device in Fhem was dann per mqtt/publish den Befehl weiterleitet.
Das erreicht man z.Bsp.: mit einer setList oder publishSet
LG mr_petz
Moin mr_Petz,
danke für die schnelle Antwort. Deine Vorschläge funktionieren natürlich. Ich hatte versucht einen einfacheren zu gehen. Ich wollte direkt aus FTUI3 einen publish Befehl senden. Das funktioniert mit dem "button" ganz gut.
Noch ein Kompliment: Deine Arbeit ist wirklich super! 8)
Gruß
HarryBo
Ok, mit dem ftui-button geht es?
Ich habe es jetzt mal getestet.
Es würde so gehen mit angehangenen $value:
(value)="Mqtt2NodeRedBdorf publish cmnd/Gz_Thermostat/TempTargetSet $value"
LG mr_petz
Zitat von: mr_petz am 05 März 2023, 19:06:38Hi Jürgen,
ja würde gehen. Nimmt halt mehr platz rechts und links weg.
Würde jetzt mal in die Runde fragen ob es allgemein so dargestellt werden soll, oder nur bei bedarf?!
Wenn bei bedarf dann mit Attribute.
LG
Hi mr_petz,
hast Du hier schon eine Entscheidung getroffen ::)
Viele Grüße
Jürgen
Hi Jürgen,
Danke der Nachfrage.
Da sich keiner dazu gemeldet hat, werde ich es als Attribute einfügen.
LG mr_petz
Hi, ich habe mal das ganze zum testen hochgeladen.
Zum aktivieren von Horizontaler currentTemp:
atemp-is-horizontal
und um die Position in der Höhe einzustellen Bsp.:
atemp-position-top="45"
In der Onlinedemo und Example sind die Besipiele zusehen...
ps. Browsercache leeren...
LG mr_petz
Danke. So ist es aus meiner Sicht perfekt.
Viele Grüße
Jürgen
Hi mr_petz,
gibt es eine Möglichkeit dem äußeren Wert auch eine Einheit (°C) mitzugeben?
Viele Grüße
Jürgen
Hi Jürgen,
erstmal nicht angedacht. Möglich wäre es bestimmt.
Gerade wenig Zeit...
LG mr_petz
Hallo mr_petz,
ich habe jetzt meine Thermostate im FTUI3 eingebunden.
Die Begeisterung war wieder mal groß :) :) :)
Vielen Dank !!!
Gruß Aysha
Sehr schön und danke für die Rückmeldung.
Jetzt fehlen nur noch Tester für die ZWave ob das halberwege funktioniert.
LG
Kann ich die Skala des Thermometers irgendwie farblich beeinflussen?
Bei mir auf dem Tabblet wird sie so dunkel dargestellt, dass es vor dem ebenfalls dunklen Hintergrund kaum sichtbar ist.
Würde die Skala am liebsten mit einer fixen farbe, z.b. Weiß, einfärben. Geht das irgendwie?
Hallo,
ich nutze auch seit einiger Zeit das Thermostat - Addon. Was ich nützlich fand, war ein Icon für offenes/geschlossenes Fenster. Vielleicht könnte man das so oder so ähnlich mit aufnehmen:
aufgerufen mit
<!-- <header>Badezimmer</header> -->
<ftui-thermostat class="size-1" style="--thermostat-zoom-value-left:-40%;--thermostat-zoom-value-top:0%;--thermostat-zoom-value-size:2em;"
[(value)]="HMIP_Thermostat_Bad:desired-temp"
[temp]="HMIP_Thermostat_Bad:measured-temp"
[battery]="mqtt_klima_badezimmeroben:temperature"
[valve]="HMIP_Thermostat_Bad:LEVEL"
[windowstate]="HMIP_SWDO_Fenster_Badezimmer:windowstateValue"
[humidity]="mqtt_klima_badezimmeroben:humidity | append(' %')" size="85"
degrees="270"
step="0.5"
tick="30"
min="5"
max="30"
movegradients="4"
fadegradient="20"
unit=" °C"
has-old-style
has-zoom
has-arc-tick
lowcolor="0,0,255"
temp-decimals="1"
>
</ftui-thermostat>
Es funktioniert, mindestens unschön ist aber z.B: dass das Fenstersymbol beim "darüber zoomen" mit verschoben wird.
Hallo.
gerade dieses Feature entdeckt, und gleich ausgetestet.
Aber wie bekomme ich die Battery Anzeige von HM_Thermostat so angezeigt, das 2.6V nicht blinken sondern als voll dargestellt werden?
Hallo,
Du musst das js-File anpassen.
Viele Grüße
Jürgen
Hallo.
Lösung gefunden, ich Mappe die 2.6V auf 100%
Moin,
ich habe es mit einem Dreisatz gelöst:
[battery]="{{Thermostat}}:batteryLevel | add(-2.1) | divide(1.1) | multiply(100) | round(0)"
M.E. funktioniert das ganz gut.
Gruß,
Matthias
Hi, das Fenstersymbol nimmt aber dann mehr von der Kachel ein.
Man könnte es optional einblenden lassen wenn es geöffnet ist...