Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Trigge badevifte


Teryeah

Anbefalte innlegg

Hei,

 

Etter at årets oppussing og byggeprosjekter er sånn ca ferdig så kan jeg endelig få satt meg ned å bruke tid på det her igjen.. Men var den læringskurven da.. Men beste er vel bare å hoppe i det og lære underveis.

 

Men noen som kan gi meg en pekepinn å guide meg litt til dette? Jeg har en badevifte som er kobla på en Z-wave-bryter og en 433mhz temp og fuktføler i nærheten av dusjen. Ønsker å trigge badevifta hvis fuktigheten øker med f eks 5%, og slår seg av igjen når fuktigheten er tilbake til utgangspunktet.

 

Forstår jo i hodet sånn ca hva som må til. Men er det å få satt igang å programmere det i Homeassistant..

 

Noen sider o.l som anbefales og ta en titt på for å lære forstå dette med programmering litt kjappere?

 

Har forøvrig byttet fra å kjøre Telldus som gateway til å kjøpe en Aeotec stick. Håper det vil hjelpe på hastigheten på Z-wave

Lenke til kommentar
Del på andre sider

Skal straks i gang med det samme, hvis elektrikeren godtar enpolet brudd på vifte...

Har sett at folk gjerne bruker input slider for å ta vare på verdi de skal tilbake til.

Hos meg ligger RF på ca 35 før dusjing, stiger så til ca 65-70 med vifta i gang, før den synker igjen. Kommer nok til å kutte lenge før 35 RF, kan kanskje faktisk hardkodes til 45 eller noe deromkring. Så slipper man ekstra mikk ved å huske forrige, og man slipper å kaste ut noen unødvendige hundre kubikk med varmluft.

Sent fra min BLA-L29 via Tapatalk

Lenke til kommentar
Del på andre sider

Jeg hadde dette på telldus.. da med en fast verdi den slo seg på og en litt høyere fast verdi den slo seg av igjen på. Det funket til en viss grad det. Men pga variasjoner i luftfuktighet så er jo ikke det optimalt. Hendte jo den slo seg på uten at det var dusjing. Og at den stod på timesvis etter dusjing.

 

Men istedenfor å huske verdiene. Bedre å sette opp for en viss endring innenfor et gitt tidspunkt. Dette vil vel funke for å skru den på. Men kanskje værre når den skal av igjen.. 

 

Her er det også en vanlig topolet bryter som står før z-wave. 

Lenke til kommentar
Del på andre sider

43 minutes ago, baronKanon said:

Legg inn AppDaemon! Har et skript som gjør akkurat dette, og det funker. 

 

Angående enpolet brudd, så har jeg en vanlig topolet bryter foran zwave-bryteren. Da har du topolet brudd. Denne bryteren står alltid på. 

Hvorfor skal du ha topolet brudd fisk viften? Ikke krav om det, den er enten fast tilkoblet eller via stikk. 

Lenke til kommentar
Del på andre sider

3 minutter siden, Christoffer skrev:

Hvorfor skal du ha topolet brudd fisk viften? Ikke krav om det, den er enten fast tilkoblet eller via stikk. 

Er ikke i sone (hos meg) men mange ønsker å ha topolet brudd inn på badet, så man slipper å tenke på det. Er viktig å kunne skru av strøm fullstendig ved feil i våtrom, slik jeg forstår det. 

Lenke til kommentar
Del på andre sider

9 timer siden, Hilmar skrev:

Hos meg ligger RF på ca 35 før dusjing, stiger så til ca 65-70 med vifta i gang, før den synker igjen. Kommer nok til å kutte lenge før 35 RF, kan kanskje faktisk hardkodes til 45 eller noe deromkring. Så slipper man ekstra mikk ved å huske forrige, og man slipper å kaste ut noen unødvendige hundre kubikk med varmluft.

 

Styring av baderomsvifte krever noe mer kompleksitet enn dette. Du må ta hensyn til hva som er normal luftfuktighet inneværende dag, dette kan variere mye.

 

Jeg har klart å lage en ganske god algoritme for å fange opp dusjing utifra RH-målinger. Den har aldri tatt feil på et helt år, men den er muligens mer kompleks enn nødvendig. Jeg har temp og RH-sensor i tilluft og fraluft-kammerene i ventilasjonsanlegget. Utifra disse fire tallene beregner jeg husets fuktproduksjon (gram vann pr kg luft som går gjennom ventilasjonen). Dette ligger stabilt under 2 gram vann/kg luft når ingen dusjer, men får en spike etter ca 30 sekunds dusjing, og da går ventilasjonsanlegget på maks.

 

Dette krever altså to RH+temp-sensorer, og det krever en grunnventilasjon som går hele tiden. Hvis man skal klare seg med bare en sensor, og ingen grunnventilasjon, så tipper jeg at man må lage noe kode som hele tiden beregner hva som er normal temp+rh for gjeldende dag. Jeg ville sannsynligvis basert det på duggpunkt.  Så må man klare skille mellom spike i duggpunkt (som betyr at man dusjer) og bare vanlig "drift" i duggpunkt, som bare betyr at det blir fuktigere av andre årsaker (utevær f.eks.). 

 

Det vil hjelpe litt hvis du har en annen temp+rh-sensor et annet sted i huset som du kan gjøre løpende sammenligninger med.

  • Like 2
  • Thanks 1
Lenke til kommentar
Del på andre sider

11 timer siden, berland skrev:

Styring av baderomsvifte krever noe mer kompleksitet enn dette. Du må ta hensyn til hva som er normal luftfuktighet inneværende dag, dette kan variere mye.

Takker for grei forklaring.

Har fundert litt på dette;

Har en fuktstyrt utrekksvifte som har en lei tendens til å starte ved høy luftfuktighet utendørs.

 

12 timer siden, berland skrev:

Jeg har temp og RH-sensor i tilluft og fraluft-kammerene i ventilasjonsanlegget. Utifra disse fire tallene beregner jeg husets fuktproduksjon (gram vann pr kg luft som går gjennom ventilasjonen). Dette ligger stabilt under 2 gram vann/kg luft når ingen dusjer, men får en spike etter ca 30 sekunds dusjing, og da går ventilasjonsanlegget på maks.

Jeg forstår prinisippet, men ser fortsatt problemet:

Når fuktigheten er høy utendørs, vil ikke dette også påvirke husets fuktproduksjon?

(Uteluften blir normalt ikke avfuktet og påvirker i nokså stor grad innendørsklima.)

Lar du "spiken" være utløsende for start av vifta?

Og likeledes, hvordan stoppes vifta?

Lenke til kommentar
Del på andre sider

1 time siden, arneolav skrev:

Takker for grei forklaring.

Har fundert litt på dette;

Har en fuktstyrt utrekksvifte som har en lei tendens til å starte ved høy luftfuktighet utendørs.

 

Jeg forstår prinisippet, men ser fortsatt problemet:

Når fuktigheten er høy utendørs, vil ikke dette også påvirke husets fuktproduksjon?

(Uteluften blir normalt ikke avfuktet og påvirker i nokså stor grad innendørsklima.)

Lar du "spiken" være utløsende for start av vifta?

Og likeledes, hvordan stoppes vifta?

Hvis jeg titter på døgnmiddel av husets fuktproduksjon, så ligger det ganske fint mellom 0 og 2 (skalen er til høyre!), med en liten dip i sommer (da var vi borte!)1461691452_Screenshotfrom2018-11-2823-04-37.thumb.png.cc817ac5b521ea0ce16bfed86ea796e2.png

 

Så jeg påstår at fuktproduksjonen jeg måler(/regner ut) stort sett er koblet til menneskelig aktivitet i huset, og ikke i særlig grad påvirket av vær.  I sommer ser jeg at fuktproduksjonen var negativ, det er sikkert når huset har tørket av lite mennesker og tørt vær, og så kommer det kanskje fuktig vær som et tørt hus sluker litt fuktighet fra.

 

Når noen dusjer, observerer jeg typisk en slik situasjon: 

 

1824296775_Screenshotfrom2018-11-2823-11-49.thumb.png.d9c0eddb96d90c257b46021fff75f754.png

 

hvor det er ingen heksekunst å klare plukke ut hva som skjer klokka 23:32. Jeg har satt grensene for 3.5 for å gå fra normal til høy ventilasjon, og 2.5 for å gå fra høy til normal igjen (litt hysterese).

Lenke til kommentar
Del på andre sider

Ok, takker.

Synes som om du er vesentlig mindre påvirket av uteluft enn hva vi er her.

Men prinsippet burde kunne benyttes her også når man ser den betydelige endringen. 

 

Har de nødvendige sensorene og permanent  grunnventilasjon.

Kanskje du kan røpe hvordan du beregner husets fuktproduksjon? 

 

Lenke til kommentar
Del på andre sider

På 29.11.2018 den 0.11, arneolav skrev:

Kanskje du kan røpe hvordan du beregner husets fuktproduksjon? 

 

import metpy.calc as mcalc
from metpy.units import units

# https://www.engineeringtoolbox.com/enthalpy-moist-air-d_683.html
# Specific heat for air
c_pa = 1.006 # kJ/KgC
# Specific heat for water vapor
c_pw = 1.84 # kJ/kgC
# Evaporation heat
h_we = 2501 # kJ/kg

def enthalpy(temp, rh, pressure):
    """Temperatur er i Celsius, rh er i tall mellom 0 og 100,
    trykk er i millibar.

    Returenhet er i kJ/kg
    """
    return c_pa * temp + hum_ratio(temp, rh, pressure) * h_w(temp)

def h_w(temp):
    """Specific enthalpy of water vapor - the latent heat"""
    return c_pw * temp + h_we

def hum_ratio(temp, rh, pressure):
    """Mixing ratio (water content), returned as kg/kg"""
    saturated_mixing_ratio = mcalc.saturation_mixing_ratio(\
            pressure*units('mbar'),
            temp*units('degC')).magnitude
    return rh/100. * saturated_mixing_ratio


# Eksempel ved 5.4 grader celcius, 91% RH og 997 mbar lufttrykk:
print("Entalpi: {:.2f} kJ/kg".format(enthalpy(5.4, 91, 997)))
print("Fuktinnhold: {:.2f} g/kg".format(1000 * hum_ratio(5.4, 91, 997)))

 

Dette er utdrag av noe kode jeg kjører hvert 15. sekund på de fire temp+rh-sensorene i ventilasjonsaggregatet. Husets fuktproduksjon er da bare differansen i fuktinnhold for to luftstrømmer. Se bildet i dette innlegget for eksempel:

 

  • Like 1
Lenke til kommentar
Del på andre sider

 

23 minutter siden, berland skrev:

Dette er utdrag av noe kode jeg kjører hvert 15. sekund på de fire temp+rh-sensorene i ventilasjonsaggregatet. Husets fuktproduksjon er da bare differansen i fuktinnhold for to luftstrømmer.

Takker.

Ser greitt ut, må studere litt nærmere.

Lenke til kommentar
Del på andre sider

Sånn ca hva jeg har kommet frem til med litt googling og testing og spørring på Hass-forum. Satt opp med trend binary sensor.

binary_sensor:
 - platform: trend
   sensors:
      bad_fukt_rising:
        entity_id: sensor.bad_inne_fukt_humidity
        max_samples: 2
        sample_duration: 60
        min_gradient: 0.01
       
        
      bad_fukt_falling:
        entity_id: sensor.bad_inne_fukt_humidity
        max_samples: 2
        sample_duration: 60
        min_gradient: -0.01

Satt opp denne automasjonen:

  - alias: 'Badevifte auto on'
    trigger:
      - platform: state
        entity_id: binary_sensor.bad_fukt_rising
        from: 'off'
        to: 'on'
    action:
        service: switch.turn_on
        entity_id: switch.bad_oppe_vifte

  - alias: 'Badevifte auto off'
    trigger:
      platform: state
      entity_id: binary_sensor.bad_fukt_rising
      from: 'off'
      to: 'on'
    action:
        service: switch.turn_off
        entity_id: switch.bad_oppe_vifte

 

 

Noen åpenbare feil her? Noen som av erfaring har tips til hva jeg skal sette på sample duration og min_gradient?

Lenke til kommentar
Del på andre sider

'gradient' antar jeg betyr den deriverte av fuktigheten. Verdien vil være avhengig av hvilken enhet som antas - det har du kanskje sjekket?  (er rh-tallet mellom 0 og 100, eller mellom 0 og 1, og hva er tidsenheten?)

 

Hva er samplingsfrekvensen din på fuktsensoren - sender den målinger flere ganger pr. minuttet eller sjeldnere. For at en gradient med lengde 60 sekunder (antar jeg) så bør du ha flere målinger innenfor det minuttet.  Jeg tror jeg har ca. hvert 15. sekund på mine fuktsensorer i ventilasjonsanlegget.

 

Vær også obs på at støy i fuktmålingene kan trigge noen falske 'bad_fukt-rising'.

 

Lenke til kommentar
Del på andre sider

Tror jeg fant ut av det nå:

 

binary_sensor:
 - platform: trend
   sensors:
      bad_fukt_rising:
        entity_id: sensor.bad_inne_fukt_humidity
        min_gradient: 0.008
       
        
      bad_fukt_falling:
        entity_id: sensor.bad_inne_fukt_humidity
        min_gradient: -0.0033

 

Lese litt nøyere så.. Trengte ikke det  andre tror jeg.

 

Får teste ut dette og så se om det må justeres litt etterhvert.

 

Lenke til kommentar
Del på andre sider

0.008 betyr vel her "stiger med 0,008 prosentpoeng pr sekund" , eller 0.48 prosentpoeng på ett minutt. Hvis jeg ikke har misforstått.

Spent på erfaringene du gjør deg, trend-sensoren hadde jeg glemt at eksisterte [emoji106]

Sent fra min BLA-L29 via Tapatalk

Lenke til kommentar
Del på andre sider

Foreløpig test etter en n dusj. Auto on fungerte startet etter ca et par min. Etter at fuktigheten hadde økt med 2%

 

Slo seg litt raskt av etterpå. Så trenger at den øker tiden på hvor lenge verdien skal synke. La til sample duration på 5 min. Så får vi se etter neste dusj om det hjelper.

 

Edit. Skjønte det jo plutselig nå. Problemet ligger jo i automasjonen. Vifta skal jo skru seg av igjen når verdien stopper å falle.  Så altså endret jeg.

Det skal være.

From: 'on'

To: 'off'

Selvfølgelig.. hehe.

 

Her er fra hass sin side om sensoren:

 

Each time the state changes, a new sample is stored along with the sample time. Samples older than sample_durationseconds will be discarded.

A trend line is then fitted to the available samples, and the gradient of this line is compared to min_gradient to determine the state of the trend sensor. The gradient is measured in sensor units per second - so if you want to know when the temperature is falling by 2 degrees per hour, use a gradient of (-2) / (60 x 60) = -0.00055

Endret av Teryeah
  • Like 1
Lenke til kommentar
Del på andre sider

Jeg ville registrert luftfuktigheten når viften starter og stoppet når du er innenfor 2% eller noe deromkring. Du stopper jo nå nesten med en gang luftfuktigheten går ned, og min erfaring er at det tar vesentlig lenger tid enn en dusj å fjerne restfukt i et baderom. Et alternativ er å starte en timer når det begynner å gå ned, slik at du trigger enda en automasjon for å slå av når denne timeren går ut. 

Lenke til kommentar
Del på andre sider

Takk for råd baronkanon.

 

Men tror måten jeg har kommet frem til nå også kan funke.

 

Sensoren bad_fukt_rising slår seg på når det registreres økning i fukt. Og trigger automasjonen til å slå på vifta. 

Når fuktøkning stopper går denne sensoren til off igjen.

 

Sensoren bad_fukt_falling slår seg på når det registreres at fukten faller. Så når det flater ut igjen vil denne sensoren gå til off. Som da trigger automasjonen som slår av vifta.

 

Syns hvertfall dette høres logisk ut. Og ikke  altfor avansert er det heller.. ?

 

Sikkert bedre mer avanserte måter å gjøre dette på. Men hvis min logikk ikke er helt på bærtur så tror jeg jo dette vil funke ganske bra.

 

Får følge med på når den slår seg av igjen og justere på min_gradient

Lenke til kommentar
Del på andre sider

42 minutter siden, bjornepappa skrev:

Kva med å måle RH i eit anna "tørt" rom i huset og samanlikne med det? (det har eg gjort) 

Jo. Det vil jo også funke. Men nå har jeg bare en fuktmåler foreløpig da ?

Lenke til kommentar
Del på andre sider

2 timer siden, bjornepappa skrev:

Kva med å måle RH i eit anna "tørt" rom i huset og samanlikne med det? (det har eg gjort

Det gir jo en enkel og helautomatisk løsning. Jeg har Aeotec multisensor både på badet og i gangen utenfor badet og ser jo at badet alltid ligger under gangen i fuktighet siden badet alltid er varmere. Ved dusjing o.l. stiger fuktigheten på badet raskt til over gangens nivå. Jeg har også et 10 minutt forsinket event for å stoppe viften. Liker å gjøre ting enkelt for det har lett for å fungere mer pålitelig...

 

Siste 3 dager her:

Screenshot_20181204-105714.thumb.png.3ea318ce3f287d57a586a54169f3bf08.png

Lenke til kommentar
Del på andre sider

2 timer siden, Teryeah skrev:

Jo. Det vil jo også funke. Men nå har jeg bare en fuktmåler foreløpig da ?

Då har du ein meget god unnskyldning til å kjøpe ein til. Vil få anbefale Aeotec Multisensor 6, så kan du bruke den til f. Eks å styre lyset i gangen også. 

Vil påstå at dette er ein god og enkel måte å styre på.

I begynnelsen brukte eg faste grenser for start og stopp, det fungerte bra heilt til det kom ein periode med mykje regn - vart overraska over kor mykje dette påvirka RH innandørs, men det gjorde altså at vifta gjekk tilnærma konstant. 

Lenke til kommentar
Del på andre sider

  • 2 uker senere...

Etter noen dagers testing og tweaking nå har jeg kommet frem til noe som ser ut til å fungere veldig greit.

 

Sensorene:

 

binary_sensor:
 - platform: trend
   sensors:
      bad_fukt_rising:
        entity_id: sensor.bad_inne_fukt_humidity
        min_gradient: 0.008
        max_samples: 4
       
        
      bad_fukt_falling:
        entity_id: sensor.bad_inne_fukt_humidity
        min_gradient: -0.004
        max_samples: 10

 

Og automasjonene:

 

  - alias: 'Badevifte auto on'
    trigger:
      - platform: state
        entity_id: binary_sensor.bad_fukt_rising
        from: 'off'
        to: 'on'
    action:
        service: switch.turn_on
        entity_id: switch.bad_oppe_vifte

  - alias: 'Badevifte auto off'
    trigger:
      platform: state
      entity_id: binary_sensor.bad_fukt_falling
      from: 'on'
      to: 'off'
    action:
        service: switch.turn_off
        entity_id: switch.bad_oppe_vifte

 

Kan hende det trengs noe tweaking fortsatt. Men fungerer bra så langt.

Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.