Hauptmenü

Neueste Beiträge

#1
FHEMWEB / [AnimatedSVG]Fhemweb Widget fü...
Letzter Beitrag von schwatter - 11 Dezember 2025, 19:17:30
Nabend,

AnimatedSVG ist ein Fhemweb Widget zum animieren von SVG. Zum jetzigen Zeitpunkt werden nur SVGs von hier unterstützt: https://pictogrammers.com/library/mdi/
Deshalb liegt es erstmal im Contribute.

Download mit:
{ Svn_GetFile('contrib/fhemweb_animatedsvg.js', 'www/pgm2/fhemweb_animatedsvg.js') }

Beispiel dummy
defmod animatedSvg dummy
attr animatedSvg userattr animatedSVG
attr animatedSvg animatedSVG 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%2C11A1%2C1%200%200%2C0%2011%2C12A1%2C1%200%200%2C0%2012%2C13A1%2C1%200%200%2C0%2013%2C12A1%2C1%200%200%2C0%2012%2C11M12.5%2C2C17%2C2%2017.11%2C5.57%2014.75%2C6.75C13.76%2C7.24%2013.32%2C8.29%2013.13%2C9.22C13.61%2C9.42%2014.03%2C9.73%2014.35%2C10.13C18.05%2C8.13%2022.03%2C8.92%2022.03%2C12.5C22.03%2C17%2018.46%2C17.1%2017.28%2C14.73C16.78%2C13.74%2015.72%2C13.3%2014.79%2C13.11C14.59%2C13.59%2014.28%2C14%2013.88%2C14.34C15.87%2C18.03%2015.08%2C22%2011.5%2C22C7%2C22%206.91%2C18.42%209.27%2C17.24C10.25%2C16.75%2010.69%2C15.71%2010.89%2C14.79C10.4%2C14.59%209.97%2C14.27%209.65%2C13.87C5.96%2C15.85%202%2C15.07%202%2C11.5C2%2C7%205.56%2C6.89%206.74%2C9.26C7.24%2C10.25%208.29%2C10.68%209.22%2C10.87C9.41%2C10.39%209.73%2C9.97%2010.14%2C9.65C8.15%2C5.96%208.94%2C2%2012.5%2C2Z%22%20%2F%3E%3C%2Fsvg%3E
attr animatedSvg readingList state
attr animatedSvg room Test
attr animatedSvg setList state:on,off
attr animatedSvg webCmd test
attr animatedSvg widgetOverride test:animatedsvg,state,on@green,off@grey,rotateLeft,size@50

setstate animatedSvg on
setstate animatedSvg 2025-12-11 15:24:26 state on

widgetOverride test:animatedsvg,state,on@green,off@grey,rotateLeft,size@50widgetOverride test:animatedsvg,<reading>,<on state>@<color>,<off state>@color,<animation>,size@50
Animationsübersicht
pulse
rotateLeft
rotateRight
rotate2d
bounce
shake

Ziele, bzw todo:
  • Fhem-SVG unterstützen
  • Direkt das Deviceicon ersetzen
  • Vielleicht noch Raum für String gewähren


Gruß schwatter
#2
Automatisierung / Aw: Unerklärlicher Zustand im ...
Letzter Beitrag von Marko1976 - 11 Dezember 2025, 18:36:39
wieso loggt
rr_Marko:state:.*nicht die veränderung des Personenstatus im Resident-Device?
#3
FHEMWEB / Aw: [ControlMiniDash]Fhemweb W...
Letzter Beitrag von schwatter - 11 Dezember 2025, 18:13:52
@appi

Probier mal ein userreading für dein Device EG_Buero_Klima

solltemp:solltemp_ist.* {
  my $s = ReadingsVal("EG_Buero_Klima","solltemp_ist","?");
  return $s;
}

Gruß schwatter
#4
FHEMWEB / Aw: 01_FHEMWEB.pm nach Update ...
Letzter Beitrag von Tom111 - 11 Dezember 2025, 18:09:13
Vielen Dank,

mit dem Update vom 11.12.2025 (01_FHEMWEB.pm) klappt es wieder!!

Gruß
Tom
#5
FHEMWEB / Aw: webCmd mit einem "+" im Be...
Letzter Beitrag von rabehd - 11 Dezember 2025, 17:57:09
Da bin ich bestimmt nicht Spitzenreiter.

 8)
#6
FHEM Development / FHEM auf OpenWrt
Letzter Beitrag von jw2013 - 11 Dezember 2025, 17:35:30
Hi,

ich bin schon seit einiger Zeit dabei, FHEM in OpenWrt zu integrieren. Und das meine ich nicht im Sinne von "zum Laufen bringen", sondern das soll so sauber mit eingebunden werden, dass es wahlweise als OpenWrt Paket installiert, oder sogar ins OpenWrt ROM eingebunden werden kann (OpenWrt Imagebuilder).

Über den Sinn und Zweck könnte ich mich jetzt stundenlang auslassen. Kurzfassung, ich verwende sehr gerne Debian auf Servern, und in Form von LMDE auch auf dem Desktop! Aber für viele Zwecke im Zusammenhang mit IoT und Messungen halte ich OpenWrt für besser geeignet (Netzwerk/VPN-Konfiguration), und in vielen Fällen spart man zusätzliche Endgeräte (z.B. wenn FHEM direkt auf den WLAN Access Points läuft).

Eines der Haupt-Probleme ist der Resourcen-Verbrauch. Das fhem-6.4 Paket belegt nach dem Entpacken über 100 MB auf der Platte. Bei OpenWrt wird um jedes Kilobyte gekämpft, und große Distributionen werden auf möglichst viele kleinere Einheiten zerlegt. Das kann man z.B. schön am Linux-Kernel nachvollziehen, da wurde fast jedes Kernel-Modul ein eigenes, optionales Paket.

Ich bin soweit, dass ich mein Konzept als Proof-of-Concept umgesetzt habe. Die Paket-Definitionen (Makefiles) bei OpenWrt sind fast so gut lesbar wie sendmail.cf, aber irgendwann ergaben auch die einen Sinn. Ich habe meinen aktuellen Stand mal auf Github hochgeladen, falls jemand Interesse hat, sich das anzuschauen:

https://github.com/jw2013/openwrt-packages/tree/master/fhem

An den Paket-Definitionen hatte ich lange überlegt, und diverse Makros für das OpenWrt Build System geschrieben, so dass man jetzt FHEM Module per Einzeiler zum Paket machen kann:

https://github.com/jw2013/openwrt-packages/blob/master/fhem/modules.mk

Wer OpenWrt in der Version 24.10 installiert hat, kann das auch ohne Build-System gerne mal testen, sofern wenigstens 32 MB Speicher im ROM/SD und RAM frei sind.
Ich habe ein fertiges OpenWrt-Paket-Repository für FHEM angelegt, das zu allen Architekturen kompatibel ist:

# SSL Support for wget
opkg install libustream-mbedtls

# My public key for package signature check
wget https://jw2013.github.io/openwrt-packages/public.key
opkg-key add public.key

# My public repository for OpenWrt 24.10 FHEM packages
echo 'src/gz fhem https://jw2013.github.io/openwrt-packages/fhem/24.10/all' >> /etc/opkg/customfeeds.conf
opkg update

# This will also install all dependencies for perl, fhem-bin and fhem-service
opkg install fhem-mod-fhemweb
Danach sollte FHEM auf Port 8083 erreichbar sein.

Falls Interesse besteht, bei dem Projekt mitzumachen, gerne melden!

Viele Grüße aus dem Saarland
- jens
#7
Marktplatz - Güter / [Verkaufe] Fensterdrehgeriffko...
Letzter Beitrag von sentinel1 - 11 Dezember 2025, 17:33:24
Hallo,

biete ein Fensterdrehgeriffkontakt - Die nächste Runde, breite Version, zum verkauf an.
War nicht eingebaut,funktioniert aber.Gerade noch getestet.Eine neue Batterie lege ich
noch dazu.

Preis 10 Eur + Versand
#8
FHEMWEB / Aw: [ControlMiniDash]Fhemweb W...
Letzter Beitrag von Damian - 11 Dezember 2025, 17:26:05
Normalerweise wird ein FHEM-Widget an ein Device gebunden und nicht an mehrere. Innerhalb des angegebenen Devices kann man die Reading angeben, die man haben will. Beim DOIF kann man im letzten Parameter zusätzlich definieren, wie der Wert gesetzt werden soll, insbesondere wenn die Angabe vom anzuzeigenden Wert abweicht.

Wenn solltemp_ist den aktuellen Wert beinhaltet und man per set EG_Buero_Klima solltemp <Wert> die Temperatur setzt, dann sollte es so funktionieren:


widget([EG_Buero_Klima:solltemp_ist],'controlminidash,measured_temp,#,solltemp_ist,valvepos,sani_heating_manual@controlMode.manual,rc_MINUS@temp-5,sani_heating_boost@boost,sani_heating_automatic@controlMode.automatic,rc_PLUS@temp+5,sani_heating_mode@night_day',"set solltemp")
#9
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 11 Dezember 2025, 16:53:09
ZitatWenn ich die beiden Vorhersagen vergleiche, gibt es bei meiner "alten Instanz" unrealistische Vorhersagen, deren Ursache meiner Meinung nach wegen wiederholt falscher Wetterprognosen falsch gelernte Korrekturfaktoren sind.
Das ist nicht auszuschließen.
#10
FHEMWEB / Aw: [ControlMiniDash]Fhemweb W...
Letzter Beitrag von appi - 11 Dezember 2025, 16:46:31
Ich hab heute noch etwas geübt, allerdings mit mässigem Erfolg.....
Das widgetOverride direkt im KNX Device funktioniert eigentlich, ausser wenn ich die solltemp direkt am Thermostat an der Wand ändere bekommt dieses Device das nicht mit, weil der neue Soll im Reading solltemp_ist upgedatet wird.

define EG_Buero_Klima KNX 4/2/101:dpt9:solltemp:set:nosuffix 4/1/1:dpt9:measured_temp:get:nosuffix 4/2/1:dpt9:solltemp_ist:get:nosuffix 4/3/1:dpt5.001:valvepos:get:nosuffix
attr EG_Buero_Klima IODev myKNXGW
attr EG_Buero_Klima alias Temp Büro
attr EG_Buero_Klima btn5Cmd { fhem("set widgetControlUserAttr solltemp ".(ReadingsVal("widgetControlUserAttr","solltemp_ist",0)+0.5)) }
attr EG_Buero_Klima comment GAs: SollTemp-schreiben, IstTemp, SollTemp-lesen, ValvePosition
attr EG_Buero_Klima group Raumklima
attr EG_Buero_Klima room Buero,Klima/ Heizung
attr EG_Buero_Klima sortby 8
attr EG_Buero_Klima stateFormat Ist: measured_temp °C | Soll: solltemp_ist °C | Ventil: valvepos
attr EG_Buero_Klima webCmd climacontrol
attr EG_Buero_Klima widgetOverride climacontrol:controlminidash,measured_temp,#,solltemp,valvepos,#,#,#,#,#,#
#  CFGFN     
#  DEF        4/2/101:dpt9:solltemp:set:nosuffix 4/1/1:dpt9:measured_temp:get:nosuffix 4/2/1:dpt9:solltemp_ist:get:nosuffix 4/3/1:dpt5.001:valvepos:get:nosuffix
#  FUUID      693a69cd-f33f-fb60-6cfa-11e02ca9bd002cea
#  IODev      myKNXGW
#  LASTInputDev myKNXGW
#  MSGCNT    793
#  NAME      EG_Buero_Klima
#  NR        1229
#  STATE      Ist: 23.3 °C | Soll: 19.5 °C | Ventil: 0 %
#  STILLDONETIME 0
#  TYPE      KNX
#  eventCount 887
#  model      dpt9
#  myKNXGW_MSGCNT 793
#  myKNXGW_TIME 2025-12-11 15:55:46
#  GADDETAILS:
#    measured_temp:
#      CODE      04101
#      MODEL      dpt9
#      NO        2
#      OPTION    get
#      RDNAMEGET  measured_temp
#      RDNAMESET  measured_temp
#      SETLIST   
#    solltemp:
#      CODE      04265
#      MODEL      dpt9
#      NO        1
#      OPTION    set
#      RDNAMEGET  solltemp
#      RDNAMESET  solltemp
#      SETLIST   
#    solltemp_ist:
#      CODE      04201
#      MODEL      dpt9
#      NO        3
#      OPTION    get
#      RDNAMEGET  solltemp_ist
#      RDNAMESET  solltemp_ist
#      SETLIST   
#    valvepos:
#      CODE      04301
#      MODEL      dpt5.001
#      NO        4
#      OPTION    get
#      RDNAMEGET  valvepos
#      RDNAMESET  valvepos
#      SETLIST    :slider,0,1,100
#  GADTABLE:
#    04101      measured_temp
#    04201      solltemp_ist
#    04265      solltemp
#    04301      valvepos
#  Helper:
#  READINGS:
#    2025-12-11 13:45:02  IODev          myKNXGW
#    2025-12-11 15:55:46  last-sender    1.1.8
#    2025-12-11 15:55:46  measured_temp  23.3
#    2025-12-11 15:53:53  solltemp        22.0
#    2025-12-11 15:54:34  solltemp_ist    19.5
#    2025-12-11 15:55:46  state          23.3
#    2025-12-11 15:54:59  valvepos        0 %
#
setstate EG_Buero_Klima Ist: 23.3 °C | Soll: 19.5 °C | Ventil: 0 %
setstate EG_Buero_Klima 2025-12-11 13:45:02 IODev myKNXGW
setstate EG_Buero_Klima 2025-12-11 15:55:46 last-sender 1.1.8
setstate EG_Buero_Klima 2025-12-11 15:55:46 measured_temp 23.3
setstate EG_Buero_Klima 2025-12-11 15:53:53 solltemp 22.0
setstate EG_Buero_Klima 2025-12-11 15:54:34 solltemp_ist 19.5
setstate EG_Buero_Klima 2025-12-11 15:55:46 state 23.3
setstate EG_Buero_Klima 2025-12-11 15:54:59 valvepos 0 %



Da funktioniert die Version mit dem widgetOverride in einem separaten DoIF Device etwas besser.
Das KNX Device bekommt die Aenderungen des Soll im DoIF nicht mit , hier stehe ich nun etwas hilfloss da..

define di_Klima_Buero DOIF {}
attr di_Klima_Buero alias Klima Büro Widget
attr di_Klima_Buero event_Readings measured-temp: [EG_Buero_Klima:measured_temp],\
solltemp: [EG_Buero_Klima:solltemp],\
solltemp_ist: [EG_Buero_Klima:solltemp_ist],\
valve: [EG_Buero_Klima:valvepos]
attr di_Klima_Buero room Buero
attr di_Klima_Buero uiTable {package ui_Table;;;;}\\
card([[EG_Buero_Klima:measured_temp:col],[EG_Buero_Klima:solltemp_ist:col]],"Büro","temp_inside",15,40,undef,undef,["Ist °C,red","Soll °C,#287afc"],\&temp_hue,"1","180,,,,,,200",undef,undef)|\
widget([EG_Buero_Klima:measured-temp],'controlminidash,measured_temp,#,solltemp,valvepos,sani_heating_manual@controlMode.manual,rc_MINUS@temp-5,sani_heating_boost@boost,sani_heating_automatic@controlMode.automatic,rc_PLUS@temp+5,sani_heating_mode@night_day',"set solltemp")
#  CFGFN     
#  DEF        {}
#  FUUID      6939b694-f33f-fb60-cdbd-68861a665f10b40c
#  MODEL      Perl
#  NAME      di_Klima_Buero
#  NOTIFYDEV  global,EG_Buero_Klima
#  NR        1225
#  NTFY_ORDER 50-di_Klima_Buero
#  STATE      initialized
#  TYPE      DOIF
#  VERSION    30377 2025-10-12 09:46:59
#  eventCount 891
#  READINGS:
#    2025-12-11 16:37:05  measured-temp  23.1
#    2025-12-10 19:06:12  mode            enabled
#    2025-12-11 16:38:54  solltemp        23.0
#    2025-12-11 16:38:54  solltemp_ist    23
#    2025-12-10 19:06:12  state          initialized
#    2025-12-11 14:29:06  temp_soll      20.0
#    2025-12-10 19:10:40  temp_soll_num_only 20.5
#    2025-12-11 16:38:59  valve          0 %
#  Regex:
#    accu:
#    bar:
#    barAvg:
#    collect:
#      EG_Buero_Klima:
#        collect:
#          getG2      ^EG_Buero_Klima$:^getG2:
#          getG3      ^EG_Buero_Klima$:^getG3:
#          measured-temp ^EG_Buero_Klima$:^measured-temp:
#          measured_temp ^EG_Buero_Klima$:^measured_temp:
#          solltemo  ^EG_Buero_Klima$:^solltemo:
#          solltemp_ist ^EG_Buero_Klima$:^solltemp_ist:
#    event_Readings:
#      EG_Buero_Klima:
#        measured-temp:
#          measured_temp ^EG_Buero_Klima$:^measured_temp:
#        solltemp:
#          solltemp  ^EG_Buero_Klima$:^solltemp:
#        solltemp_ist:
#          solltemp_ist ^EG_Buero_Klima$:^solltemp_ist:
#        valve:
#          valvepos  ^EG_Buero_Klima$:^valvepos:
#    uiTable:
#      EG_Buero_Klima:
#        di_Klima_Buero_uiTable_c_1_0_0_0:
#          measured_temp ^EG_Buero_Klima$:^measured_temp:
#          solltemp_ist ^EG_Buero_Klima$:^solltemp_ist:
#        di_Klima_Buero_uiTable_c_1_1_0_0:
#          measured-temp ^EG_Buero_Klima$:^measured-temp:
#  card:
#  collect:
#    EG_Buero_Klima getG2:
#      24:
#        animate    0
#        dim        72
#        hours      24
#        last     
#        last_slot  1471159
#        last_v    22.3
#        max_value  22.3
#        max_value_slot 71
#        max_value_time 1765390947
#        min_value  22.3
#        min_value_slot 71
#        min_value_time 1765390947
#        name      EG_Buero_Klima
#        reading    getG2
#        ring      1
#        time      1765390987
#        type      col
#        value      22.3
#        times:
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          1765390283
#          1765390947
#        values:
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          22.3
#          22.3
#    EG_Buero_Klima getG3:
#      24:
#        animate    0
#        dim        72
#        hours      24
#        last     
#        last_slot  1471214
#        last_v    18.5
#        max_value  18.5
#        max_value_slot 16
#        max_value_time 1765390947
#        min_value  0
#        min_value_slot 71
#        min_value_time 1765457756
#        name      EG_Buero_Klima
#        reading    getG3
#        ring      1
#        time      1765457756
#        type      col
#        value      0
#        times:
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          1765390283
#          1765390947
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          1765457756
#        values:
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          18.5
#          18.5
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          0
#    EG_Buero_Klima measured-temp:
#      24:
#        animate    0
#        dim        72
#        hours      24
#        last     
#        last_slot  1471215
#        last_v    0
#        max_value  0
#        max_value_slot 71
#        max_value_time 1765458749
#        min_value  0
#        min_value_slot 71
#        min_value_time 1765458749
#        name      EG_Buero_Klima
#        reading    measured-temp
#        time      1765458749
#        type      col
#        value      0
#        times:
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          1765457756
#          1765458749
#        values:
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          0
#          0
#    EG_Buero_Klima measured_temp:
#      24:
#        animate    0
#        dim        72
#        hours      24
#        last     
#        last_slot  1471222
#        last_v    23
#        max_value  23.3
#        max_value_slot 69
#        max_value_time 1765464946
#        min_value  22.9
#        min_value_slot 68
#        min_value_time 1765463228
#        name      EG_Buero_Klima
#        reading    measured_temp
#        ring      1
#        time      1765467534
#        type      col
#        value      23.1
#        times:
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          1765460228
#          1765460822
#          1765462030
#          1765463228
#          1765464946
#          1765466227
#          1765467425
#        values:
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          22.9
#          22.9
#          22.9
#          22.9
#          23.3
#          23
#          23.1
#    EG_Buero_Klima solltemo:
#      24:
#        animate    0
#        dim        72
#        hours      24
#        last_slot  1471215
#        last_v   
#        max_value  0
#        max_value_slot 71
#        max_value_time 1765458749
#        min_value  0
#        min_value_slot 71
#        min_value_time 1765458749
#        name      EG_Buero_Klima
#        reading    solltemo
#        time      1765458749
#        type      col
#        value      0
#        times:
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          1765458749
#        values:
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          0
#    EG_Buero_Klima solltemp_ist:
#      24:
#        animate    0
#        dim        72
#        hours      24
#        last      23
#        last_slot  1471222
#        last_v    25
#        max_value  25.5
#        max_value_slot 68
#        max_value_time 1765463825
#        min_value  19
#        min_value_slot 71
#        min_value_time 1765466948
#        name      EG_Buero_Klima
#        reading    solltemp_ist
#        ring      1
#        time      1765467534
#        type      col
#        value      23
#        times:
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          1765460228
#          1765460822
#          1765462030
#          1765463825
#          1765464874
#          1765466061
#          1765466948
#        values:
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          undef
#          20
#          20
#          20
#          25.5
#          19.5
#          25
#          19
#  condition:
#    0         
#  event_Readings:
#    measured-temp  ::ReadingValDoIf($hash,'EG_Buero_Klima','measured_temp')
#    solltemp    ::ReadingValDoIf($hash,'EG_Buero_Klima','solltemp')
#    solltemp_ist  ::ReadingValDoIf($hash,'EG_Buero_Klima','solltemp_ist')
#    valve      ::ReadingValDoIf($hash,'EG_Buero_Klima','valvepos')
#  helper:
#    NOTIFYDEV  global,EG_Buero_Klima
#    event      last-sender: 1.1.8,valvepos: 0 %,0 %
#    globalinit 1
#    last_timer 0
#    sleeptimer -1
#    triggerDev EG_Buero_Klima
#    triggerEvents:
#      last-sender: 1.1.8
#      valvepos: 0 %
#      0 %
#    triggerEventsState:
#      last-sender: 1.1.8
#      valvepos: 0 %
#      state: 0 %
#  perlblock:
#    0          block_01
#  uiState:
#  uiTable:
#    dev        EG_Buero_Klima
#    header   
#<table uitabid='DOIF-di_Klima_Buero' class=' block wide uiTabledoif doif-di_Klima_Buero ' style='border-top:none;'>
#    package    package ui_Table;
#    reading    measured-temp
#    table:
#      0:
#        0:
#          0:
#            0          'error syntax error at (eval 2378030) line 1, at EOF
# in expression: \'
#      1:
#        0:
#          0:
#            0          package ui_Table;::DOIF_Widget($hash,$reg,'di_Klima_Buero_uiTable_c_1_0_0_0',card([::ReadingValDoIf($hash,'EG_Buero_Klima','measured_temp','','col'),::ReadingValDoIf($hash,'EG_Buero_Klima','solltemp_ist','','col')],"Büro","temp_inside",15,40,undef,undef,["Ist °C,red","Soll °C,#287afc"],\&temp_hue,"1","180,,,,,,200",undef,undef),"")
#        1:
#          0:
#            0          package ui_Table;::DOIF_Widget($hash,$reg,'di_Klima_Buero_uiTable_c_1_1_0_0',widget(::ReadingValDoIf($hash,'EG_Buero_Klima','measured-temp'),'controlminidash,measured_temp,#,solltemp,valvepos,sani_heating_manual@controlMode.manual,rc_MINUS@temp-5,sani_heating_boost@boost,sani_heating_automatic@controlMode.automatic,rc_PLUS@temp+5,sani_heating_mode@night_day',"set solltemp"),'EG_Buero_Klima','measured-temp')
#    tc:
#    td:
#      0:
#      1:
#    tr:
#
setstate di_Klima_Buero initialized
setstate di_Klima_Buero 2025-12-11 15:36:33 .col_72_EG_Buero_Klima_getG2_24_times ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1765390283,1765390947
setstate di_Klima_Buero 2025-12-11 15:36:33 .col_72_EG_Buero_Klima_getG2_24_values ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,22.3,22.3
setstate di_Klima_Buero 2025-12-11 15:36:33 .col_72_EG_Buero_Klima_getG3_24_times ,,,,,,,,,,,,,,,1765390283,1765390947,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1765457756
setstate di_Klima_Buero 2025-12-11 15:36:33 .col_72_EG_Buero_Klima_getG3_24_values ,,,,,,,,,,,,,,,18.5,18.5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0
setstate di_Klima_Buero 2025-12-11 15:36:33 .col_72_EG_Buero_Klima_measured-temp_24_times ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1765457756,1765458749
setstate di_Klima_Buero 2025-12-11 15:36:33 .col_72_EG_Buero_Klima_measured-temp_24_values ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0
setstate di_Klima_Buero 2025-12-11 15:36:33 .col_72_EG_Buero_Klima_measured_temp_24_times ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1765460228,1765460822,1765462030,1765463228
setstate di_Klima_Buero 2025-12-11 15:36:33 .col_72_EG_Buero_Klima_measured_temp_24_values ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,22.9,22.9,22.9,22.9
setstate di_Klima_Buero 2025-12-11 15:36:33 .col_72_EG_Buero_Klima_solltemo_24_times ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1765458749
setstate di_Klima_Buero 2025-12-11 15:36:33 .col_72_EG_Buero_Klima_solltemo_24_values ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0
setstate di_Klima_Buero 2025-12-11 15:36:33 .col_72_EG_Buero_Klima_solltemp_ist_24_times ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1765460228,1765460822,1765462030,1765463228
setstate di_Klima_Buero 2025-12-11 15:36:33 .col_72_EG_Buero_Klima_solltemp_ist_24_values ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,20,20,20,20
setstate di_Klima_Buero 2025-12-11 16:37:05 measured-temp 23.1
setstate di_Klima_Buero 2025-12-10 19:06:12 mode enabled
setstate di_Klima_Buero 2025-12-11 16:38:54 solltemp 23.0
setstate di_Klima_Buero 2025-12-11 16:38:54 solltemp_ist 23
setstate di_Klima_Buero 2025-12-10 19:06:12 state initialized
setstate di_Klima_Buero 2025-12-11 14:29:06 temp_soll 20.0
setstate di_Klima_Buero 2025-12-10 19:10:40 temp_soll_num_only 20.5
setstate di_Klima_Buero 2025-12-11 16:38:59 valve 0 %