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

Home Assistant Накопичення досвіду

mib

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

Є якийсь варіант робити бекапи певних папок/файлів з серверу НА? Встановив таке, але тут робиться бекап всього, а хотілося би просто вибрані файли/папки кудись закинути, на той же гугл диск чи робочий ПК, щоб мати збережену попередню версію файлів.

github.com/sabeechen/hassio-google-drive-backup

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

3 часа назад, TaurosRMK сказал:

Є якийсь варіант робити бекапи певних папок/файлів з серверу НА? Встановив таке, але тут робиться бекап всього, а хотілося би просто вибрані файли/папки кудись закинути, на той же гугл диск чи робочий ПК, щоб мати збережену попередню версію файлів.

github.com/sabeechen/hassio-google-drive-backup

Так вы можете его распаковать и там будут все файлы, там помимо нужных файлов еще и база

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

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

Є якийсь варіант робити бекапи певних папок/файлів з серверу НА? Встановив таке, але тут робиться бекап всього, а хотілося би просто вибрані файли/папки кудись закинути, на той же гугл диск чи робочий ПК, щоб мати збережену попередню версію файлів.

github.com/sabeechen/hassio-google-drive-backup

Поставити на ХА SSH sever та через WinSCP заходити на ХА

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

1 час назад, 2003 сказал:

Поставити на ХА SSH sever та через WinSCP заходити на ХА

Интересно на на по ssh rsynk поставить можно я про haos, а так то можно и samba nas поставить

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

12 годин тому, mib сказав:

Так вы можете его распаковать и там будут все файлы, там помимо нужных файлов еще и база

Зрозуміло, але якось не зручно. Потрібні мені тут і зараз деякі файли, треба зробити резервну копію, потім її розархівувати і витягнути звідти файли. Хочеться трохи простіше, як в звичайному провіднику. Але вже знайшов рішення )) встановив Samba Share, а на робочому ПК підключив мережеву папку, тепер є доступ до всіх папок на сервері НА. Можна писати код автоматизацій в зручних редакторах і потім закидувати на сервер для компіляції. Хоча доповлення VS Code також непогяно з цим справляється.

dou.ua/forums/topic/41520/

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

4 минуты назад, TaurosRMK сказал:

Зрозуміло, але якось не зручно. Потрібні мені тут і зараз деякі файли, треба зробити резервну копію, потім її розархівувати і витягнути звідти файли. Хочеться трохи простіше, як в звичайному провіднику. Але вже знайшов рішення )) встановив Samba Share, а на робочому ПК підключив мережеву папку, тепер є доступ до всіх папок на сервері НА. Можна писати код автоматизацій в зручних редакторах і потім закидувати на сервер для компіляції. Хоча доповлення VS Code також непогяно з цим справляється.

dou.ua/forums/topic/41520/

Samba nas посмотрите чуть функциональней и умеет работать с внешними винтами

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

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

Samba nas посмотрите чуть функциональней и умеет работать с внешними винтами

Та поки що і цього вистачає.

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

Тут варто зазначити що для кода/конфігів і тп нічого краще за git ще не вигадали. Робите пріватну репу на гітхабі і пушаєте туди ваші зміни, в тч з того самого vscode.

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

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

Тут варто зазначити що для кода/конфігів і тп нічого краще за git ще не вигадали. Робите пріватну репу на гітхабі і пушаєте туди ваші зміни, в тч з того самого vscode.

Та це типу так, у мене там навіть акк є ще з часів, коли я пробував себе в програмуванні, років так 10-12 назад. Але не пішло ))) Зараз я просто бавлюся з кодом в НА/ESPHome, якісь автоматизації і не більше того. Інколи просто треба "зберегтися" перед записом нової прошивки, щоб мати можливість відкотитися назад, або просто щоб був бекап.

Хоча, треба попробувати 🤔

image.png.802c47ca460ba9e29d9157d85d043341.png

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

Такой вопросик - не могу пока догнать

Если я хочу кормить инфлюксДб данными сенсоров - я в конфиге добавил
 

  tags:
    source: HA
  tags_attributes:
    - friendly_name
    - unit_of_measurement
  include:
    domains:
      - sensor
      - binary_sensor


А как ограничить сенсоры только от определенной интеграции? вручную каждый ид перечислять?

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

1 час назад, ЯД сказал:

А как ограничить сенсоры только от определенной интеграции? вручную каждый ид перечислять?

Смотря чего больше, либо сначала все запрещаете и потом нужное разрешаете или исключаете ненужное

А так да руками перечислять

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

С газовым котлом все получилось достаточно просто.
Нарисовал в графане пару графиков (сорри, не художник, и графану не юзал ))
Появился вопрос - как решать тему, когда апдейти по значениям приходять достаточно редко (кт значение не меняется) и может отсутствовать и 12 часов? На графике за счет этого линия начинается "с середины", тк предыдущее значение уже не попадает в выбраный таймфрейм

image.thumb.png.76dea6d14e3d5dc29f6dbc9b826fad24.png

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

13.01.2025 в 17:45, ЯД сказав:

А как ограничить сенсоры только от определенной интеграции? вручную каждый ид перечислять?

Якщо там є якийсь шаблон, бо якому та інтеграція називає сутності, то можна використати entity_globs:

influxdb:
  include:
    domains:
      - alarm_control_panel
      - light
    entity_globs:
      - sensor.*_occupancy

 

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

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

Появился вопрос - как решать тему, когда апдейти по значениям приходять достаточно редко (кт значение не меняется) и может отсутствовать и 12 часов?

Я цього не зміг побороти простим способом, бо в тому періоді часу, який заданий селектором, просто нема даних і логічно, що нічо не буде відображатись. Графана не має такої функції, щоб отримувати останнє відоме значення із-за меж вибраного діапазону, тому єдиний вихід – це писати кастомні запити, які це роблять, але то гєморно.

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

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

Появился вопрос - как решать тему, когда апдейти по значениям приходять достаточно редко (кт значение не меняется) и может отсутствовать и 12 часов?

Якщо у вас InfluxDB2, тобто той, що працює на Flux, то можна йти наступним шляхом:

import "date"

from(bucket: "home_assistant")
  |>range(start: date.sub(d: 24h, from: v.timeRangeStart), stop: v.timeRangeStop)
  |> filter(fn: (r) => r["entity_id"] == "yambms_yambms_requested_charge_voltage")
  |> filter(fn: (r) => r["_field"] == "value")
  |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: true)
  |> fill(usePrevious: true)
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)

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

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

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

Якщо у вас InfluxDB2, тобто той, що працює на Flux, то можна йти наступним шляхом:

import "date"

from(bucket: "home_assistant")
  |>range(start: date.sub(d: 24h, from: v.timeRangeStart), stop: v.timeRangeStop)
  |> filter(fn: (r) => r["entity_id"] == "yambms_yambms_requested_charge_voltage")
  |> filter(fn: (r) => r["_field"] == "value")
  |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: true)
  |> fill(usePrevious: true)
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)

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

Я поставил в1 )

Может стоит на в2 перейти, пока нет особо ничего)

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

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

Может стоит на в2 перейти, пока нет особо ничего)

Якщо не готові інвестувати багато часу у вивчення Flux, то не рекомендую. 

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

6 часов назад, ЯД сказал:

Я поставил в1 )

Может стоит на в2 перейти, пока нет особо ничего)

нема сенсу, флюкс та v2 вони прикопали, v3 буде без флюкса. Штука цікава але занадто непередбачувана вийшла, вони самі то визнали.

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

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

Штука цікава але занадто непередбачувана вийшла, вони самі то визнали.

Непередбачуваність була тільки в сприйнятті, бо без хорошої бази у функціональному програмуванні воно виглядає дико. Але якщо посидіти до почервоніння очей, то штука дуже гнучка. Я написав дуже багато аналітичних запитів, які на InfluxQL було б дуже важко зробити і надзвичайно важко відлагодити.

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

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

Я написав дуже багато аналітичних запитів, які на InfluxQL було б дуже важко зробити і надзвичайно важко відлагодити.

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

data = from(bucket: "home")
  |> range(start: v.timeRangeStart, stop:v.timeRangeStop)
  |> filter(fn: (r) => 
    (r._measurement == "VentilationHeater_OutputState" or
    r._measurement == "VentilationUnit_OutputTemperature" or
    r._measurement == "Ventilation_OutputTemperature")
  )
  |> aggregateWindow(every: 1m, fn: mean)
  |> group(columns: ["_measurement", "_field"])
  |> pivot(
      rowKey:["_time"], 
      columnKey:["_measurement"], 
      valueColumn:"_value"
  )

c_p = 1005.0    // [Дж/(кг·К)]
rho = 1.2       // [кг/м³]


result = data
  |> filter(fn: (r) => 
    r.VentilationHeater_OutputState > 0
  )
  |> map(fn: (r) => ({
    _time: r._time, 
    a: (6.0 * 3600.0 * float(v: r.VentilationHeater_OutputState)) / ( c_p * rho * (float(v: r.Ventilation_OutputTemperature) - float(v: r.VentilationUnit_OutputTemperature)) )
  }))
  |> yield()

result

якщо прибрати 

|> group(columns: ["_measurement", "_field"])

то воне на працює, причому окремі перший датасет працює, другий якщо підсунути заглушку то теж, але коли робиш комбінацію двох то віддає 0 без помилок, бо хз чого. це взагалі не піддається дебагу.
В редіті наткнувся що pivot праює "дивно" якщо в датасеті є певна комбінація тегів в даних (хоча на скільки знаю опенхаб теги не шле по дефолту) і що group інколи допомагає бо фактично все що робить - чистить дані від всього окрім зазначених колонок.

причому якщо в графані дивитися перший датасет з групуванням та без то вони виглядають тупо ідентично :)

тобто з одного боку таке зробити другими засобами скоріш за все не можливо але і флюкс працює дивно.

Проблема флюкса ще і в продуктивності, на досить тривіальні запити він витрачає надто великі ресурси.

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

16.01.2025 в 13:19, standov сказав:

тобто з одного боку таке зробити другими засобами скоріш за все не можливо але і флюкс працює дивно.

В мене такого не було, але тепер буду знати його "можливості".

16.01.2025 в 13:19, standov сказав:

Проблема флюкса ще і в продуктивності, на досить тривіальні запити він витрачає надто великі ресурси.

Я якось не звертав на це увагу. А що у вашому випадку тривіальний запит і з чим порівнюєте?

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

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

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

Тривіальний запит це вивести метріку в діапазоні дат, з аггрегейтвіндоу. Тобто це традиційна задача "намалювати в графані графік". В одному екземплярі це не проблема але коли в вас їх 50-100 і ще і стоїть автооновлення на 10 секунд то різниця по ресурсам з тим самим на influxql разюча. Проблема в тому що флюкс оперує великим датосетом і його дельтами колапсує до потрібного вам (дуже умовно, споощено але для пляснення покатіт) а ql оперує індексною ініормацію самого стораджа і вигружає вже максимально-потрібний датасет (але цого можливості обмежені). Умовно в першому випадку навантаження на cpu в іншому на диск та пам'ять. В рівних умовах перше закінчується значно швидше, але ви отримуєте значно більше можливостей, але для простих запитів воно і не треба.

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

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

мене такого не було, але тепер буду знати його "можливості

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

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

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

Тривіальний запит це вивести метріку в діапазоні дат, з аггрегейтвіндоу. Тобто це традиційна задача "намалювати в графані графік". В одному екземплярі це не проблема але коли в вас їх 50-100 і ще і стоїть автооновлення на 10 секунд то різниця по ресурсам з тим самим на influxql разюча.

В мене флюкс тільки вдома для Home Assistant і запити переважно такого плану, але метрик на дашборді максимум два десятки, тому не помічаю якогось сповільнення. Але я часто люблю експериментувати з всякою аналітикою, де багато мапінгу, агрегацій і пайвотів і тоді воно дійсно повільніше працює, але мені пофігу, бо ті кілька секунд погоди не робить. Ну і я один користувач, а на сервері 8 ядер.

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

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

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

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

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

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

Увійти

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

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