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

Практическая автоматизация дома на базе openhab

standov

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

3 минуты назад, k-master сказал:

Ну не так часто схема опалення міняється, намалював та забув. А потім якщо що то можна зробити ще один тріал. Може не красиво, але й не в комерційних цілях. Я поки малював зрозумів що я б її не придбав. Веб версію точно бо не подобається вона мені. Поки шукав я ще знайiов компоненти для MS Visio, але його в мене нема.

це да, я просто трошки вслух здивувався з ціноутворення. 

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

20 хвилин тому, standov сказав:

це да, я просто трошки вслух здивувався з ціноутворення.

Та нічого дивного для нішевого інструменту. Для того, кому потрібно малювати ті схемки постійно, 99 дол. на 3 роки — це ніщо, бо часу зекономить на порядки більше. А нам простим смертним можна взяти елементи з бібліотеки Caleffi, яка йже в їхніх Idronics журналах, імпортнути в Draw.IO і з'єднувати лініями вже там.

Якщо зайти в якийсь PDF, то там завжди вкінці ж щось таке:

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

image.thumb.png.ca25869e942f47dad4c7ba3387306dd3.png

 

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

6 минут назад, volomoto сказал:

99 дол. на 3 роки — це ніщо

та ну камон, я такий самий інженер який користується кучкою усілякого платного по своєму напрямку, 99 баксів за кривеньку прикладну історію це дуже дорого, це не інженерний софт для проектування, це тулза на коленке для вирішення досить обмеженого запиту. Красна ціна 15-35 )

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

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

Та нічого дивного для нішевого інструменту. Для того, кому потрібно малювати ті схемки постійно, 99 дол. на 3 роки — це ніщо, бо часу зекономить на порядки більше.

Ну типа того, але після годинного тріалу я б її ніколи не взяв. Так щоб собі один раз намалювати схему та забути - норм, щоб постійно - дуже багато незручностей, взяти може тільки той хто іншого не бачив. Хоча та сама компанія має інші продукти для компа, може там норм, але тільки почали розвивати та продавати.

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

5 годин тому, standov сказав:

Замкніть %unit% на kW бо ви зараз виводите просто в базових юнітах айтема, без перерахунку 

Я це так й не перевірив, думаю б це спрацювало, але є одне але - це мій кастомний аддон і я можу перекомпілювати та замінити, але це не правильний шлях, бо не буде кожен це робити щоб просто поміняти як воно відображається. Я знайшов правильний шлях - йдемо у перелік айтемов, обираємо той що треба та обираємо "Add metadata", а там обираємо "StateDescription" та у поле pattern пишемо "%.2f kW". Воно впливає тільки на відображення.

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

1 минуту назад, k-master сказал:

Я це так й не перевірив, думаю б це спрацювало, але є одне але - це мій кастомний аддон і я можу перекомпілювати та замінити, але це не правильний шлях, бо не буде кожен це робити щоб просто поміняти як воно відображається. Я знайшов правильний шлях - йдемо у перелік айтемов, обираємо той що треба та обираємо "Add metadata", а там обираємо "StateDescription" та у поле pattern пишемо "%.2f kW". Воно впливає тільки на відображення.

я це і мав на увазі, просто я звик айтеми в файлах зберігати (старовер) і там прямо в label пишеш паттерн і воно підхватує, в UI там да якось через мету

Number:Volume GasInput_VolumeMinute "Споживання за хвилину [%.3f m3]" <pipe_gauge> (GasInput) ["Measurement", "Gas"]

 

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

7 часов назад, k-master сказал:

Щось вийшло, в принципі саме складне то було чим малювати схему. Правда щось не виходить форматувати потужність в кіловатах замість ватт.

image.thumb.png.d06c328f0ce096f9e77441d48a5d7a7f.png

 

 

 

А схема відповідає дійсності?

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

4 хвилини тому, standov сказав:

я це і мав на увазі, просто я звик айтеми в файлах зберігати (старовер) і там прямо в label пишеш паттерн і воно підхватує, в UI там да якось через мету

Number:Volume GasInput_VolumeMinute "Споживання за хвилину [%.3f m3]" <pipe_gauge> (GasInput) ["Measurement", "Gas"]

 

Коли я починав тестувати я теж зберігав у файлах, стара версія так й працює. А ця нова інсталяція вже через UI бо це здається у майбутньому буде єдиний шлях. В мануалах для девелоперів пишуть що ви повинні надавати приклади для текстових конфігів бо багато хто ще так використовує. Тобто воно є бо поки багато користувачів але мабуть будуть випілювати, а може й ні.

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

Только что, k-master сказал:

це здається у майбутньому буде єдиний шлях

в форумах хтось з ментейнерів заспокоював що нема планів то вимикати бо, я так зрозумів, вони самі так роблять ) Мені не подобається в UI бо то не покладеш в гітхаб на всяк випадок, ну як мінімум без танців з бубном

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

2 минуты назад, k-master сказал:

У цілому - так

Тоді щось не так з підключенням електрокотла

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

2 хвилини тому, Tamburello сказав:

Тоді щось не так з підключенням електрокотла

Там чомусь при експорті поїхало то підключення, я вже потім побачив. Воно мені поки не заважає. У реальності електрокотел паралельно бочке, з зворотнім клапаном на подачі. Мне зараз більше цікавить інтеграція та можливість керування, а малюнок можна поміняти у будь-який момент. Коли буде час та натхнення то може пошукаю інший додаток. Бо ця схема здається гарною, але наприклад нормального зворотного клапана у каталозі немає. Тому й на схемі їх нормальних немає. Та й малювати там не дуже зручно. Коли я нормально протестую інтеграцію цього котла з опенхабом то під час оформлення документацію намалюю нормально і як приклад покладу у документацію. 

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

14 хвилин тому, standov сказав:

в форумах хтось з ментейнерів заспокоював що нема планів то вимикати бо, я так зрозумів, вони самі так роблять ) Мені не подобається в UI бо то не покладеш в гітхаб на всяк випадок, ну як мінімум без танців з бубном

Та я теж згоден що текст краще, бо можна мати тестовий та реальний і переносити у реальний тільки після тестів. Там би зробити якийсь експорт UI в конфіг та навпаки, бо зараз наскільки я пам'ятаю айтем доданий через конфіг не можна редагувати в UI. 

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

Только что, k-master сказал:

Там би зробити якийсь експорт UI в конфіг та навпаки

є і імпорт і десь експорт бачив але не пробував
image.thumb.png.2a9bde11647032f6c4ac1cf40d4c06f2.png

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

2 хвилини тому, standov сказав:

є і імпорт і десь експорт бачив але не пробував
image.thumb.png.2a9bde11647032f6c4ac1cf40d4c06f2.png

Я пробував працює, але купа обмежень і у реальності потім треба фіксити

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

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

Маю певні незрозумілі приколи з одним з модбас-шлюзів, який працює на 5 штук реле ion8 - все наче працює нормально але інколи шлюз на запис регістрів заліпає на 1-2-3 секунди, тобто натурально команда з опенхаба вийшла, шлюз її отримав а далі незрозуміла пауза, відбувається рендомом. Вирішив спробувати інший шлюз, знайшов дуже цікаву залізку, в одному корпусі на дін-рейку 2 штуки ETH шлюза + ETH світч з додатковим портом для каскадування. Залізка натурально має 2 маки, піднімає два однакових сервіса на різних IP і в середині має 2 фізичних чіпи. В теорії розрахунок на то що я зможу 5 слейвів розкидати на 2 мастери без зайвого місця в щіті. Споживання поміряне на 24В меньше 1Вт. Є навіть POE.

По традиції розковиряв щоб подивитися організацію, в середині навіть розрядники є на RS, пропил в платі від дуги, та джампери на термінуючі резистори.

Називається це Waveshare 2-CH RS485 TO ETH (B)
Інструкція www.waveshare.com/wiki/2-CH_RS485_TO_ETH_(B)#/media/File:RS232_b_Manual_00512.jpg

Другий порт натурально фізично вісить на внутрішньому свічі, приєднаний до нього дивайс працює і бачить роутер.

Чи допомогло статистики поки не напрацьовано але штука дуже цікава.

PXL_20240321_192430963_MP.thumb.jpg.9eb62f729a37be5bddd409b1787e3a83.jpgPXL_20240321_192453838_MP.thumb.jpg.8f22d101e75b67f54639758b098543ea.jpgPXL_20240321_192438877.thumb.jpg.166b3cbd498566f8d519069a436ddc62.jpgPXL_20240321_192235229.thumb.jpg.80a4a5d30726cdaae94b3da79005caee.jpgPXL_20240321_192218207.thumb.jpg.e87cbf090a08537aa7e7c90405faa65f.jpg

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

  • 6 місяців потому...

Втілив в життя цікавий (мені) експеримент по комбінації PID+PWM регулювання.

VAV вентиляція з гівна та палок, оскільки ресурс вентсовских дефолтних засувок та найдешевших приводів belimo не може бути великим - одразу відмовився від чистого PID регулювання з плавним підкручуванням, в пользу конвертації "сигналу" PID в PWM (закрито/відкрито) з достатньо довгим інтервалом (30 хвилин). 


На практиці це працює досить непогано.

// уставка CO2
// в час сну підтримуємо в кабінеті 800ppm
// увесь інший час 550ppm
rules.JSRule({
    name: "Office CO2 Setpoint",
    triggers: [triggers.ItemStateChangeTrigger('Home_ModeInbed')],
    execute: (event) => {
        const is_bed = (event.newState == 'OPEN');

        if (is_bed) {
            items.VentilationOffice_COSetpoint.sendCommand('800');
        } else {
            items.VentilationOffice_COSetpoint.sendCommand('550');
        }
    }
});

// PID керування
// датчик фактичний OfficeHVAC_Co2 (netatmo)
// уставка VentilationOffice_COSetpoint
// цикл керування 5 хвилин, 
// PID дуже повільний, лише по 1му к-ту, бо велика інерційність
// результат PID конвертується в значення 0-100, де 50 це точка рівноваги
// результат записується в VentilationOffice_PWM
rules.JSRule({
    name: 'VentilationOffice PID rule',
    triggers: [
        triggers.PIDTrigger(
        'OfficeHVAC_Co2', 
        'VentilationOffice_COSetpoint', 
        0.5,
        0,
        0,
        1,
        5*60*1000,// loopTime
        undefined, 
        1, 
        100
        )
    ],
    execute: (event) => {
        let pwm = 50 + -1* parseFloat(event.receivedCommand);
        if (pwm > 100) pwm = 100;

        items.VentilationOffice_PWM.sendCommand(Math.round(pwm));
    },
    tags: ['Ventilation']
});

// PWM керування засувкою VentilationOffice_DumperSwitch
// цикл керування 30 хвилин, рівень 50 відповідає 15 хвилин відкрито, 15 закрито
rules.JSRule({
    name: 'VentilationOffice PWM rule',
    triggers: [
      triggers.PWMTrigger('VentilationOffice_PWM', 30*60)
    ],
    execute: (event) => {
      items.VentilationOffice_DumperSwitch.sendCommand(event.receivedCommand);
    }
});

В результаті отримав більш раціональний розподіл вентиляції та суттєве зменшення оборотів ПВУ (і відповідно ккд, втрати). Такої цікаво прослідкувати як це керування "слідкує" за людьми в будинку.
 

image.thumb.png.c94ff3f775e982e117437a091b383242.png

Десь в 6 ранку просинаються діти та дружина, діти починають бігати по першому поверху і в кабінеті, підвищується рівень, вентиляція підкидує в кабінет і вітальню.

я продовжую спати на другому але оскільки засувки не закриваються повністю то цього вистачає

діти йдуть в школу/садочок, дружина по своїм справам, вентиляція в кабінеті перекривається

в проміжку 12–13 я йду в кабінет і починається творчий процесс, вентиляція накидує туди, кімнати 2-го поверху весь цей час “закриті”. Активно працюю десь до 8 вечора

в 9 вечора діти йдуть на другий поверх спати, вентиляція вмикається там, десь в 3 ночі йду спати я, вентиляція в спальнях виходить на максимум.

Детальніше написав в блозі.

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

  • 3 тижні потому...

Раптово виникла проблема яку ніхто не міг передбачити.

Малий нащадок ходить по хаті ти смикає з розеток все до чого може дотягнутися, на цьому тижні вимкнув з розетки метеостанцію, через що перестало адекватно працювати регулювання вентиляції.

Вирішив зробити простеньке правило, яке би стучало в телеграм коли певні дивайси стають не доступні, стучати не одразу а за якийсь час, бо бувають ситуації коли шось десь "мигнуло", якщо дивайс "пішов" та "повернувся" за якийсь заданий проміжок часу, то такі ситуації ігноряться.

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

Наразі задав всі метеостанції Netatmo, в процесі буду додавати інші прилади.

const bot = require('openhab-telegram').dovgodko;
const history = require('openhab-history').Device;

// thing = debounce (secs)
const devices = {
    'netatmo:home-coach:home:coach1': 60,
    'netatmo:home-coach:home:coach2': 60,
    'netatmo:weather-station:home:inside': 60,
    'netatmo:outdoor:home:inside:outside': 60
};

let t = [];
for (const [uuid, secs] of Object.entries(devices)) {
    t.push(triggers.ThingStatusChangeTrigger(uuid));
};

let timers = {};

rules.JSRule({
    name: "Devices offline",
    triggers: t,
    execute: (event) => {
        const uuid = event.thingUID;

        if (!(uuid in devices)) return;

        if (event.newStatus != 'ONLINE' && event.oldStatus == 'ONLINE') {
            timers[uuid] = setTimeout(function(status, uuid) {
                // offline
                let message = things.getThing(uuid).label + ' - втрачено зв\'язок ('+status+')';

                bot.alert(message);
                history.warning(message);

                clearTimeout(timers[uuid]);
                delete timers[uuid];
            }, devices[uuid]*1000, event.newStatus, uuid);
        } else if (event.newStatus == 'ONLINE') {
            if (uuid in timers) {
                clearTimeout(timers[uuid]);
                delete timers[uuid];
            } else {
                // online
                let message = things.getThing(uuid).label + ' - відновлено зв\'язок ('+event.newStatus+')';

                bot.message(message);
                history.recover(message);
            }
        }
    }
});

image.png.b4c3b614f6fd822c55beefff5e3081d7.png

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

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

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

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

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

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

Увійти

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

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