[ControlMiniDash]Fhemweb Widget für Thermostat,KlimaControl,....,

Begonnen von schwatter, 25 Oktober 2025, 12:09:21

Vorheriges Thema - Nächstes Thema

erwin

Hi,
danke für die Weiterentwicklung, funktioniert, auch "compact" - Aufgefallen ist, das bei meine style nicht viel Unterschied in der Höhe ist, die "buttons" links/rechts aber nicht vorhanden sind.
Ich hab jetzt mein KNX-Beispiel aufgebohrt, dass mit plus/minus buttons die Soll-Temp um einen fixen Wert erhöht/reduziert wird.
Bei Bedarf stelle ich das gern zur Verfügung, entweder hier oder im Wiki, würde jedoch warten bis dein code im "offiziellen" SVN ist.
l.g.erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

schwatter

Nabend,

das ist so beabsichtigt. Es geht darum nur den Slider und Infos in einem UiTable
im DOIF zu haben. Keine Buttons. Siehe Post #50.

Gruß schwatter

schwatter

Moin

@erwin

Ich habe gesehen, du hast eine Beispielseite für KNX

https://wiki.fhem.de/wiki/KNX_Device_Definition_-_Beispiele

Da passt es super hin und ich kann ein Querverweis dahin machen.
Ich denke, wenn sich in 7 Tagen keiner meldet, dann checke ich das Update ein.


Gruß schwatter

Reinhart

Danke für das tolle Widget!
funktioniert soweit mit im Kreis mit der Maus, aber wie kann ich die 6 Buttons aktivieren? Laut Wiki nennen sich die btnXCmd.

btn2Cmd { fhem("set _OG_Wohnz_Kamin desired-temp ".(ReadingsVal("_OG_Wohnz_Kamin","desired-temp",0)-0.5)) }ich habe die Minus Taste jetzt so als userattr definiert, klappt aber nicht.

Unknown argument temp-5 choose one of clear defaults:reset,update,old,forceReset readingFilter:multiple-strict,VALVE_ADAPTION,BOOST_TIME,VALVE_STATE_ADJUSTMENT_TOO_SMALL,QUICK_VETO_TIME,PARTY_SET_POINT_TEMPERATURE,WINDOW_STATE,VALVE_STATE,VALVE_STATE_ERROR_POSITION,PARTY_MODE,VALVE_STATE_TOO_TIGHT,SWITCH_POINT_OCCURED,FROST_PROTECTION,ACTUAL_TEMPERATURE,SET_POINT_TEMPERATURE,VALVE_STATE_ADJUSTMENT_TOO_BIG,BOOST_MODE,ACTIVE_PROFILE,LEVEL,SET_POINT_MODE,PARTY_TIME_END,LEVEL_STATUS,ACTUAL_TEMPERATURE_STATUS,PARTY_TIME_START config datapoint boost:off,on off:noArg manu on:noArg desired-temp holiday week-program:1,2,3 party auto:noArgbekomme dann diese Fehlermeldung. Habe ich da was falsch verstanden oder ist die Bezeichnung der Taste "temp-5" und nicht  btn2Cmd?

FHEM auf Raspy5 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

erwin

Hi Reinhart!
ich habe gestern begonnen ein Beispiel für KNX ins wiki zu stellen, siehe link in #62, das basiert allerdings auf der version im contrib!
Sollte eigentlich auch für andere DeviceTypen funktionieren, es geht ja "nur" um die entsprechenden readings....
Die in diesem Beispiel gezeigte eventmap behandelt die beiden buttons - und löst das richtige set-cmd aus.
die buttons werden so definert, im widget: <iconname>@<cmd> . .. und das wird mittels eventmap weiterverarbeitet.
l.g. erin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

schwatter

Hallo zusammen,

in dem Zusammenhang habe ich wahrscheinlich einen Bug in der aktuellen contrib-Version gefunden.

Individuell funktioniert nicht richtig mit Fhemsvg, nach dem großen Umbau. Bzw wenn widgetOverride so angelegt ist:
climacontrol:controlminidash,measured-temp,desired-temp,measured-temp@°C,humidity@%,desired-temp@°C,state,#,#,#,#,#,#
@Reinhart

Nutz du die aktuelle contrib-Version? Wenn ja, dann funktionieren Fhemperl-Cmd's gerade nur in Verbindung mit externen SVG's. Hier ein einfaches Beispiel:

defmod tcmdWidget dummy
attr tcmdWidget userattr btn2Cmd btn2Color btn2Icon btn5Cmd btn5Color btn5Icon
attr tcmdWidget btn2Cmd { fhem("set tcmdWidget desired-temp ".(ReadingsVal("tcmdWidget","desired-temp",0)-0.5)) }
attr tcmdWidget btn2Color blue
attr tcmdWidget btn2Icon data:image/svg+xml;;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M19%2C19V5H5V19H19M19%2C3A2%2C2%200%200%2C1%2021%2C5V19A2%2C2%200%200%2C1%2019%2C21H5A2%2C2%200%200%2C1%203%2C19V5C3%2C3.89%203.9%2C3%205%2C3H19M17%2C11V13H7V11H17Z%22%20%2F%3E%3C%2Fsvg%3E
attr tcmdWidget btn5Cmd { fhem("set tcmdWidget desired-temp ".(ReadingsVal("tcmdWidget","desired-temp",0) + 0.5)) }
attr tcmdWidget btn5Color red
attr tcmdWidget btn5Icon data:image/svg+xml;;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M19%2C19V5H5V19H19M19%2C3A2%2C2%200%200%2C1%2021%2C5V19A2%2C2%200%200%2C1%2019%2C21H5A2%2C2%200%200%2C1%203%2C19V5C3%2C3.89%203.9%2C3%205%2C3H19M11%2C7H13V11H17V13H13V17H11V13H7V11H11V7Z%22%20%2F%3E%3C%2Fsvg%3E
attr tcmdWidget readingList measured-temp desired-temp humidity state
attr tcmdWidget room Test
attr tcmdWidget setList measured-temp desired-temp humidity state
attr tcmdWidget webCmd climacontrol
attr tcmdWidget widgetOverride climacontrol:controlminidash,measured-temp,desired-temp,measured-temp@°C,humidity@%,desired-temp@°C,state,#,#,#,#,#,#

setstate tcmdWidget auto - V.45%
setstate tcmdWidget 2025-12-28 14:56:58 desired-temp 20
setstate tcmdWidget 2025-12-28 14:11:59 humidity 55
setstate tcmdWidget 2025-12-28 14:11:52 measured-temp 22
setstate tcmdWidget 2025-12-28 14:57:11 state auto - V.45%


Bzw. der erwin hat da einen Workaround:
https://wiki.fhem.de/wiki/KNX_Device_Definition_-_Beispiele#RaumThermostat_/_HeizungsAktor


Ich schaue es mir an.

Gruß schwatter

schwatter

Hallo zusammen,

im contrib ist ein weiteres Update:

  • Setbefehle mit mehr als einem String --> "set <devicename> boost on"
  • Mit widgetOverride funktionieren jetzt auch Perlbefehle in Verbindung mit userattr. --> fhemsvg@# <-- Hashtag ist dafür der Trigger

Ich hoffe jetzt ist alles abgedeckt.


Installieren mit:
{ Svn_GetFile('contrib/fhemweb_controlminidash.js', 'www/pgm2/fhemweb_controlminidash.js') }


Hier 3 widgetOverride-Beispiele

Fhemicon + Fhemcmd only:
attr tcmdWidget widgetOverride climacontrol:controlminidash,measured-temp,desired-temp,measured-temp@°C,humidity@%,desired-temp@°C,state,#,rc_MINUS@boost.off,#,#,rc_PLUS@boost.on,#
Fhemicon + Fhemcmd bzw. Perlcmd aus userattr
attr tcmdWidget widgetOverride climacontrol:controlminidash,measured-temp,desired-temp,measured-temp@°C,humidity@%,desired-temp@°C,state,#,rc_MINUS@#,#,#,rc_PLUS@#,#
SVG Data URL aus userattr + + Fhemcmd bzw. Perlcmd aus userattr
attr tcmdWidget widgetOverride climacontrol:controlminidash,measured-temp,desired-temp,measured-temp@°C,humidity@%,desired-temp@°C,state,#,#,#,#,#,#

Schmeißt die Beispiele hier in den dummy:
defmod tcmdWidget dummy
attr tcmdWidget userattr btn2Cmd btn2Color btn2Icon btn5Cmd btn5Color btn5Icon
attr tcmdWidget btn2Cmd { fhem("set tcmdWidget desired-temp ".(ReadingsVal("tcmdWidget","desired-temp",0) - 0.5)) }
attr tcmdWidget btn2Color blue
attr tcmdWidget btn2Icon data:image/svg+xml;;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%2C20C7.59%2C20%204%2C16.41%204%2C12C4%2C7.59%207.59%2C4%2012%2C4C16.41%2C4%2020%2C7.59%2020%2C12C20%2C16.41%2016.41%2C20%2012%2C20M12%2C2A10%2C10%200%200%2C0%202%2C12A10%2C10%200%200%2C0%2012%2C22A10%2C10%200%200%2C0%2022%2C12A10%2C10%200%200%2C0%2012%2C2M7%2C13H17V11H7%22%20%2F%3E%3C%2Fsvg%3E
attr tcmdWidget btn5Cmd { fhem("set tcmdWidget desired-temp ".(ReadingsVal("tcmdWidget","desired-temp",0) + 0.5)) }
attr tcmdWidget btn5Color red
attr tcmdWidget btn5Icon data:image/svg+xml;;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%2C20C7.59%2C20%204%2C16.41%204%2C12C4%2C7.59%207.59%2C4%2012%2C4C16.41%2C4%2020%2C7.59%2020%2C12C20%2C16.41%2016.41%2C20%2012%2C20M12%2C2A10%2C10%200%200%2C0%202%2C12A10%2C10%200%200%2C0%2012%2C22A10%2C10%200%200%2C0%2022%2C12A10%2C10%200%200%2C0%2012%2C2M13%2C7H11V11H7V13H11V17H13V13H17V11H13V7Z%22%20%2F%3E%3C%2Fsvg%3E
attr tcmdWidget readingList measured-temp desired-temp humidity state
attr tcmdWidget room Test
attr tcmdWidget setList measured-temp desired-temp humidity state
attr tcmdWidget webCmd climacontrol
attr tcmdWidget widgetOverride climacontrol:controlminidash,measured-temp,desired-temp,measured-temp@°C,humidity@%,desired-temp@°C,state,#,rc_MINUS@boost.off,#,#,rc_PLUS@boost.on,#

setstate tcmdWidget boost on
setstate tcmdWidget 2025-12-28 16:40:00 desired-temp 18.5
setstate tcmdWidget 2025-12-28 14:11:59 humidity 55
setstate tcmdWidget 2025-12-28 15:48:53 measured-temp 22
setstate tcmdWidget 2025-12-28 16:45:38 state boost on




Gruß schwatter

Reinhart

Danke euch Beiden, Dummy funktioniert nun bei mir! Ich bau das dann so ein!
FHEM auf Raspy5 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Reinhart

im Prinzip hat sich leider nichts geändert, die + und - Tasten steuern ja jetzt den Boost, das funktioniert aber versuche ich das auf den desired-temp (temp-5, temp+5) zu ändern erhalte ich wieder dieselben Fehlermeldungen.
Internals:
   DEF        00399F29A00749:1
   FUUID      65c75411-f33f-27bd-cd9f-99b80195ed8296b2
   IODev      d_ccu
   NAME       Stiegenhaus
   NR         2800
   STATE      T: 14.9, desired: 22.0, valve: 100
   TYPE       HMCCUCHN
   ccuaddr    00399F29A00749:1
   ccudevstate active
   ccuif      HmIP-RF
   ccuname    HmIP-eTRV-B-2 R4M 00399F29A00749:1
   ccurolectrl HEATING_CLIMATECONTROL_TRANSCEIVER
   ccurolestate HEATING_CLIMATECONTROL_TRANSCEIVER
   ccusubtype TRV-B
   ccutype    HmIP-eTRV-B-2,R4M
   eventCount 446
   firmware   1.2.26
   readonly   no
   OLDREADINGS:
   READINGS:
     2025-12-31 11:11:34   ACTIVE_PROFILE  1
     2025-12-31 11:11:34   ACTUAL_TEMPERATURE 14.9
     2025-12-31 11:11:34   ACTUAL_TEMPERATURE_STATUS NORMAL
     2025-12-31 11:11:34   BOOST_MODE      off
     2025-12-31 11:11:34   BOOST_TIME      0
     2025-12-31 11:11:34   CONFIG_PENDING  false
     2025-12-31 11:11:34   DUTY_CYCLE      false
     2025-12-31 11:11:34   FROST_PROTECTION false
     2025-12-29 09:43:22   INSTALL_TEST    true
     2025-12-31 11:11:34   LEVEL           100
     2025-12-31 11:11:34   LEVEL_STATUS    NORMAL
     2025-12-31 11:11:34   LOW_BAT         ok
     2025-12-31 11:11:34   OPERATING_VOLTAGE 2.6
     2025-12-31 11:11:34   OPERATING_VOLTAGE_STATUS NORMAL
     2025-12-31 11:11:34   PARTY_MODE      false
     2025-12-29 09:43:22   PARTY_SET_POINT_TEMPERATURE 0.0
     2025-12-29 09:43:22   PARTY_TIME_END 
     2025-12-29 09:43:22   PARTY_TIME_START
     2025-12-31 11:11:34   QUICK_VETO_TIME 0
     2025-12-31 11:11:34   RSSI_DEVICE     -52
     2025-12-31 11:11:34   RSSI_PEER       -50
     2025-12-31 11:11:34   SET_POINT_MODE  auto
     2025-12-31 11:11:34   SET_POINT_TEMPERATURE 22.0
     2025-12-31 11:11:34   SWITCH_POINT_OCCURED false
     2025-12-31 11:11:34   UNREACH         alive
     2025-12-29 09:43:22   UPDATE_PENDING  false
     2025-12-29 09:43:22   VALVE_ADAPTION  false
     2025-12-31 11:11:34   VALVE_STATE     ADAPTION_DONE
     2025-12-31 11:11:34   VALVE_STATE_ADJUSTMENT_TOO_BIG false
     2025-12-31 11:11:34   VALVE_STATE_ADJUSTMENT_TOO_SMALL false
     2025-12-31 11:11:34   VALVE_STATE_ERROR_POSITION false
     2025-12-31 11:11:34   VALVE_STATE_TOO_TIGHT false
     2025-12-31 11:11:34   WINDOW_STATE    closed
     2025-12-31 11:11:34   activity        alive
     2025-12-31 11:11:34   battery         ok
     2025-12-31 11:11:34   boost           off
     2025-12-31 11:11:34   control         22.0
     2025-12-31 11:11:34   desired-temp    22.0
     2025-12-31 11:11:34   devstate        ok
     2025-12-31 11:11:34   hmstate         14.9
     2025-12-31 11:11:34   measured-temp   14.9
     2025-12-31 11:11:34   rssidevice      -52
     2025-12-31 11:11:34   rssipeer        -50
     2025-12-31 11:11:34   state           14.9
     2025-12-31 11:11:34   voltage         2.6
     2025-12-31 11:11:34   week-program    1
  

Attributes:
   btn2Cmd    { fhem("set Stiegenhaus desired-temp ".(ReadingsVal("Stiegenhaus","desired-temp",0) - 0.5)) }
   btn2Color  blue
   btn2Icon   data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%2C20C7.59%2C20%204%2C16.41%204%2C12C4%2C7.59%207.59%2C4%2012%2C4C16.41%2C4%2020%2C7.59%2020%2C12C20%2C16.41%2016.41%2C20%2012%2C20M12%2C2A10%2C10%200%200%2C0%202%2C12A10%2C10%200%200%2C0%2012%2C22A10%2C10%200%200%2C0%2022%2C12A10%2C10%200%200%2C0%2012%2C2M7%2C13H17V11H7%22%20%2F%3E%3C%2Fsvg%3E
   btn5Cmd    { fhem("set Stiegenhaus desired-temp ".(ReadingsVal("Stiegenhaus","desired-temp",0) + 0.5)) }
   btn5Color  red
   btn5Icon   data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%2C20C7.59%2C20%204%2C16.41%204%2C12C4%2C7.59%207.59%2C4%2012%2C4C16.41%2C4%2020%2C7.59%2020%2C12C20%2C16.41%2016.41%2C20%2012%2C20M12%2C2A10%2C10%200%200%2C0%202%2C12A10%2C10%200%200%2C0%2012%2C22A10%2C10%200%200%2C0%2022%2C12A10%2C10%200%200%2C0%2012%2C2M13%2C7H11V11H7V13H11V17H13V13H17V11H13V7Z%22%20%2F%3E%3C%2Fsvg%3E
   ccuflags   ackState,showDeviceReadings
   ccuget     Value
   ccureadingfilter .*
   cmdIcon    auto:sani_heating_automatic manu:sani_heating_manual boost:sani_heating_boost on:general_an off:general_aus
   genericDeviceType thermostat
   group      CUL_HM
   icon       hc_wht_regler
   room       HM_Regler,HomematicIP,Test,_Stiegenhaus
   stateFormat T: measured-temp, desired: desired-temp, valve: LEVEL
   substexcl  desired-temp
   userattr   btn2Cmd btn2Color btn2Icon btn5Cmd btn5Color btn5Icon
   webCmd     climacontrol
   widgetOverride climacontrol:controlminidash,measured-temp,desired-temp,measured-temp@°C,LEVEL@%,desired-temp@°C,state,#,rc_MINUS@temp-5,#,#,rc_PLUS@temp+5,#
  

FHEM auf Raspy5 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Reinhart

Nachtrag:
wenn ich im widgetoverride die Definition von temp-5 mit "#" ersetze funktioniert die Sollwertvorgabe und es kommt keine Fehlermeldung mehr!
Ich teste das immer wenn ich parallel ein Fenster im QpenCCU öffne und sehe sofort den neuen Sollwert. 

climacontrol:controlminidash,measured-temp,desired-temp,measured-temp@°C,LEVEL@%,desired-temp@°C,state,#,#,#,#,#,#
FHEM auf Raspy5 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

schwatter

#70
Mahlzeit Reinhart,

temp-5 und temp+5 sind schlechte Platzhalter die suggerieren, sie würden funktionieren.
Weder das Homematic Fhemmodul oder das Widget unterstützen das direkt. Wenn ich demnächst das Widget
update, passe ich auch die Doku an. Benutz dafür die Custombuttons mit z.B btn2Cmd

fhem("set HmIP_WZ_WTH desired-temp ".(ReadingsVal("HmIP_WZ_WTH","desired-temp",0) - 0.5)) }

Gruß schwatter