Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

domotisation VMC double flux avec un capteur de pollution XIAOMI PM2.5

Pour parler de tout, et surtout de rien !
bubu77
Timide
Messages : 33
Inscription : 10 sept. 2016, 07:21

domotisation VMC double flux avec un capteur de pollution XIAOMI PM2.5

Message par bubu77 » 07 sept. 2019, 12:43

Bonjour à tous,

Il y a déjà plusieurs sujets concernant des domotisations de VMC double flux. Je ne vais revenir dessus.
Personnellement, je peux piloter ma VMC DF: OFF,ON, vitesse double et vitesse 15% (vacances).

J'avais des petits soucis d'aspiration d'air pollué dans certaines conditions de vent et évenements extérieurs... par ex, un voisin qui fait bruler n'importe quoi ou juste des retours de feux de cheminées l'hiver.

J'ai donc créé un raccord de gaine VMC (en 150mm) avec mon imprimante 3D pour y intégrer un capteur de pollution xiaomi PM2.5.
ce capteur est connecté à la jeedom par l'incontournable plugin xiaomi

Maintenant, quand il y a un évenement extérieur néfaste, la VMC se coupe 58min et refait un test au bout de 1h (histoire de ventiler le conduit).
ci-joint le fichier pour l'imprimante 3D.
https://www.thingiverse.com/thing:3849215

Pour ceux qui n'ont pas d'imprimante, vous pouvez aussi juste acheter un raccord et y découper un carré de la taille du capteur xiaomi...

bons bricolages

Pour ceux qui veulent baisser le cout, vous pouvez aussi programmer un pizero avec un capteur BM680 qui envoie les infos à la jeedom.
J'ai essayé mais je ne suis pas satisfait des résultats. le BM680 renvoie des valeurs difficilement exploitables et sa mesure devient stable après 24h...
le lien du capteur BM680: https://shop.pimoroni.com/products/bme680-breakout
Si ca interesse quelqu'un, ci-joint le programme en python (programme existant que j'ai légèrement modifié pour envoyer la valeure via API http)

Code : Tout sélectionner

#!/usr/bin/env python

import bme680
import time
import urllib2

print("""indoor-air-quality.py - Estimates indoor air quality.
Runs the sensor for a burn-in period, then uses a
combination of relative humidity and gas resistance
to estimate indoor air quality as a percentage.
Press Ctrl+C to exit!
""")

try:
    sensor = bme680.BME680(bme680.I2C_ADDR_PRIMARY)
except IOError:
    sensor = bme680.BME680(bme680.I2C_ADDR_SECONDARY)

# These oversampling settings can be tweaked to
# change the balance between accuracy and noise in
# the data.

sensor.set_humidity_oversample(bme680.OS_2X)
sensor.set_pressure_oversample(bme680.OS_4X)
sensor.set_temperature_oversample(bme680.OS_8X)
sensor.set_filter(bme680.FILTER_SIZE_3)
sensor.set_gas_status(bme680.ENABLE_GAS_MEAS)

sensor.set_gas_heater_temperature(320)
sensor.set_gas_heater_duration(150)
sensor.select_gas_heater_profile(0)

# start_time and curr_time ensure that the
# burn_in_time (in seconds) is kept track of.

start_time = time.time()
curr_time = time.time()
burn_in_time = 300

burn_in_data = []

try:
    # Collect gas resistance burn-in values, then use the average
    # of the last 50 values to set the upper limit for calculating
    # gas_baseline.
    print('Collecting gas resistance burn-in data for 5 mins\n')
    while curr_time - start_time < burn_in_time:
        curr_time = time.time()
        if sensor.get_sensor_data() and sensor.data.heat_stable:
            gas = sensor.data.gas_resistance
            burn_in_data.append(gas)
            print('Gas: {0} Ohms'.format(gas))
            time.sleep(1)

    gas_baseline = sum(burn_in_data[-50:]) / 50.0

    # Set the humidity baseline to 40%, an optimal indoor humidity.
    hum_baseline = 40.0

    # This sets the balance between humidity and gas reading in the
    # calculation of air_quality_score (25:75, humidity:gas)
    hum_weighting = 0.25

    print('Gas baseline: {0} Ohms, humidity baseline: {1:.2f} %RH\n'.format(
        gas_baseline,
        hum_baseline))

    while True:
        if sensor.get_sensor_data() and sensor.data.heat_stable:
            gas = sensor.data.gas_resistance
            gas_offset = gas_baseline - gas

            hum = sensor.data.humidity
            hum_offset = hum - hum_baseline

            # Calculate hum_score as the distance from the hum_baseline.
            if hum_offset > 0:
                hum_score = (100 - hum_baseline - hum_offset)
                hum_score /= (100 - hum_baseline)
                hum_score *= (hum_weighting * 100)

            else:
                hum_score = (hum_baseline + hum_offset)
                hum_score /= hum_baseline
                hum_score *= (hum_weighting * 100)

            # Calculate gas_score as the distance from the gas_baseline.
            if gas_offset > 0:
                gas_score = (gas / gas_baseline)
                gas_score *= (100 - (hum_weighting * 100))

            else:
                gas_score = 100 - (hum_weighting * 100)

            # Calculate air_quality_score.
            air_quality_score = hum_score + gas_score

            print('Gas score: {0:.2f} Ohms,humidity: {1:.2f} %RH,air quality: {2:.2f}'.format(
                hum,
                air_quality_score))
#remplacer les xxxx par les valeurs requises
            url1 = "https://api.eedomus.com/set?api_user=xxxx&api_secret=xxxx&action=periph.value&periph_id=xxxx&value=%s" % gas_score
		    url2 = "https://api.eedomus.com/set?api_user=xxxx&api_secret=xxxx&action=periph.value&periph_id=xxxx&value=%s" % hum
            url3 = "https://api.eedomus.com/set?api_user=xxxx&api_secret=xxxx&action=periph.value&periph_id=xxxx&value=%s" % air_quality_score
            response1 = urllib2.urlopen(url1)
            html = response1.read()
            response2 = urllib2.urlopen(url2)
            html = response2.read()
            response3 = urllib2.urlopen(url3)
            html = response3.read()

            time.sleep(30)

except KeyboardInterrupt:
    pass

Kyoshi
Timide
Messages : 444
Inscription : 04 mai 2018, 14:05

Re: domotisation VMC double flux avec un capteur de pollution XIAOMI PM2.5

Message par Kyoshi » 07 sept. 2019, 14:16

Hello,
Réponse hors sujet, mais pour la domotisation de ta VMC double flux (la gestion de la vitesse), tu l’as fait avec deux modules?
Je demande vu qu’en double flux, la vitesse du ventilateur qui aspire ne doit pas être la même que celui qui rejette l’air.

bubu77
Timide
Messages : 33
Inscription : 10 sept. 2016, 07:21

Re: domotisation VMC double flux avec un capteur de pollution XIAOMI PM2.5

Message par bubu77 » 09 sept. 2019, 09:41

Ma VMC (Unelvent IDEO) possédé un interrupteur filaire pour faire le double vitesse. J'y ai mis un module contacteur sec zwave pour le piloter. Et j'ai un module d'alimentation zwave standard pour le ON/OFF.

Le reste, c'est de la bricole... j'ai soudé des fils sur les boutons de la télécommande, ce qui me permet de tout régler avec des impulsions (mode vacances, mode bypass et meme réglage de la puissance). Pour ce faire, j'ai relié ma eedomus via RJ12 sur une carte relai. (mais ca pourrait se faire via GPIO sur la jeedom aussi). Ce système pourrait aussi me servir à faire ON/OFF ou double vitesse, mais j'avais déjà mis en place mes modules zwave. Et accessoirement, je voulais pouvoir couper l'alim de la VMC sans délai en cas de détection incendie

Répondre

Revenir vers « Discussions Générales »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 14 invités