HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten

Begonnen von peterk_de, 30 November 2014, 01:19:38

Vorheriges Thema - Nächstes Thema

peterk_de

#135
Hallo Markus,

die Funktion ist für einen Aufruf aus einem Notify geschrieben und $EVENT wird nach näherer Betrachtung gar nicht benutzt, es müsste mit also mit $device statt $name auch in einem DOIF klappen. Die Idee ist, dass du ein Gerät hast - z.B. der Wandthemostat - das die Temperatur sendet, auf die du dann mit einem Notify reagierst. In diesem Notify wird calcLuefungsStates aufgerufen und schreibt dann zusätzliche Readings in den Wandthermostaten. Bei mir sieht das so aus:

define n_wandthermostat_Weather_fenster notify .*\.(wandthermostat_Weather|fenster2?):.*(temperature|offen|geschlossen|open|closed).* {
  fhem("sleep 1;{calcLueftungsStates('$NAME','$EVENT')}");
  return;
}


Das sleep 1 führt dazu, dass die geänderten Readings auch Events auslösen und wieder andere Notifies triggern können.

ZitatDamit könnte ich mir den K-Faktor berechnen und diesen dann für alle anderen Räume benutzen.

Ja, damit könnte das ganz gut klappen. Ganz genau ist das aber naürlich nie. Für die K-Wert Berechnung über die Formel würde ich aber ab und an mal IR-Thermometer mit deinem Wandfühler vergleichen, wenn du eh beides hast. Denn ne Oberflächentemperatur mit nem Kontaktfühler zu messen ist tricky ;-)

Ich persönlich mache es so: Ich habe für zwei kritische Räume einen Wandtemperatursensor - das sind Bad und Schlafzimmer. Für alle anderen Räume mit Außenwänden (Küche, Wohnzimmer und Arbeitszimmer) verwende ich den gleichen K-Wert, den ich mal im Wohnzimmer ermittelt habe, da diese Räume baulich recht ähnlich sind. Nur im Schlafzimmer steht ein dicker Schrank an der Außenwand und wir heizen da auch weniger, daher hab ich hier die genauere Methode gewählt und an die per IR-Kamera bestimmte kälteste Stelle nen Sensor gepappt - und wegen des hohen Wassereintrages wollte ich es im Bad auch genauer wissen. Aber für die normalen Wohnräume begnüge ich mich mit dem einen Pi-Mal-Daumen-K, da wir hier sowieso selten in die schimmelkritischen Bereiche kommen.
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

meier81

Hallo Peter,

vielen Dank für deine ausführliche Erklärung. Ich werde mich die Tage mal dransetzen, heute ist mein IR-Thermometer gekommen, da kann das große Messen jetzt losgehen  ;).

Zudem werde ich mal den Sensor bestellen und das Skript anpassen, werde hier dann mal berichten.

Gruß Markus
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || SIGNALduino 433MHz mit Maple mini || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices

Murmelmann2203

Spannende Lösungen, die ihr habt! An unserem alten Wohnort hatten wir leider öfters Probleme mit dem Thema Schimmel, weshalb wir da jetzt in unserem Eigenheim natürlich drauf achten wollen. Die Unterstützung durch smarte Systeme ist da bestimmt hilfreich  8). Werde mich mal weiter einlesen und schauen, wie sich die Systeme bei uns am besten kombinieren lassen!

DerBaer

#138
TOP!

Vielen vielen Dank für die Mühe! Genau nach sowas hab ich gesucht!
Mein Problem is, das meine Eingangstür zur Wohnung in einem Treppenaufgang ist der in den ersten Stock führt. Keine Heizung, keine Dämmung, heißt Schimmel ohne Ende!
Ich hab ein Homematic Wandthermostat neben der Tür hängen und einen Heizlüfter per FritzDect Steckdose geschalten. Das Blöde is, das kostete natürlich unheimlich viel.
Mein berechneter Faktor liegt bei 0.51, also verdammt schlecht. Die dadurch berechnete Wandtemperatur liegt ziemlich genau übereinander, ich glaub die maximale Differenz ist auch nicht größer als die 0.5°C!

Ich freu mich wirklich das ich dein Tutorial gefunden hab und hoffe das es mit richtiger Combo Lüften/Heizen in Zukunft keinen Schimmel mehr gibt!

Was meinst du, ist eine Luftheizung oder eine Infrarotheizung besser geeignet?

Gruß Daniel



Martin Fischer

Zitat von: DerBaer am 04 April 2021, 10:13:40
Mein Problem is, das meine Eingangstür zur Wohnung in einem Treppenaufgang ist der in den ersten Stock führt. Keine Heizung, keine Dämmung, heißt Schimmel ohne Ende!

Nur mal so als Tipp:
Sollte das Eigentum sein, Du also niemanden bzgl. Renovierung fragen musst, dann solltest Du Dir mal Kalziumsilikatplatten anschauen. Ich habe bei mir das CASIPLUS System verarbeitet und bin damit sehr zufrieden. Ich habe auch eine Aussenwand, die genau auf der Grundstücksgrenze steht und somit nicht von außen isolierbar ist. Da die Wand ewig kalt war und ich seinerzeit ohne darüber nachzudenken, die Oberfläche mit Latexfarbe quasi versiegelt hatte, lief mir das (Kondens-)Wasser regelrecht von der Wand.

Hatte mir dann einen "Baugutachter" gegönnt, der mit die Platten empfahl und für meine Zwecke eine Dicke von 4 cm ausgerechnet hat. Man muss aber auch an die Wärmebrücken (umgangssprachlich ,,Kältebrücken") denken. Dafür gibt es extra Keile.

Viel Erfolg!
--
Admin, Developer, Gründungsmitglied des FHEM e.V.

DerBaer

Zitat
Nur mal so als Tipp:
Sollte das Eigentum sein, Du also niemanden bzgl. Renovierung fragen musst, dann solltest Du Dir mal Kalziumsilikatplatten anschauen. Ich habe bei mir das CASIPLUS System verarbeitet und bin damit sehr zufrieden. Ich habe auch eine Aussenwand, die genau auf der Grundstücksgrenze steht und somit nicht von außen isolierbar ist. Da die Wand ewig kalt war und ich seinerzeit ohne darüber nachzudenken, die Oberfläche mit Latexfarbe quasi versiegelt hatte, lief mir das (Kondens-)Wasser regelrecht von der Wand.

Hatte mir dann einen "Baugutachter" gegönnt, der mit die Platten empfahl und für meine Zwecke eine Dicke von 4 cm ausgerechnet hat. Man muss aber auch an die Wärmebrücken (umgangssprachlich ,,Kältebrücken") denken. Dafür gibt es extra Keile.

Viel Erfolg!

Danke für den Tipp!
Leider is das kein Eigentum, ich müsste aber auch ned fragen. Allerdings glaub ich das es bei mir zu eng wird wenn ich überall noch 4cm Platten drauf klebe.  :-\

Gruß Daniel

Martin Fischer

Zitat von: DerBaer am 04 April 2021, 11:51:08
Allerdings glaub ich das es bei mir zu eng wird wenn ich überall noch 4cm Platten drauf klebe.  :-\

Die 4 cm sind mein Maß. Es gibt die Platten auch dünner. Dies nur als ergänzende Info ;)
--
Admin, Developer, Gründungsmitglied des FHEM e.V.

mfeske

#142
Hallo Peter,
an dieser Stelle Achtung für die geleistete Arbeit mit allen Formeln, Funktionen .... Super. Ich bin nun schon so lange im Forum unterwegs bin aber erst jetzt auf diesen Fred gestoßen worden. Allerdings muss ich zugeben, das ich nur einen Bruchteil verstanden habe. Bei mir geht es um ein keines Badezimmer mit einer elektrischen Dachluken Öffnung die ich über einen Taster ansteuere. Ich habe in jedem Raum im Haus ein TFA Thermometer Hygrometer welches mir Temperatur und Luftfeuchtigkeit ausgibt siehe Listing 01 sowie auch eins im Garten. In jedem Raum befindet sich auch noch ein Thermostat HM-CC-RT-DN siehe Listing 02 zur Temperatursteuerung. Über den Taster  ITW_852 siehe Listing 03 wird das Dachfenster geöffnet und geschlossen.
Gibt es eine Möglichkeit Dein Modul entsprechend zu nutzen um mir a) ggf. eine drohende Schimmelgefahr in den Räumen im Dashboard anzeigen zu lassen oder anderweitig noch auszugeben und b) (eigentlich noch wichtiger) die Dachluke möglichst nach dem duschen für eine Zeit x oder bis die Lufteuchtigkeit wieder "normal ist zu öffnen" und dann aber auch wieder automatisch zu schliessen ? Bisher habe ich leider nur so ein DOIF wie im Listing 04 das alle mal im Haus erinnert das die Luke offen ist.

Gruß
Micha
Listing 01

Internals:
   CODE       84
   CUL433_MSGCNT 16
   CUL433_RAWMSG TXAEA8660662
   CUL433_RSSI -80.5
   CUL433_TIME 2021-11-17 12:04:01
   DEF        84
   FUUID      5c500794-f33f-a44f-ac44-6e898ac7a55b2c10
   LASTInputDev CUL433
   MSGCNT     16
   NAME       TFA01
   NR         48
   STATE      T: 18.8 H: 66.0
   TYPE       CUL_TX
   corr       0
   lastH      1637147041
   lastT      1637147041
   minsecs    0
   READINGS:
     2021-11-17 12:04:01   humidity        66.0
     2021-11-17 12:04:01   state           T: 18.8 H: 66.0
     2021-11-17 12:04:01   temperature     18.8
Attributes:
   group      Temperatur
   icon       control_building_modern_s_2og_og2
   room       Bad_klein


Listing 02

Internals:
   DEF        309DC6
   FUUID      5c5007a0-f33f-a44f-ba1b-929607a553f2b16e
   IODev      hmusb
   LASTInputDev hmusb
   MSGCNT     21
   NAME       Heizung_Arbeitszimmer
   NR         235
   NTFY_ORDER 48-Heizung_Arbeitszimmer
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 Heizung_Arbeitszimmer_Weather
   channel_02 Heizung_Arbeitszimmer_Climate
   channel_03 Heizung_Arbeitszimmer_WindowRec
   channel_04 Heizung_Arbeitszimmer_Clima
   channel_05 Heizung_Arbeitszimmer_ClimaTeam
   channel_06 Heizung_Arbeitszimmer_remote
   disableNotifyFn 1
   hmusb_MSGCNT 21
   hmusb_RAWMSG E309DC6,0000,00259AED,FF,FFC8,918610309DC60000000AF0D80C5500
   hmusb_RSSI -56
   hmusb_TIME 2021-11-17 12:03:56
   lastMsg    No:91 - t:10 s:309DC6 d:000000 0AF0D80C5500
   protLastRcv 2021-11-17 12:03:56
   protRcv    20 last_at:2021-11-17 12:03:56
   protSnd    2 last_at:2021-11-17 11:38:59
   protState  CMDs_done
   rssi_at_hmusb cnt:21 min:-56 max:-56 avg:-56 lst:-56
   rssi_hmusb cnt:2 min:-52 max:-52 avg:-52 lst:-52
   READINGS:
     2021-11-17 11:35:28   Activity        alive
     2021-11-17 11:38:59   CommandAccepted yes
     from archivexx        D-firmware      1.4
     from archivexx        D-serialNr      LEQ1206082
     2021-11-17 11:38:58   IODev           hmusb
     2020-10-23 11:48:43   PairedTo        0x240271
     2021-11-17 11:25:56   R-backOnTime    10 s
     2021-11-17 11:25:56   R-burstRx       on
     2021-11-17 11:25:56   R-cyclicInfoMsg on
     2021-11-17 11:25:56   R-cyclicInfoMsgDis 0
     2021-11-17 11:25:56   R-pairCentral   0x240271
     2020-10-23 11:48:43   RegL_00.        00:00 01:01 02:01 09:01 0A:24 0B:02 0C:71 0E:0A 0F:00 11:00 12:15 16:00 18:00 19:00 1A:00
     2021-03-22 20:26:12   RegL_07.       
     2021-11-17 12:03:56   actuator        85
     2021-11-17 12:03:56   battery         ok
     2021-11-17 12:03:56   batteryLevel    2.7
     2021-11-17 11:26:08   cfgState        ok
     2021-11-17 11:38:59   commState       CMDs_done
     2021-11-17 12:03:56   desired-temp    30.0
     2021-11-17 12:03:56   measured-temp   21.6
     2021-11-17 12:03:56   motorErr        ok
     2020-10-23 11:47:58   powerOn         2020-10-23 11:47:58
     2020-10-23 11:47:58   recentStateType info
     2020-10-23 11:49:05   sabotageAttackId_ErrIoId_100001 cnt:2
     2020-10-23 11:49:05   sabotageAttack_ErrIoAttack_cnt 2
     2021-11-17 11:38:59   state           CMDs_done
     2021-11-16 04:41:47   time-request    -
   helper:
     HM_CMDNR   145
     cSnd       11240271309DC686043C,11240271309DC686043C
     cfgStateUpdt 0
     lastMsgTm  1637147036.36099
     mId        0095
     peerFriend -
     peerOpt    -:thermostat
     regLst     0
     rxType     140
     supp_Pair_Rep 0
     tmplChg    0
     cmds:
       TmplKey    :no:1637144758.53592
       TmplTs     1637144758.53592
       cmdKey     0:1:0::Heizung_Arbeitszimmer:0095:01:
       cmdLst:
         assignHmKey noArg
         burstXmit  noArg
         clear      [({msgErrors}|msgEvents|rssi|attack|trigger|register|oldRegs|readings|all)]
         deviceRename -newName-
         fwUpdate   -filename- [-bootTime-]
         getConfig  noArg
         getDevInfo noArg
         getRegRaw  (List0|List1|List2|List3|List4|List5|List6|List7) [-peerChn-]
         inhibit    [(on|{off})]
         raw        -data- [...]
         regBulk    -list-.-peerChn- -addr1:data1- [-addr2:data2-]...
         regSet     [(prep|{exec})] -regName- -value- [-peerChn-]
         reset      noArg
         sysTime    noArg
         tplDel     -tplDel-
         tplSet_0   -tplChan-
         unpair     noArg
       lst:
         condition  slider,0,1,255
         peer       
         peerOpt   
         tplChan   
         tplDel     
         tplPeer   
       rtrvLst:
         cmdList    [({short}|long)]
         deviceInfo [({short}|long)]
         list       [({normal}|full)]
         param      -param-
         reg        -addr- -list- [-peerChn-]
         regList    noArg
         regTable   noArg
         regVal     -addr- -list- [-peerChn-]
         saveConfig [-filename-]
         tplInfo    noArg
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       flgs       0
       newChn     +309DC6,00,00,00
       nextSend   1637147036.43122
       rxt        2
       vccu       
       p:
         309DC6
         00
         00
         00
       prefIO:
     mRssi:
       mNo        91
       io:
         hmusb:
           -50
           -50
     peerIDsH:
     prt:
       bErr       0
       sProc      0
     q:
       qReqConf   
       qReqStat   
     role:
       dev        1
       prs        1
     rssi:
       at_hmusb:
         avg        -56
         cnt        21
         lst        -56
         max        -56
         min        -56
       hmusb:
         avg        -52
         cnt        2
         lst        -52
         max        -52
         min        -52
     shRegW:
       07         04
     tmpl:
Attributes:
   IODev      hmusb
   actCycle   000:10
   actStatus  alive
   autoReadReg 4_reqStatus
   expert     defReg,rawReg
   firmware   1.4
   model      HM-CC-RT-DN
   room       Arbeitszimmer
   serialNr   LEQ1206082
   subType    thermostat
   webCmd     getConfig:clear msgEvents:burstXmit


Listing 03

Internals:
   DEF        10000000011101011001101010 0 0000
   FUUID      5ffc053d-f33f-a44f-3474-f7eb334e82536018
   IODev      CUL433
   NAME       ITW_852_Bad_klein_01
   NR         616
   STATE      on
   TYPE       IT
   XMIT       1000000001110101100110101000000
   XMITdimdown 00
   XMITdimup  00
   XMIToff    0
   XMITon     1
   CODE:
     1          1000000001110101100110101000000
   READINGS:
     2021-11-17 11:25:16   IODev           CUL433
     2021-01-11 09:40:23   group           0
     2021-01-11 09:40:23   protocol        V3
     2021-11-17 10:47:46   state           on
     2021-01-11 09:40:23   unit            0000
Attributes:
   IODev      CUL433
   cmdIcon    on:black_down off:black_up:FS20.off
   devStateIcon on:fts_light_dome off:fts_light_dome_open:FS20.off
   room       Bad_klein,Funkzentrale


Listing 04

Internals:
   DEF        ([TFA01:temperature] > [TFA08:temperature] and [Kontakt_Dachluke] eq "opened") (set Warnung_Dachluke on) (set gong_MP3 playTone 012) DOELSE (set Warnung_Dachluke off, set gong_MP3 playTone 013)
   FUUID      5c5007a6-f33f-a44f-ff5b-778240baf9017edc
   MODEL      FHEM
   NAME       Warnung_Dachluke_doif
   NOTIFYDEV  TFA08,Kontakt_Dachluke,global,TFA01
   NR         398
   NTFY_ORDER 50-Warnung_Dachluke_doif
   STATE      cmd_1_1
   TYPE       DOIF
   VERSION    24905 2021-09-01 18:35:54
   READINGS:
     2021-11-17 12:27:35   Device          TFA08
     2021-11-17 12:27:36   cmd             1.1
     2021-11-17 12:27:35   cmd_count       2
     2021-11-17 12:27:36   cmd_event       TFA08
     2021-11-17 12:27:36   cmd_nr          1
     2021-11-17 12:27:36   cmd_seqnr       1
     2021-11-17 12:26:31   e_Kontakt_Dachluke_STATE opened
     2021-11-17 12:22:31   e_TFA01_temperature 18.7
     2021-11-17 12:27:35   e_TFA08_temperature 6.8
     2021-11-17 12:27:36   state           cmd_1_1
     2021-11-17 12:27:37   wait_timer      17.11.2021 12:28:37 cmd_1_2 TFA08
   Regex:
     accu:
     collect:
     cond:
       Kontakt_Dachluke:
         0:
           &STATE     ^Kontakt_Dachluke$
       TFA01:
         0:
           temperature ^TFA01$:^temperature:
       TFA08:
         0:
           temperature ^TFA08$:^temperature:
   attr:
     cmdState:
     repeatsame:
       3
       0
     wait:
       0:
         0
         60
       1:
         0
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'TFA01','temperature') > ::ReadingValDoIf($hash,'TFA08','temperature') and ::InternalDoIf($hash,'Kontakt_Dachluke','STATE') eq "opened"
   do:
     0:
       0          set Warnung_Dachluke on
       1          set gong_MP3 playTone 012
     1:
       0          set Warnung_Dachluke off, set gong_MP3 playTone 013
   helper:
     DEVFILTER  ^global$|^TFA08$|^Kontakt_Dachluke$|^TFA01$
     NOTIFYDEV  global|TFA08|Kontakt_Dachluke|TFA01
     event      T: 6.8 H: 86.0,temperature: 6.8
     globalinit 1
     last_timer 0
     sleepdevice TFA08
     sleepsubtimer 1
     sleeptimer 0
     timerdev   TFA08
     timerevent T: 6.8 H: 86.0,temperature: 6.8
     triggerDev TFA08
     timerevents:
       T: 6.8 H: 86.0
       temperature: 6.8
     timereventsState:
       state: T: 6.8 H: 86.0
       temperature: 6.8
     triggerEvents:
       T: 6.8 H: 86.0
       temperature: 6.8
     triggerEventsState:
       state: T: 6.8 H: 86.0
       temperature: 6.8
   internals:
     all         Kontakt_Dachluke:STATE
   perlblock:
   readings:
     all         TFA01:temperature TFA08:temperature
   trigger:
   uiState:
   uiTable:
Attributes:
   repeatsame 3:0
   room       Bad_klein
   wait       0,60:0
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

peterk_de

Zitat von: mfeske am 17 November 2021, 12:13:22
Hallo Peter,
an dieser Stelle Achtung für die geleistete Arbeit mit allen Formeln, Funktionen .... Super. Ich bin nun schon so lange im Forum unterwegs bin aber erst jetzt auf diesen Fred gestoßen worden. Allerdings muss ich zugeben, das ich nur einen Bruchteil verstanden habe. Bei mir geht es um ein keines Badezimmer mit einer elektrischen Dachluken Öffnung die ich über einen Taster ansteuere. Ich habe in jedem Raum im Haus ein TFA Thermometer Hygrometer welches mir Temperatur und Luftfeuchtigkeit ausgibt siehe Listing 01 sowie auch eins im Garten. In jedem Raum befindet sich auch noch ein Thermostat HM-CC-RT-DN siehe Listing 02 zur Temperatursteuerung. Über den Taster  ITW_852 siehe Listing 03 wird das Dachfenster geöffnet und geschlossen.
Gibt es eine Möglichkeit Dein Modul entsprechend zu nutzen um mir a) ggf. eine drohende Schimmelgefahr in den Räumen im Dashboard anzeigen zu lassen oder anderweitig noch auszugeben und b) (eigentlich noch wichtiger) die Dachluke möglichst nach dem duschen für eine Zeit x oder bis die Lufteuchtigkeit wieder "normal ist zu öffnen" und dann aber auch wieder automatisch zu schliessen ?

Hallo zurück,

Ja klar. Du müsstest dir erstmal in irgendeinem passenden FHEM-Device die im Ausgangspost beschriebenen userReadings erzeugen lassen (siehe Commandref + Copy&Paste aus dem Ausgangsposting). Du kannst die z.B. einfach in das Device deines Thermometers im Raum packen (dein TFA01 z.B.).

Dann hast du da drin dann zusätzliche Readings wie schimmelGefahr oder schimmelFreiMaxHum, um die du dein DOIF erweitern kannst oder ein neues nur für die Dachluke erzeugen kannst:

define dachLukeAufZu DOIF ([TFA01:wandHumidity] > ([TFA01:schimmelfreiMaxHum] + 3)) (set meineDachluke open) DOELSEIF ([bad.thermometer:wandHumidity] < [bad.thermometer:schimmelfreiMaxHum]) (set meineDachluke close)

Das nur als Ausgangspunkt. Ich schalte meinen elektrischen Entlüfter im Bad so z.B. nur aus, angeschaltet wird es stattdessen schon vorher, wenn sich die Tür der Duschkabine schließt über einen Reed-Kontakt ;)
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

Guenni1404

Hallo Peter,

erstmal super Arbeit von dir. Funktioniert bei mir auch einwandfrei.
Jetzt ist mir bei der Hitze aber aufgefallen, dass meine Innenwerte sich nicht verändert haben, aber die Aussenwerte.
Bisher habe ich die Neuberechnung nur bei "event-on-change" gemacht.
Damit ich das Abfangen kann habe ich jetzt auf "event-on-update" umgestellt.

Wie hat du das gelöst? Bei jeden Update eine Neuberechung ist halt ein wenig übertrieben.