Fhemweb Widget [ControlMiniDash] Thermostat,KlimaControl,....,

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

Vorheriges Thema - Nächstes Thema

schwatter

Momentan ja, 1 Widget pro Device. Wenn ich mehrere, sagen wir Thermostate, gruppieren möchte, würde ich zu room und subType greifen.
Du hast vom DOIF den Anspruch, möglichst viel in einen Table zu packen, aber da sag ich als User, find ich zu viel.
Manchmal kann es auch mal nur ein kleines Element sein.
Ich nutze viel Handy anstatt Desktop.

Abgesehen davon, mag ich Strings in Readings abzulegen.
Ich muss aber auch gestehen, userattr hab ich noch nie genutzt.
Nicht mal angeschaut, mach ich jetzt mal.

Gruß schwatter

Damian

OK. Dann wäre es das erste Widget, was es nicht unterstützt. Raumansicht ist leider kein Ersatz für eine "Dashboard"-Darstellung.

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

schwatter

#17
Du darfst diesen Dateianhang nicht ansehen.

Meinst du das in etwa so? Die Buttons und auch das set sind noch nicht gemapped. Aber die angezeigten Readings. Ob ich das will, weiß ich noch nicht.
Ein Kontrolwidget reicht mir. Aber, ich gebe zu, zur Visualierung für mehrere Ringe oder was man sonst noch aus SVG basteln kann ist es super.
Auch sowas könnte damit umgesetzt werden:https://previews.123rf.com/images/liborpal/liborpal2301/liborpal230100005/197028818-old-analog-ammeter-on-a-white-background-measurement-of-electric-current.jpg

Edit:
Mehrere Def per widgetOverride funktionieren doch. Daher habe ich das JS im Anhang wieder entfernt.

defmod widgetDummyDataUrlSVG dummy
attr widgetDummyDataUrlSVG readingList on off measured-temp humidity desired-temp status measured-temp1 humidity1 desired-temp desired-temp1 desired-temp2 status1 measured-temp2 humidity2 desired-temp status2 btn1Icon btn2Icon btn3Icon btn4Icon btn5Icon btn6Icon btn1Cmd btn2Cmd btn3Cmd btn4Cmd btn5Cmd btn6Cmd
attr widgetDummyDataUrlSVG room Test
attr widgetDummyDataUrlSVG setList on off measured-temp humidity desired-temp status measured-temp1 humidity1 desired-temp desired-temp1 desired-temp2 status1 measured-temp2 humidity2 desired-temp status2 btn1Icon btn2Icon btn3Icon btn4Icon btn5Icon btn6Icon btn1Cmd btn2Cmd btn3Cmd btn4Cmd btn5Cmd btn6Cmd
attr widgetDummyDataUrlSVG subType Thermostat
attr widgetDummyDataUrlSVG webCmd climacontrol:climacontrol1:climacontrol2
attr widgetDummyDataUrlSVG widgetOverride climacontrol:controlminidash,measured-temp,humidity,desired-temp,status climacontrol1:controlminidash,measured-temp,humidity,desired-temp,status climacontrol2:controlminidash,measured-temp,humidity,desired-temp,status climacontrol:controlminidash,measured-temp,humidity,desired-temp,status climacontrol1:controlminidash,measured-temp1,humidity1,desired-temp1,status climacontrol2:controlminidash,measured-temp2,humidity2,desired-temp2,status

setstate widgetDummyDataUrlSVG 21.5
setstate widgetDummyDataUrlSVG 2025-11-06 20:28:15 btn1Icon 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%22M20.79%2C13.95L18.46%2C14.57L16.46%2C13.44V10.56L18.46%2C9.43L20.79%2C10.05L21.31%2C8.12L19.54%2C7.65L20%2C5.88L18.07%2C5.36L17.45%2C7.69L15.45%2C8.82L13%2C7.38V5.12L14.71%2C3.41L13.29%2C2L12%2C3.29L10.71%2C2L9.29%2C3.41L11%2C5.12V7.38L8.5%2C8.82L6.5%2C7.69L5.92%2C5.36L4%2C5.88L4.47%2C7.65L2.7%2C8.12L3.22%2C10.05L5.55%2C9.43L7.55%2C10.56V13.45L5.55%2C14.58L3.22%2C13.96L2.7%2C15.89L4.47%2C16.36L4%2C18.12L5.93%2C18.64L6.55%2C16.31L8.55%2C15.18L11%2C16.62V18.88L9.29%2C20.59L10.71%2C22L12%2C20.71L13.29%2C22L14.7%2C20.59L13%2C18.88V16.62L15.5%2C15.17L17.5%2C16.3L18.12%2C18.63L20%2C18.12L19.53%2C16.35L21.3%2C15.88L20.79%2C13.95M9.5%2C10.56L12%2C9.11L14.5%2C10.56V13.44L12%2C14.89L9.5%2C13.44V10.56Z%22%20%2F%3E%3C%2Fsvg%3E
setstate widgetDummyDataUrlSVG 2025-11-06 22:11:25 btn2Cmd { fhem("set widgetDummyDataUrlSVG desired-temp ".(ReadingsVal("widgetDummyDataUrlSVG","desired-temp",0)-0.5)) }
setstate widgetDummyDataUrlSVG 2025-11-05 21:16:23 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
setstate widgetDummyDataUrlSVG 2025-11-06 20:25:41 btn3Cmd set widgetDummyDataUrlSVG off
setstate widgetDummyDataUrlSVG 2025-11-06 20:27:05 btn3Icon 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%2C20A8%2C8%200%200%2C1%204%2C12A8%2C8%200%200%2C1%2012%2C4A8%2C8%200%200%2C1%2020%2C12A8%2C8%200%200%2C1%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%2C2Z%22%20%2F%3E%3C%2Fsvg%3E
setstate widgetDummyDataUrlSVG 2025-11-06 20:27:32 btn4Icon 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%22M8.5%204.5L5.4%209.5L8.5%2014.7L5.2%2020.5L3.4%2019.6L6.1%2014.7L3%209.5L6.7%203.6L8.5%204.5M14.7%204.4L11.6%209.5L14.7%2014.5L11.4%2020.3L9.6%2019.4L12.3%2014.5L9.2%209.5L12.9%203.5L14.7%204.4M21%204.4L17.9%209.5L21%2014.5L17.7%2020.3L15.9%2019.4L18.6%2014.5L15.5%209.5L19.2%203.5L21%204.4%22%20%2F%3E%3C%2Fsvg%3E
setstate widgetDummyDataUrlSVG 2025-11-06 12:27:15 btn5Cmd { fhem("set widgetDummyDataUrlSVG desired-temp ".(ReadingsVal("widgetDummyDataUrlSVG","desired-temp",0)+0.5)) }
setstate widgetDummyDataUrlSVG 2025-11-05 21:16:01 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
setstate widgetDummyDataUrlSVG 2025-11-06 20:25:31 btn6Cmd set widgetDummyDataUrlSVG on
setstate widgetDummyDataUrlSVG 2025-11-06 20:26:48 btn6Icon 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%2C20A8%2C8%200%200%2C1%204%2C12A8%2C8%200%200%2C1%2012%2C4A8%2C8%200%200%2C1%2020%2C12A8%2C8%200%200%2C1%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%2C2M12%2C7A5%2C5%200%200%2C0%207%2C12A5%2C5%200%200%2C0%2012%2C17A5%2C5%200%200%2C0%2017%2C12A5%2C5%200%200%2C0%2012%2C7Z%22%20%2F%3E%3C%2Fsvg%3E
setstate widgetDummyDataUrlSVG 2025-11-07 13:12:56 desired-temp 22.5
setstate widgetDummyDataUrlSVG 2025-11-07 13:12:20 desired-temp1 17.5
setstate widgetDummyDataUrlSVG 2025-11-07 13:12:00 desired-temp2 24
setstate widgetDummyDataUrlSVG 2025-10-31 18:47:19 humidity 53
setstate widgetDummyDataUrlSVG 2025-11-07 12:59:56 humidity1 54
setstate widgetDummyDataUrlSVG 2025-11-07 13:02:19 humidity2 68
setstate widgetDummyDataUrlSVG 2025-11-06 19:07:00 measured-temp 12
setstate widgetDummyDataUrlSVG 2025-11-07 12:59:47 measured-temp1 15
setstate widgetDummyDataUrlSVG 2025-11-07 13:01:21 measured-temp2 25
setstate widgetDummyDataUrlSVG 2025-11-07 13:12:55 off
setstate widgetDummyDataUrlSVG 2025-11-07 13:12:56 on
setstate widgetDummyDataUrlSVG 2025-11-02 19:10:30 state 21.5
setstate widgetDummyDataUrlSVG 2025-11-05 20:18:40 status Heating


Gruß schwatter


Damian

#18
Als Beispiel ist hier alles in einem Device. Sowohl die Steuerung als auch die Visualisierung wurde durch eine Schleife generiert. Was hier zeilenweise aus mehreren Widgets definiert wurde, könnte ich mir kompakter und schöner jeweils als ein Widget vorstellen.

Und es macht auch keinen Sinn jeweils die gleichen Definitionen pro Raum auf viele Dummys oder sonstige Devices zu verteilen.

Wenn ich hierbei einen weiteren Raum mit Visualisierung und Steuerung hinzufügen will, dann brauche ich nur eine Zeile in der Definition hinzuzufügen:

z. B. 

push (@{$_sc},[qw(Bad TH_Bad_HM H_Bad)]);
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

schwatter

Verstehe, das Widget einmalig definieren und einmalig alle Devices als attr ablegen. Und dann kommt ein fertiger Table raus mit allem pro Device.

So, habe den ersten Beitrag mal auf Widget getrimmt und auch die Überschrift vom Thread.

Gruß schwatter