Перейти до публікації
Пошук в
  • Додатково...
Шукати результати, які містять...
Шукати результати в...

ПВУ_DIY

yur43

Рекомендовані повідомлення

3 години тому, yur43 сказав:

оцей фрагмент чогось перестав працювати.

сам зробив каку - Кінконі без rts, час для автоматизацій бере з інтернету, доступ до якого я обмежив

Посилання на коментар
Поділитися на інших сайтах

  • 4 місяці потому...

@yur43, а як у вас організоване керування байпасними заслінками? Памʼятаю ви писали, що лишили рідний трансформатор та блоки керування байпасними двигунами. Як ви їх підключали та як саме ви ними керуєте? Напевно через no-com-nc реле кінконі? Як знаєте, що заслінка закрита або відкрита? Також чи постійно подаєте напругу на двигун заслінки, коли вона досягла кінцевої точки? Якщо не подаєте, то редуктор заслінки втримує саму заслінку від самовільного відкривання/закривання?

Посилання на коментар
Поділитися на інших сайтах

4 години тому, МакДо сказав:

@yur43, а як у вас організоване керування байпасними заслінками? 

Так, лишив рідні модулі. По пам'яті, вони мають по два входи АС 24в, один закриває, інший відкриває. Там ще є перемичка яка регулює зусилля на валу, поставив на менше. Час повного переміщення заслінки по пам'яті 8 секунд. Керується кожна заслінка окремо, потрібні 4 групи нормально розімкнутих контактів, це є на кінконі.

Довгий імпульс переводить заслінку в потрібне положення, короткі імпульси дають можливість плавно змінювати кут.

Змінено користувачем yur43
  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

Чи може пан поділитися графіком температур за літні дні, коли відбувалося охолодження? Щоб можна було побачити яка температура (з вулиці і в будинок) була до увімкнення охолодження і після.

Бо я щось зовсім не відчув ніякого охолодження, коли подавав в будинок на 3 кімнати близько 210 кубів прямо з вулиці. Через теплообмінник, але витяжка була вимкнена зовсім і практично ніяк не впливала на рекуперацію, тому в кімнату (саме в кімнату, дачтик в анемостаті) заходило десь 17 °C і ніяк не відчувалося 🤔 Хіба що стояти недалеко від анемостату.

Посилання на коментар
Поділитися на інших сайтах

19 годин тому, TaurosRMK сказав:

Чи може пан поділитися графіком температур за літні дні, коли відбувалося охолодження? 

Охолодження контролюється окремим термостатом, щоб залишатися комфортним. Не скажу що воно сильно ефективне, але спільно з охолодженням стелі і підлоги ефект є.

  • Конфуз 1
Посилання на коментар
Поділитися на інших сайтах

  • 2 тижні потому...
21 хвилину тому, TaurosRMK сказав:

А де стоять датчик(и) СО2? І яка ідея цього всього, підтримувати рівень СО2 не вище уставки?

Регулюється по датчику у ПВУ, інші датчики в різних місцях для орієнтиру бо в них автокалібрування. На холодну пору року ставлю ціль 1000 ppm, коли тепло - 850 ppm.

Типовий графік обертів. Вночі заборонені режими "провітр" і "витяжка", і обмежені максимальні оберти .

image.thumb.png.5a1604acd380bd92a7f0b25eedf9f559.png

Змінено користувачем yur43
  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

  • 1 місяць потому...

Показники ефективності перестали подобатися, згадав що під час літнього ТО перевернув теплообмінник рекуператора на 180 градусів.

Перевернув назад, в заводське положення, і от що вийшло

image.png.df8d0d6ba1c428961a8b11fe6d48e52b.png

image.thumb.png.929eb8697f1aa338b1b6386f130a9c4d.png

Ефективність зросла - теплообмін покращився.

В мене пояснень цьому немає. Зовні воно однакове, наклейка тільки відрізняє сторони, але на ній немає позначок призначення сторін підключення.

Змінено користувачем yur43
  • Конфуз 1
Посилання на коментар
Поділитися на інших сайтах

2 години тому, yur43 сказав:

Зовні воно однакове, наклейка тільки відрізняє сторони, але на ній немає позначок призначення сторін підключення.

Та бо немає різниці, просто канали входять і виходять. Хоть як крутіть, теоретично то немає нічого змінювати.

З заводу як стояло, наклейкою до заду чи переду?

Посилання на коментар
Поділитися на інших сайтах

Может влиять пыль внутри теплообменника. С какого то канала долетела пиль и загрязнили с одной стороны. 

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

53 хвилини тому, TaurosRMK сказав:

Та бо немає різниці, просто канали входять і виходять. Хоть як крутіть, теоретично то немає нічого змінювати.

З заводу як стояло, наклейкою до заду чи переду?

поставив так як було з заводу.

Може причина в геометрії каналів, бо почав активно текти конденсат, а раніше було сухо.

Теплообмінник літом мився хімією, там має бути чисто.

Результат перевертання очевидний

image.thumb.png.3014e94400f4997d6492964e4a5f8bc1.png

  • Конфуз 1
Посилання на коментар
Поділитися на інших сайтах

3 години тому, yur43 сказав:

Може причина в геометрії каналів, бо почав активно текти конденсат, а раніше було сухо

Так наче вони однакові в обидві сторони. Тому дивно. Я ставив теплообмінник наклейкою до переду, спочатку деякий час стояв наклейкою вниз, потім після чистки розвернув наклейкою вверх, тобто на 180 градусів по годиннику (фактично це змінило тільки напрям каналів у зворотній бік). Так вже стоїть більше року (забув навіть почистити перед зимою), ефективність в середньому 88-90%. Не думаю що щось зміниться, якщо поверну на 180 градусів в горизонтальній площині.

image.thumb.png.a7bec45db99036e1817ed95fc4f01fa4.png image.thumb.png.8472f61aab7fe042f697e9422de848ef.png

image.png.dc3845fb64e1244cbf81f1893d7690af.png

Посилання на коментар
Поділитися на інших сайтах

2 години тому, TaurosRMK сказав:

 

image.thumb.png.8472f61aab7fe042f697e9422de848ef.png

Ваше розміщення вдаліше

image.png.ba6e3bf0f100375bbfed3b18aac8c020.png

На моєму теплообміннику знайшлася наклейка з цифрою "2", стрічка вертикально, написи в правильному орієнтуванні, вулиця - зліва, будинок - зправа.

image.thumb.png.85c12cc66df9f66ee5c884eb975f0d0d.png

Різниці бути не повинно, але вона є.

 image.png.c4491d32d1cdf26b77ddfb67ca1edc34.png

Ефективність моя стала теж під 90%, активно тече конденсат.

Змінено користувачем yur43
  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

30 хвилин тому, yur43 сказав:

Ефективність моя стала теж під 90%, активно тече конденсат.

Можливо конденсату багато, а ви використовуєте на малих потоках (менше 100 кубів) і це затрудняє потік. Навіть виробник рекомендує якийсь мінімальний потік повітря (якраз для вашого теплообмінника десь 96-100 кубів), бо якщо буде менше, то просто не зможе витіснити конденсат. А в такому положенні як у вас конденсат накопичується десь там в середині теплообмінника. Може коли ви його повертали то вилили накопичений конденсат, відповідно повітрю стало легше проходити. Але з часом ефективність може знову впасти.

Я собі додав автоматизацію раз в 12 чи 24 години (не пам'ятаю точно), вмикати витяжний вентилятор на 70-100% швидкості на 1-2 хв, щоб вигнати конденсат з теплообмінника. В момент спрацювання автоматизації по шлангу лиє добряче. Спробуйте.

Які зараз показники по датчиках?

  • Лайк 2
Посилання на коментар
Поділитися на інших сайтах

1 година тому, TaurosRMK сказав:

.... Може коли ви його повертали то вилили накопичений конденсат, відповідно повітрю стало легше проходити. Але з часом ефективність може знову впасти.

Я собі додав автоматизацію раз в 12 чи 24 години (не пам'ятаю точно), вмикати витяжний вентилятор на 70-100% швидкості на 1-2 хв, щоб вигнати конденсат з теплообмінника. В момент спрацювання автоматизації по шлангу лиє добряче. Спробуйте.

Які зараз показники по датчиках?

1. Коли перевертав - він був порожній, майже без води. Для перевірки завтра переверну знову.

2. +

3. image.png.32bc3dd1c2553e17593990c9300da60a.png

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

Прихований текст

esphome:

  name: "kc868-a4"

  friendly_name: HRV_kc868-a4

  on_boot:

    then:

      - number.set:

          id: dac_min

          value: 0.1

      - number.set:

          id: dac_max

          value: 0.35

      - number.set:

          id: dac_bal1

          value: 0.0

      - number.set:

          id: dac_bal2

          value: -0.03

      - output.set_level:

          id: set_level

          level: 0.4

         

esp32:

  board: esp32dev

  framework:

    type: arduino

 

logger:

  level: WARN

 

#web_server:

 # port: 80  

   

api:

  encryption:

    key: "V8E7p7ySFvXxvoRjsmxFk74PB5fxXArAh8qcU4zdSUg="

  services:

    - service: scd4x_calibrate_co2_value

      variables:

        co2_ppm: int

      then:

      - scd4x.perform_forced_calibration:

          value: !lambda 'return co2_ppm;'

          id: scd40

    - service: scd4x_factory_reset

      then:

      - scd4x.factory_reset: scd40

  reboot_timeout: 0s

 

ota:

  - platform: esphome

    password: "b5f"

wifi:

  ssid: !secret wifi_ssid

  password: !secret wifi_password

  reboot_timeout: 5h

  ap:

    ssid: "Hrv-Kc868-A4 Fallback Hotspot"

    password: !secret wifi_password

rtttl:

  output: rtttl_out

  id: my_rtttl

number:

  - name: dac_min

    id: dac_min

    platform: template

    min_value: 0

    max_value: 0.3

    step: 0.01

    mode: box

    optimistic: true

    entity_category: config

  - name: dac_max

    id: dac_max

    platform: template

    min_value: 0

    max_value: 0.6

    step: 0.01

    mode: box

    optimistic: true

    entity_category: config

  - name: dac_bal1

    id: dac_bal1

    platform: template

    min_value: -0.02

    max_value: 0.02

    step: 0.001

    mode: box

    optimistic: true

    entity_category: config

  - name: dac_bal2

    id: dac_bal2

    platform: template

    min_value: -0.2

    max_value: 0.2

    step: 0.001

    mode: box

    optimistic: true

    entity_category: config

  - name: dac_power

    platform: template

    id: dac_power

    min_value: 0

    max_value: 1

    step: 0.001

    mode: box

    optimistic: true

    entity_category: diagnostic

  - name: PID_power

    platform: template

    id: PID_power

    min_value: 0

    max_value: 1

    step: 0.001

    mode: box

    optimistic: true

    entity_category: diagnostic

climate:

  - platform: bang_bang

    name: "cool_wind"

    id: cool_wind

    visual:

      min_temperature: 10

      max_temperature: 30

      temperature_step: 0.1    

    sensor: temp_ino

    default_target_temperature_low: 18.2 °C

    default_target_temperature_high: 19.5 °C

    cool_action:

      - switch.turn_on: cool_on

    heat_action:

      - switch.turn_on: cool_off

    idle_action:

      - switch.turn_off: cool_on

      - switch.turn_off: cool_off

  - platform: bang_bang

    name: "defrost"

    id: defrost

    visual:

      min_temperature: 1

      max_temperature: 8

      temperature_step: 0.1

    sensor: temp_outR

    default_target_temperature_low: 6 °C

    default_target_temperature_high: 7 °C

    heat_action:

      - switch.turn_on: defrost_on

    idle_action:

      - switch.turn_off: defrost_off

      - switch.turn_off: defrost_on

    cool_action:

      - switch.turn_on: defrost_off

  - platform: pid

    name: "PID_CO2"

    id: PID_CO2

    visual:

      min_temperature: 500

      max_temperature: 1500

      temperature_step: 10

    sensor: CO2

    default_target_temperature: 750

    cool_output: PID_level

    control_parameters:

      kp: 0.007

      ki: 0.0000000004

      kd: 0.000000000001

      starting_integral_term: -0.3

  #    min_integral: -0.6

   #   max_integral: -0.4

      derivative_averaging_samples: 2

i2c:

  sda: GPIO19

  scl: GPIO21

  scan: false

  id: bus_a

tca9548a:

  - address: 0x70

    id: multiplex0

    i2c_id: bus_a

    channels:

      - bus_id: multiplex0channel0

        channel: 0

      - bus_id: multiplex0channel1

        channel: 1

      - bus_id: multiplex0channel2

        channel: 2

      - bus_id: multiplex0channel3

        channel: 3

      - bus_id: multiplex0channel4

        channel: 4

      - bus_id: multiplex0channel5

        channel: 5

      - bus_id: multiplex0channel6

        channel: 6

      - bus_id: multiplex0channel7

        channel: 7

 

one_wire:

  - platform: gpio

    pin: 13

   

switch:    

  - platform: template

    name: "all_off"

    id: all_off

    turn_on_action:

      - switch.turn_off: cool_on

      - switch.turn_off: cool_off

      - switch.turn_off: relay_1

      - switch.turn_off: relay_3

      - switch.turn_on: relay_2

      - switch.turn_on: relay_4

      - delay: 50s

      - switch.turn_off: relay_2

      - switch.turn_off: relay_4

      - lambda: |-

          id(all_off).turn_off();

  - platform: template

    name: "cool_on"

    id: cool_on

    turn_on_action:

      - switch.turn_off: cool_off

      - switch.turn_off: relay_2    

      - switch.turn_off: relay_4    

      - repeat:

          count: 33

          then:

            - switch.turn_on: relay_1

            - switch.turn_on: relay_3    

            - delay: 1.5s

            - switch.turn_off: relay_1

            - switch.turn_off: relay_3

            - delay: 150s

  - platform: template

    name: "cool_off"

    id: cool_off

    turn_on_action:

      - switch.turn_off: cool_on

      - switch.turn_off: relay_1

      - switch.turn_off: relay_3

      - repeat:

          count: 34

          then:

            - switch.turn_on: relay_2

            - switch.turn_on: relay_4

            - delay: 1.5s

            - switch.turn_off: relay_2

            - switch.turn_off: relay_4

            - delay: 150s    

  - platform: template

    name: "defrost_on"

    id: defrost_on

    turn_on_action:

      - switch.turn_off: defrost_off

      - switch.turn_off: relay_2    

      - repeat:

          count: 33

          then:

            - switch.turn_on: relay_1

            - delay: 1.5s

            - switch.turn_off: relay_1

            - delay: 150s

  - platform: template

    name: "defrost_off"

    id: defrost_off

    turn_on_action:

      - switch.turn_off: defrost_on

      - switch.turn_off: relay_1

      - repeat:

          count: 34

          then:

            - switch.turn_on: relay_2

            - delay: 1.5s

            - switch.turn_off: relay_2

            - delay: 150s          

  - platform: gpio

    name: "bypass_in_on"

    id: relay_1

    pin: 2

    on_turn_on:

    - delay: 60s

    - switch.turn_off: relay_1

  - platform: gpio

    name: "bypass_in_off"

    id: relay_2

    pin: 15

    on_turn_on:

    - delay: 60s

    - switch.turn_off: relay_2

  - platform: gpio

    name: "bypass_out_on"

    id: relay_3

    pin: 5

    on_turn_on:

    - delay: 60s

    - switch.turn_off: relay_3

  - platform: gpio

    name: "bypass_out_off"

    id: relay_4

    pin: 4

    on_turn_on:

    - delay: 60s

    - switch.turn_off: relay_4

 

sensor:

  - platform: adc

    pin: 34

    name: "water level"

    update_interval: 1min

    unit_of_measurement: m

    attenuation: 11db

    filters:

      - offset: -0.56

      - multiply: 1.66667

      - exponential_moving_average:

          alpha: 0.02

          send_every: 1

  - platform: pulse_counter

    pin: 14

    name: "fan1"

    filters:

      - multiply: 0.5

    update_interval: 1min

    accuracy_decimals: 0

    unit_of_measurement: "RPM"

    on_value_range:

      - below: 300

        then:

          - delay: 30s

          - rtttl.play: 'siren:d=8,o=5,b=100:d,e,d,e,d,e,d,e'

  - platform: pulse_counter

    pin: 27

    name: "fan2"

    filters:

      - multiply: 0.5

    update_interval: 30s

    accuracy_decimals: 0

    unit_of_measurement: "RPM"

    on_value_range:

      - below: 300

        then:

          - delay: 1min

          - rtttl.play: 'siren:d=8,o=5,b=100:d,e,d,e,d,e,d,e'

  - platform: dallas_temp

    address: 0xb401204ec799da28

    name: "temp_outR"

    accuracy_decimals: 2

    id: temp_outR    

    filters:

      - offset: -0.1

  - platform: dallas_temp

    address: 0xce0000034b298828

    name: "temp_out"

    accuracy_decimals: 2

    id: temp_out

    filters:

      - exponential_moving_average:

          alpha: 0.5

          send_every: 1

      - offset: 0.05

  - platform: bme280_i2c

    i2c_id: multiplex0channel1

    address: 0x76

    temperature:

      name: "BME280 Temp_room"

      accuracy_decimals: 2

    humidity:

      name: "BME280 Humid_room"

      accuracy_decimals: 1

    pressure:

      name: "BME280 Pressure_room"

      filters:

        - exponential_moving_average:

            alpha: 0.1

            send_every: 1

  - platform: bme280_i2c

    i2c_id: multiplex0channel7

    address: 0x76

    temperature:

      name: "BME280 Temp_ino"

      id: temp_ino

      accuracy_decimals: 2  

      filters:

        - offset: 0.05  

    humidity:

      name: "BME280 Humid_ino"

      accuracy_decimals: 1

    update_interval: 1min

  - platform: bme280_i2c

    i2c_id: multiplex0channel6

    address: 0x76

    temperature:

      name: "BME280 Temp_in"

      id: temp_in

      accuracy_decimals: 1

      filters:

        - offset: -0.09

    humidity:

      name: "BME280 Humid_in"

      id: Humid_in

      accuracy_decimals: 1

    update_interval: 1min

  - platform: scd4x

    i2c_id: multiplex0channel6

    co2:

      name: "CO2"

      id: CO2

      filters:

        - exponential_moving_average:

            alpha: 0.2

            send_every: 2

    automatic_self_calibration: false

    altitude_compensation: 242m

    measurement_mode: low_power_periodic

    id: scd40

    update_interval: 30s

 

output:

  - platform: ledc

    pin: GPIO18

    id: rtttl_out

  - platform: esp32_dac

    pin: GPIO26

    id: dac_output1

  - platform: esp32_dac

    pin: GPIO25

    id: dac_output2

  - platform: template

    type: float

    id: set_level

    write_action:      

      - lambda: |-

          id(dac_power).publish_state(state);      

          auto v1 = id(dac_min).state + id(dac_bal1).state + (state * (0.9 + id(dac_bal2).state));

          auto v2 = id(dac_min).state - id(dac_bal1).state + (state * (0.9 - id(dac_bal2).state));

          id(dac_output1).set_level(v1);

          id(dac_output2).set_level(v2);

  - platform: template

    type: float

    id: PID_level

    write_action:      

      - lambda: |-

          if (id(fans).state) {

          // Fan is ON, do something here

          } else {

          // Fan is OFF, do something else here

          }

          id(PID_power).publish_state(state);  

          auto v = state * id(dac_max).state;

          if (!id(fans).state) {

          id(set_level).set_level(v);

          }

fan:

  - platform: speed

    output: set_level

    name: "fan"

    id: fans

    on_turn_off:

      then:

      - output.set_level:

          id: set_level

          level: 0.15

    on_turn_on:

      then:

      - delay: 60min

      - lambda: |-

          id(fans).turn_off();

 

time:

  - platform: sntp

    on_time:

      - minutes: /30

        then:

        - lambda: |-

            if (id(temp_in).state > 24 && id(temp_out).state < id(temp_in).state) {

            auto call = id(cool_wind).make_call();

            call.set_mode("HEAT_COOL");

            call.perform();          

            }

            else {

            if (id(cool_wind).mode != CLIMATE_MODE_OFF) {

            auto call = id(cool_wind).make_call();

            call.set_mode("OFF");

            call.perform();

            id(all_off).turn_on();

            }}      

             

      - minutes: /20

        then:

          - lambda: |-

              if (id(temp_out).state < 0 && id(defrost).mode != CLIMATE_MODE_HEAT_COOL) {

              auto call = id(defrost).make_call();

              call.set_mode("HEAT_COOL");

              call.perform();          

              }

              else {

              if (id(defrost).mode != CLIMATE_MODE_OFF) {

              auto call = id(defrost).make_call();

              call.set_mode("OFF");

              call.perform();

              id(cool_off).turn_on();

              }}

           

крайній код

Посилання на коментар
Поділитися на інших сайтах

07.12.2025 в 22:45, yur43 сказав:

Для перевірки завтра переверну знову.

Мав час і натхнення, перевернув. Різниця є.

image.png.8e7aaebe5d4b0daa7da740e85422a0f3.png

  • Конфуз 1
Посилання на коментар
Поділитися на інших сайтах

Створіть акаунт або увійдіть у нього для коментування

Ви маєте бути користувачем, щоб залишити коментар

Створити акаунт

Зареєструйтеся для отримання акаунта. Це просто!

Зареєструвати акаунт

Увійти

Вже зареєстровані? Увійдіть тут.

Увійти зараз
×
×
  • Створити...