[{"data":1,"prerenderedAt":509},["ShallowReactive",2],{"doc-\u002Fverticals\u002Flegionella":3},{"id":4,"title":5,"body":6,"description":498,"edit":499,"extension":500,"meta":501,"navigation":502,"path":503,"seo":504,"stem":505,"vertical":506,"weight":507,"__hash__":508},"content\u002Fverticals\u002Flegionella.md","Legionella in hot water",{"type":7,"value":8,"toc":490},"minimark",[9,13,21,26,47,81,85,97,216,233,239,243,258,261,403,407,431,435,445,456,459,463,486],[10,11,12],"p",{},"The Legionella vertical targets hot-water systems in buildings where\npeople sleep, bathe or are immune-compromised: hotels, spas, care homes,\ndormitories, hospitals.",[10,14,15,16,20],{},"Legionella is a bacterium that grows in stagnant warm water (20–45 °C is\nits optimum), and is inhaled as aerosols from showers, taps and cooling\ntowers. Legionellosis (Legionnaires' disease) is fatal in ~10 % of cases\nwhen untreated. Buildings prevent it by keeping hot water ",[17,18,19],"strong",{},"hot enough","\nand circulating.",[22,23,25],"h2",{"id":24},"the-regulation","The regulation",[27,28,33,40],"reg",{"code":29,"jurisdiction":30,"source":31,"title":32},"EU 2020\u002F2184","EU water law","https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Fdir\u002F2020\u002F2184\u002Foj\u002Feng","Drinking Water Directive — risk-based approach",[10,34,35,36,39],{},"Recast of the EU Drinking Water Directive, in force since January 2021.\nArticle 10 requires a ",[17,37,38],{},"risk-based approach to domestic distribution",":\nmember states must ensure that risks in plumbing systems serving the\npublic (especially priority premises — hospitals, care homes, hotels,\nschools) are assessed and managed. Legionella is named as one of the\nparameters to be considered.",[10,41,42,43,46],{},"The directive itself does ",[17,44,45],{},"not"," prescribe temperatures. It defers to\nmember-state implementation, which means the operational rules below are\nnational — most commonly the German TrinkwV \u002F DVGW W551 model, also\nadopted (with adjustments) in Austria, Czech Republic and Slovakia.",[27,48,53,56,78],{"code":49,"jurisdiction":50,"source":51,"title":52},"DVGW W551 (DE)","Germany; widely adopted","https:\u002F\u002Fwww.dvgw.de","50 \u002F 60 \u002F 50 — the operational rule",[10,54,55],{},"For domestic hot water in buildings with central heating:",[57,58,59,66,72],"ul",{},[60,61,62,65],"li",{},[17,63,64],{},"Storage cylinder ≥ 60 °C"," at all times.",[60,67,68,71],{},[17,69,70],{},"Tap at the most distant outlet ≥ 50 °C"," within 30 s of opening.",[60,73,74,77],{},[17,75,76],{},"Circulation return ≥ 50 °C"," at all times in the loop.",[10,79,80],{},"If these are met continuously, the building is presumed free of\nLegionella risk; routine sampling is reduced to annual. If they are not\nmet, sampling becomes monthly and remedial flushing is required.",[22,82,84],{"id":83},"opensense-defaults","OpenSense defaults",[10,86,87,88,92,93,96],{},"When you create a site with ",[89,90,91],"code",{},"vertical = legionella",", the default channels\nare not auto-created — Legionella sites have ",[17,94,95],{},"named"," channels that you\nmust map yourself. The template is:",[98,99,100,119],"table",{},[101,102,103],"thead",{},[104,105,106,110,113,116],"tr",{},[107,108,109],"th",{},"Channel name",[107,111,112],{},"Sensor location",[107,114,115],{},"Operating range",[107,117,118],{},"Grace",[120,121,122,139,155,170,185,201],"tbody",{},[104,123,124,130,133,136],{},[125,126,127],"td",{},[89,128,129],{},"storage_top",[125,131,132],{},"Top of hot-water cylinder",[125,134,135],{},"≥ 60 °C",[125,137,138],{},"60 min",[104,140,141,146,149,152],{},[125,142,143],{},[89,144,145],{},"storage_bottom",[125,147,148],{},"Bottom of hot-water cylinder",[125,150,151],{},"≥ 55 °C",[125,153,154],{},"120 min",[104,156,157,162,165,168],{},[125,158,159],{},[89,160,161],{},"flow_supply",[125,163,164],{},"Outlet of cylinder, ringline supply",[125,166,167],{},"≥ 58 °C",[125,169,138],{},[104,171,172,177,180,183],{},[125,173,174],{},[89,175,176],{},"flow_return",[125,178,179],{},"Ringline return, before re-entry",[125,181,182],{},"≥ 50 °C",[125,184,138],{},[104,186,187,192,195,198],{},[125,188,189],{},[89,190,191],{},"outlet_distant",[125,193,194],{},"Most distant tap (often roof)",[125,196,197],{},"≥ 50 °C in 30 s",[125,199,200],{},"per draw",[104,202,203,208,211,214],{},[125,204,205],{},[89,206,207],{},"cold_supply",[125,209,210],{},"Cold-water inlet",[125,212,213],{},"≤ 25 °C",[125,215,138],{},[10,217,218,219,221,222,224,225,228,229,232],{},"The reason for separate ",[89,220,161],{}," and ",[89,223,176],{}," is that the\n",[17,226,227],{},"delta"," between them is the diagnostic: a high delta (e.g. supply\n58 °C, return 38 °C) indicates that the recirculation pump is undersized\nor has failed and stagnation is forming in the loop. The rule template\ngenerates a derived channel ",[89,230,231],{},"flow_delta = supply − return"," and alarms\nwhen it exceeds 15 °C (the DVGW W553 reference).",[234,235],"stoplight",{"alarm":236,"ok":237,"warn":238},"Return \u003C 48 °C, or storage \u003C 55 °C — remedial flushing required, contact a plumber","Storage > 60 °C, return > 50 °C, delta \u003C 15 °C","Return between 48 and 50 °C, or delta 15–20 °C — investigate within the week",[22,240,242],{"id":241},"the-thermal-disinfection-cycle","The \"thermal disinfection\" cycle",[10,244,245,246,249,250,253,254,257],{},"Many buildings keep storage at 60 °C ",[17,247,248],{},"most"," of the time and run a\nnightly ",[17,251,252],{},"70 °C cycle"," for one hour to thermally disinfect the system.\nOpenSense treats this as a scheduled exception: the rule engine has a\n",[89,255,256],{},"window"," field on each rule, so the 70 °C window does not trigger\n\"overtemperature\" on legacy thermostat-protected fixtures.",[10,259,260],{},"Example rule:",[262,263,268],"pre",{"className":264,"code":265,"language":266,"meta":267,"style":267},"language-json shiki shiki-themes github-dark github-dark","{\n  \"channel\": \"chn_4f3c1a\",\n  \"kind\": \"temperature\",\n  \"ok_min\": 58,\n  \"ok_max\": 75,\n  \"windows\": [\n    { \"rrule\": \"FREQ=DAILY;BYHOUR=3;BYMINUTE=0\", \"ok_min\": 65, \"ok_max\": 75, \"duration_min\": 60 }\n  ]\n}\n","json","",[89,269,270,279,296,309,322,335,344,391,397],{"__ignoreMap":267},[271,272,275],"span",{"class":273,"line":274},"line",1,[271,276,278],{"class":277},"suv1-","{\n",[271,280,282,286,289,293],{"class":273,"line":281},2,[271,283,285],{"class":284},"s8ozJ","  \"channel\"",[271,287,288],{"class":277},": ",[271,290,292],{"class":291},"s4wv1","\"chn_4f3c1a\"",[271,294,295],{"class":277},",\n",[271,297,299,302,304,307],{"class":273,"line":298},3,[271,300,301],{"class":284},"  \"kind\"",[271,303,288],{"class":277},[271,305,306],{"class":291},"\"temperature\"",[271,308,295],{"class":277},[271,310,312,315,317,320],{"class":273,"line":311},4,[271,313,314],{"class":284},"  \"ok_min\"",[271,316,288],{"class":277},[271,318,319],{"class":284},"58",[271,321,295],{"class":277},[271,323,325,328,330,333],{"class":273,"line":324},5,[271,326,327],{"class":284},"  \"ok_max\"",[271,329,288],{"class":277},[271,331,332],{"class":284},"75",[271,334,295],{"class":277},[271,336,338,341],{"class":273,"line":337},6,[271,339,340],{"class":284},"  \"windows\"",[271,342,343],{"class":277},": [\n",[271,345,347,350,353,355,358,361,364,366,369,371,374,376,378,380,383,385,388],{"class":273,"line":346},7,[271,348,349],{"class":277},"    { ",[271,351,352],{"class":284},"\"rrule\"",[271,354,288],{"class":277},[271,356,357],{"class":291},"\"FREQ=DAILY;BYHOUR=3;BYMINUTE=0\"",[271,359,360],{"class":277},", ",[271,362,363],{"class":284},"\"ok_min\"",[271,365,288],{"class":277},[271,367,368],{"class":284},"65",[271,370,360],{"class":277},[271,372,373],{"class":284},"\"ok_max\"",[271,375,288],{"class":277},[271,377,332],{"class":284},[271,379,360],{"class":277},[271,381,382],{"class":284},"\"duration_min\"",[271,384,288],{"class":277},[271,386,387],{"class":284},"60",[271,389,390],{"class":277}," }\n",[271,392,394],{"class":273,"line":393},8,[271,395,396],{"class":277},"  ]\n",[271,398,400],{"class":273,"line":399},9,[271,401,402],{"class":277},"}\n",[22,404,406],{"id":405},"probe-placement","Probe placement",[57,408,409,415,425],{},[60,410,411,414],{},[17,412,413],{},"Storage cylinder",": two probes are non-negotiable for compliance —\ntop and bottom. Buy a cylinder with two thermowells, or strap-on\ncontact probes with thermal paste and insulation over them.",[60,416,417,420,421,424],{},[17,418,419],{},"Ringline supply \u002F return",": clamp-on contact probes (PT100) on the\npipe, ",[17,422,423],{},"under"," the insulation. Without thermal contact and insulation\nthe reading is air-temperature, not water-temperature, and is useless.",[60,426,427,430],{},[17,428,429],{},"Distant outlet",": a thermowell or a stub probe past the last tap. If\nyou cannot install a probe at the distant outlet, OpenSense can derive\nan estimate from the ringline return, with a calibration offset.",[22,432,434],{"id":433},"the-annual-sampling-regime","The annual sampling regime",[10,436,437,438,440,441,444],{},"The temperature regime above does ",[17,439,45],{}," replace the periodic\nlaboratory sampling that local water authorities require. OpenSense\nreduces the ",[17,442,443],{},"frequency"," of sampling by demonstrating temperature\ncompliance, but a lab swab is still on the calendar. Common cadences:",[57,446,447,450,453],{},[60,448,449],{},"Continuous compliance with 50\u002F60\u002F50: sample annually.",[60,451,452],{},"Any breach in the last 12 months: sample monthly until 12 consecutive\nclean months.",[60,454,455],{},"After remedial flushing: sample at 24 h, 7 d, 30 d.",[10,457,458],{},"OpenSense generates a quarterly PDF with the temperature compliance log,\nwhich most local water authorities accept as evidence to reduce sampling\nfrequency.",[22,460,462],{"id":461},"sources","Sources",[57,464,465,473,479],{},[60,466,467],{},[468,469,472],"a",{"href":31,"rel":470},[471],"nofollow","Directive (EU) 2020\u002F2184 on the quality of water intended for human consumption",[60,474,475],{},[468,476,478],{"href":51,"rel":477},[471],"DVGW W551 — Drinking water heating and pipework systems; technical measures to reduce Legionella growth (Germany)",[60,480,481],{},[468,482,485],{"href":483,"rel":484},"https:\u002F\u002Fwww.who.int\u002Fpublications\u002Fi\u002Fitem\u002F9241562978",[471],"WHO — Legionella and the prevention of legionellosis",[487,488,489],"style",{},"html pre.shiki code .suv1-, html code.shiki .suv1-{--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .s8ozJ, html code.shiki .s8ozJ{--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html pre.shiki code .s4wv1, html code.shiki .s4wv1{--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":267,"searchDepth":298,"depth":298,"links":491},[492,493,494,495,496,497],{"id":24,"depth":281,"text":25},{"id":83,"depth":281,"text":84},{"id":241,"depth":281,"text":242},{"id":405,"depth":281,"text":406},{"id":433,"depth":281,"text":434},{"id":461,"depth":281,"text":462},"EU 2020\u002F2184 and the German 50\u002F60\u002F50 rule",null,"md",{},true,"\u002Fverticals\u002Flegionella",{"title":5,"description":498},"verticals\u002Flegionella","legionella",320,"KsSTA5AXZWvPThdf4jQXum5aFrd2TvMzB0JGB4sfeS8",1779022954908]