19 497 läst ·
28 svar
19k läst
28 svar
Formel för riskkurva
Grafana är säkert bra om man lockas av en snygg yta. Jag kollar dock väldigt sällan på graferna då jag väljer att automatisera övervakningen inklusive övervakning av övervakningen... Så jag kollar mest för att se trender och att allt ser normalt ut. Den kan gå flera veckor eller månader utan jag kollar någon graf. Så Grafana har varit overkill för mina behov.
Gammal tråd men eftersom jag fick en del inspiration och tips från den så tänkte jag dela med mig av de formler jag laborerat fram för låg repsektive hög risk för mögel och som jag använder.
låg: 23*exp(-temp* 0.150)+75
hög: 21*exp(-6* 0.150)+83
låg: 23*exp(-temp* 0.150)+75
hög: 21*exp(-6* 0.150)+83
Besserwisser
· Hallands Län
· 860 inlägg
Jag är inte helt med på hur "hög" är framräknad. Den blir ju alltid 91,5% rf. Men det kanske är tillräckligt höftat. För egen del slutade det med att jag räknade fram fram risknivåerna 0-5 baserat på approximeringar ur en kurva jag hittade i en rapport. Funktionerna för respektive risknivås rf-gräns är följande:R raolss skrev:
lim0 = 50/CurrentTemp+70
lim1 = 30/CurrentTemp+78
lim2 = 30/CurrentTemp+82
lim3 = 30/CurrentTemp+85
lim4 = 30/CurrentTemp+88
lim5 = 30/CurrentTemp+92
Det faller ut på detta vis (med din låg/hög längst till höger för jämförelse)
Inloggade ser högupplösta bilder
Logga in
Skapa konto
Gratis och tar endast 30 sekunder
Funktionerna har ju till främsta syfte att översätta temp+rf till något som går att förstå och för det ändamålet tror jag båda uppläggen funkar bra.
http://www.dpcalc.org
Där är svaret. Åldring, mögel och rost.
Formler och rådatan som används finns i javascriptet.
Där är svaret. Åldring, mögel och rost.
Formler och rådatan som används finns i javascriptet.
Besserwisser
· Hallands Län
· 860 inlägg
Hmm, jag testade att försöka följa några tidskurvor från mitt urspringliga inlägg i den räknesnurran och jag tycker inte den träffade något vidare. Men å andra sidan så verkar sidan ju rikta in sig främst på folk som håller på med arkivering av dokument så det är kanske lite andra förutsättningar jämfört med byggmaterial.martin43 skrev:
När jag hittade den för fem år sedan stod det om att bevara föremål på museum därav behovet att titta på inte bara mögel utan även korrosion och åldring av organiska material (trä).Karl_Pedal skrev:
Hmm, jag testade att försöka följa några tidskurvor från mitt urspringliga inlägg i den räknesnurran och jag tycker inte den träffade något vidare. Men å andra sidan så verkar sidan ju rikta in sig främst på folk som håller på med arkivering av dokument så det är kanske lite andra förutsättningar jämfört med byggmaterial.
Tycker inte kurvan verkar skilja sig nåt spektakulärt från "den gamla klassiska kurvan" som är kopierad i tiotals olika böcker och artiklar i ämnet.
Inloggade ser högupplösta bilder
Logga in
Skapa konto
Gratis och tar endast 30 sekunder
Jag styr förresten avfuktaren i garaget efter EMC och inte relativ fuktighet. Skiljer inte jättemycket men ändå.
Produkter som diskuteras: "avfuktaren"
Avfuktare
Nedan presenteras vårt sortiment av avfuktare. Avfuktare är viktiga verktyg för att upprätthålla en hälsosam och behaglig inomhusmiljö, särskilt i utrymmen som källare, tvättstugor eller badrum, där fuktighetsnivåerna kan vara höga.
Läs mer
Sorry, glömde byta ut ett faktiskt värde mot "temperatur"Karl_Pedal skrev:
Jag är inte helt med på hur "hög" är framräknad. Den blir ju alltid 91,5% rf. Men det kanske är tillräckligt höftat. För egen del slutade det med att jag räknade fram fram risknivåerna 0-5 baserat på approximeringar ur en kurva jag hittade i en rapport. Funktionerna för respektive risknivås rf-gräns är följande:
lim0 = 50/CurrentTemp+70
lim1 = 30/CurrentTemp+78
lim2 = 30/CurrentTemp+82
lim3 = 30/CurrentTemp+85
lim4 = 30/CurrentTemp+88
lim5 = 30/CurrentTemp+92
Det faller ut på detta vis (med din låg/hög längst till höger för jämförelse)
[bild]
Funktionerna har ju till främsta syfte att översätta temp+rf till något som går att förstå och för det ändamålet tror jag båda uppläggen funkar bra.
hög: 21*exp(-temp* 0.150)+83
Grundstött
· Halland
· 28 345 inlägg
Med hjälp av inläggen i denna tråd har jag skapat en "custom component" till Home Assistant som jag använder till att styra avfuktaren i min krypgrund. Den finns i HACS och ni hittar den på https://github.com/Strixx76/mold_risk_index om någon är intresserad och använder Home Assistant.
Gjorde en enkel function node för node red baserat på lösningarna i tråden ovan.
[{"id":"434d0c455d391945","type":"function","z":"b575b7d996f7a133","name":"Calculate Risk of Mold","func":"\n/* \n input: msg.payload.temperature and msg.payload.humidity \n output: msg.payload added with:\n info: text\n risk : riske-level, 0-3 \n \n If missing indata, risk-level will be -1.\n\n*/\nfunction limit1(temp) { return 20 * Math.exp(-temp * 0.15) + 73 };\nfunction limit2(temp) { return 17 * Math.exp(-temp * 0.11) + 80 };\nfunction limit3(temp) {return 15 * Math.exp(-temp * 0.10) + 85};\n\nlet humidity = msg.payload.humidity;\nlet temperature = msg.payload.temperature;\nlet risk = 0;\nlet info = \"No risk for mold\";\nlet color = \"green\";\n\nif (!humidity || !temperature) {\n color = \"red\";\n info = \"Missing data\";\n risk = -1;\n node.warn(\"Missing data\");\n} else if (humidity > limit3(temperature)) {\n info = \"Mold will start grow in less than 4 weeks\";\n risk = 3\n color = \"red\";\n} else if (humidity > limit2(temperature)) {\n info = \"Mold will start grow in 4 to 8 weeks\";\n risk = 2\n color = \"red\";\n} else if (humidity > limit2(temperature)) {\n info = \"Mold will start after 8 weeks or more\";\n risk = 1;\n color = \"yellow\";\n}\nmsg.payload.info = info;\nmsg.payload.risk = risk;\nnode.status ({ fill: color, shape: \"dot\", text: info });\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":440,"y":180,"wires":[["da7c25038a168ea5"]]}]
[{"id":"434d0c455d391945","type":"function","z":"b575b7d996f7a133","name":"Calculate Risk of Mold","func":"\n/* \n input: msg.payload.temperature and msg.payload.humidity \n output: msg.payload added with:\n info: text\n risk : riske-level, 0-3 \n \n If missing indata, risk-level will be -1.\n\n*/\nfunction limit1(temp) { return 20 * Math.exp(-temp * 0.15) + 73 };\nfunction limit2(temp) { return 17 * Math.exp(-temp * 0.11) + 80 };\nfunction limit3(temp) {return 15 * Math.exp(-temp * 0.10) + 85};\n\nlet humidity = msg.payload.humidity;\nlet temperature = msg.payload.temperature;\nlet risk = 0;\nlet info = \"No risk for mold\";\nlet color = \"green\";\n\nif (!humidity || !temperature) {\n color = \"red\";\n info = \"Missing data\";\n risk = -1;\n node.warn(\"Missing data\");\n} else if (humidity > limit3(temperature)) {\n info = \"Mold will start grow in less than 4 weeks\";\n risk = 3\n color = \"red\";\n} else if (humidity > limit2(temperature)) {\n info = \"Mold will start grow in 4 to 8 weeks\";\n risk = 2\n color = \"red\";\n} else if (humidity > limit2(temperature)) {\n info = \"Mold will start after 8 weeks or more\";\n risk = 1;\n color = \"yellow\";\n}\nmsg.payload.info = info;\nmsg.payload.risk = risk;\nnode.status ({ fill: color, shape: \"dot\", text: info });\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":440,"y":180,"wires":[["da7c25038a168ea5"]]}]
Tack!P peter2 skrev:
För andra som kommer hit är rättad nod här:
[{"id":"434d0c455d391945","type":"function","z":"b575b7d996f7a133","g":"19e543ba72201132","name":"Calculate Risk of Mold","func":"\n/* \n input: msg.payload.temperature and msg.payload.humidity \n output: msg.payload added with:\n info: text\n risk : riske-level, 0-3 \n \n If missing indata, risk-level will be -1.\n\n*/\nfunction limit1(temp) { return 20 * Math.exp(-temp * 0.15) + 73 };\nfunction limit2(temp) { return 17 * Math.exp(-temp * 0.11) + 80 };\nfunction limit3(temp) {return 15 * Math.exp(-temp * 0.10) + 85};\n\nlet humidity = msg.payload.humidity;\nlet temperature = msg.payload.temperature;\nlet risk = 0;\nlet info = \"No risk for mold\";\nlet color = \"green\";\n\nif (!humidity || !temperature) {\n color = \"red\";\n info = \"Missing data\";\n risk = -1;\n node.warn(\"Missing data\");\n} else if (humidity > limit3(temperature)) {\n info = \"Mold will start grow in less than 4 weeks\";\n risk = 3\n color = \"red\";\n} else if (humidity > limit2(temperature)) {\n info = \"Mold will start grow in 4 to 8 weeks\";\n risk = 2\n color = \"red\";\n} else if (humidity > limit1(temperature)) {\n info = \"Mold will start after 8 weeks or more\";\n risk = 1;\n color = \"yellow\";\n}\nmsg.payload.info = info;\nmsg.payload.risk = risk;\nnode.status ({ fill: color, shape: \"dot\", text: info });\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":440,"y":180,"wires":[["55eb003734c3a0be"]]}]
Har skapat en esphome configuration för detta. har en esp32 med dht22 sensor på. ger rätt nogranna värden för temperatur och rH
Den räknar ut:
https://github.com/stefanh12/HA/blob/main/vinden-temp.yaml
Den räknar ut:
- vattenånga i g/m3
- Daggpunkt
- Temperturskillnad mellan daggpunkt och nuvarande temperatur
- Risk för möggel vid 0-50 grader, 0-3
- Risk i text, low, medium, high och critical
https://github.com/stefanh12/HA/blob/main/vinden-temp.yaml
Redigerat:
Klicka här för att svara
Produkter som diskuteras i tråden


