Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Русский
  3. ioBroker
  4. Скрипты
  5. ioBroker скрипты
  6. Автоматизация света и вытяжки в ванной по датчику движения и влажности (с использованием данных из sql)

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    311

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.4k

Автоматизация света и вытяжки в ванной по датчику движения и влажности (с использованием данных из sql)

Geplant Angeheftet Gesperrt Verschoben ioBroker скрипты
12 Beiträge 6 Kommentatoren 6.1k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • H Offline
    H Offline
    hawkeye
    schrieb am zuletzt editiert von
    #3

    Спасибо, но немного не то.

    В моём случае я хочу чтобы включение происходило по росту влажности, а не по абсолютному значению.

    Абсолютное значение по моим наблюдениям сейчас гуляет от 10 до 30%, летом думаю разбег будет ещё больше, но когда кто-то идёт в душ влажность по показаниям датчика в течении минуты повышается резко на 20-30%. По этому росту я хочу определять, что кто-то там ещё есть, несмотря на то, что от датчика движения нет сообщений, поскольку как только заходишь в душевую кабинку её стекла экранируют тепло от тела и датчик движения не работает.

    1 Antwort Letzte Antwort
    0
    • I Offline
      I Offline
      instalator
      schrieb am zuletzt editiert von
      #4

      @hawkeye:

      Спасибо, но немного не то.

      В моём случае я хочу чтобы включение происходило по росту влажности, а не по абсолютному значению.

      Абсолютное значение по моим наблюдениям сейчас гуляет от 10 до 30%, летом думаю разбег будет ещё больше, но когда кто-то идёт в душ влажность по показаниям датчика в течении минуты повышается резко на 20-30%. По этому росту я хочу определять, что кто-то там ещё есть, несмотря на то, что от датчика движения нет сообщений, поскольку как только заходишь в душевую кабинку её стекла экранируют тепло от тела и датчик движения не работает. `
      а с чего ты решил что влажность все время будет увеличиваться по 20% до 1000? Влажность поднимется практичски сразу и будет по немногу падать после включения вентилятора.

      Высокий уровень Децибел вреден для здоровья!

      http://blog.instalator.ru/

      1 Antwort Letzte Antwort
      0
      • H Offline
        H Offline
        hawkeye
        schrieb am zuletzt editiert von
        #5

        @instalator:

        а с чего ты решил что влажность все время будет увеличиваться по 20% до 1000? Влажность поднимется практичски сразу и будет по немногу падать после включения вентилятора. `
        Какие ещё 1000? См. график во вложении. (График слишком сглаженный, т.к. показания снимались каждые 5 минут).

        В целом собираюсь реализовать такай сценарий:

        1. чел входит в помещение душевой - срабатывает датчик движения, включает свет

        2. пока чел в душевой кабине датчик движение не работает - но влажность увеличивается, значит кто-то есть, соответсвенно свет гасить не нужно

        3. как только чел выходит из кабины - уже срабатывает датчик движения, а влажность постепенно начинает падать. За влажностью уже можно не следить - управлять светом по датчику движения.

        4. вентилятор планирую включать уже после выхода чела из душевой кабины, скажем через 5 минут на 5 минут или при превышении некоего порога. Нужны дополнительные испытания.

        Все эти телодвижения с влажностью нужны для учёта того, что кто-то есть в помещении.

        Соответсвенно по п.2 я задумался как проанализировать скорость роста значения. Использовать значения истории видится наиболее логичным. Просто следить за скоростью роста показания влажности. Судя по анализу тех графиков что имею - если скорость роста более 2% за минуту - явно кто-то решил "подушиться".

        Вобщем-то вроде процесс сдвинулся, если что - ещё спрошу.
        5570_2018-02-25-br-hum.png

        1 Antwort Letzte Antwort
        0
        • H Offline
          H Offline
          hawkeye
          schrieb am zuletzt editiert von
          #6

          Вот что получилось.

          megadd.0.p31_P31 - датчик влажности

          megadd.0.p32_P32 - датчик движения

          megadd.1.p25_P25 - реле света

          megadd.0.p8_P8 - реле вытяжки

          `var timer_vanna;
          var timer_vanna_vent;
          var flag_motion_vanna = false;
          var flag_hum = false;
          
          on({id: 'megadd.0.p32_P32', change: 'any'}, function (obj) { 
                  if (obj.newState.val === false){
                      flag_motion_vanna = true;
                      flag_hum = false;
                      clearTimeout(timer_vanna);
                      if (getState('megadd.1.p25_P25').val === false) {
                          setState('megadd.1.p25_P25', true);
                      }
                  }else if (obj.newState.val === true)
                  {
                      timer_vanna = setTimeout(function() {
                          flag_motion_vanna = false;
                          if (getState('megadd.0.p32_P32').val === true && flag_hum === false) {
                              setState('megadd.1.p25_P25', false); 
                          } 
                      }, 40000);
                  }
          });
          
          schedule({second: [0, 20, 40]}, function () {
              var end = new Date().getTime();
              var DT1;
              var DT = 0;
              sendTo('sql.0', 'getHistory', {
                  id: 'megadd.0.p31_P31_humidity',
                  options: {
                  end: new Date().getTime(),
                  count: 10,
                  aggregate: 'onchange'
                  //аggregate: 'm4' // or 'none' to get raw values
                  }
              }, function (result) {
              DT1=0;
              for (var i = 0; i < result.result.length; i++) {
                  //console.log(result.result[i].id + ' D= ' + new Date(result.result[i].ts).toISOString()+' V=' +result.result[i].val);
                  Hprev = result.result[i].val;
                  DT1=DT1+result.result[i].val;
                  //console.log('Rows: ' + JSON.stringify(result.result));
              }
              DT1=DT1/10;
              Htek=getState('megadd.0.p31_P31_humidity').val;
              DT=Htek-DT1;
              //console.log('DT='+DT+'('+ Htek+'-'+DT1+')');
              if (DT>=2 && flag_hum === false){
                      flag_hum = true;
                      console.log('flag_hum=true DT='+DT+'>2');
                      if (getState('megadd.1.p25_P25').val === false) {
                          setState('megadd.1.p25_P25', true);
                          console.log('Был выключен - включаю');
                      }
              }
              else if (DT<-1 && flag_hum === true) { 
                  flag_hum = false; 
                  console.log('flag_hum=false DT='+DT+'<-1');
                  if (flag_motion_vanna === false) {
                      console.log('Запуск таймера на отключение света');
                      timer_vanna = setTimeout(function() {
                          if (getState('megadd.0.p32_P32').val === true && flag_hum === false) {
                              setState('megadd.1.p25_P25', false); 
                          }
                      }, 40000);
                  }
              }
              if (DT<-2) { 
                  console.log('DT='+DT+' Запуск таймера на выключение вытяжки');
                  setState('megadd.0.p8_P8', true); 
                  clearTimeout(timer_vanna_vent);
                  timer_vanna_vent = setTimeout(function() {
                      setState('megadd.0.p8_P8', false); 
                  }, 185000);
              }
              });
          });` [/i][/i][/i][/i][/i]
          
          1 Antwort Letzte Antwort
          0
          • P Offline
            P Offline
            Palko
            schrieb am zuletzt editiert von
            #7

            Добрый день.

            Кроме всего прочего, посмотрите в сторону микроволновых датчиков движения.

            Для них стеклянная перегородка не препятствие.

            iobroker+Beckhoff_BC9000+…

            1 Antwort Letzte Antwort
            0
            • A Offline
              A Offline
              algar
              schrieb am zuletzt editiert von
              #8

              Подниму старую тему. Актуально для тех кто пользует InfluxDB.

              Для себя проблему идентификации повышения\понижения температуры (ну или других показателей) и скорости таких изменений решил следующим скриптом

              function getRate(id) {
                  var rate = 0;
              
                  sendTo('influxdb.0', 'query', 'SELECT DERIVATIVE(mean(value), 1h) FROM \"'+id +'\" WHERE time > now() - 2h GROUP BY time(1h) fill(linear)', function (result) {
                  if (result.error) {
                      console.error(result.error);
                      rate=0;
                  } else {
                       var res=JSON.parse(JSON.stringify(result.result[0]));
                       if (typeof res[0]=="undefined") {rate=0} else {rate = Math.round(res[res.length-1].derivative*100)/100;} 
                       setState(id+'.tempDir1h', rate, true);
                  }
              });
              
              }
              
              

              данный скрипт использует стандартную функцую influxDB DERIVATIVE, которая возвращает скорость изменения показателя за указанный в параметре промежуток времени.

              Скрипт берет данные из базы за последние 2 часа, усредняет их по часовым интервалам и возвращает скорость изменения за последний час. Отричательные значения говорят о снижении показателя, положительные об увеличении.

              1 Antwort Letzte Antwort
              0
              • A Offline
                A Offline
                andrey99986
                schrieb am zuletzt editiert von
                #9

                Тем кто ставит вентилятор в квартире в отверстие естественной вентиляции (ЕВ) имейте ввиду что выключенный вентилятор уменьшает тягу ЕВ в ~10 раз. Если у вас всего 2 таких отверстия одно на кухне, другое в ванной и в одно их них поставить вентилятор то можно сказать что вы в среднем ухудшили вентиляцию (за счёт вытяжки) в 2 раза для квартиры в целом. Для ванной вентиляция при выключенном ухудшится в ~10 раз.

                Это легко проверяется датчиками CO2. Чтобы проветрить квартиру придётся не просто приоткрывать окно на маленькую щель, а делать сквозное проветривание.Так как тяги 1 лишь кухонной вытяжки не хватает. А если и в кухонной вытяжке поставили только периодически работающий вентилятор - то вообще всё плохо будет.

                1 Antwort Letzte Antwort
                0
                • P Offline
                  P Offline
                  Pooh
                  schrieb am zuletzt editiert von
                  #10

                  У меня выключенный вентилятор крутиться от естественного потока (некоторые вентиляторы имеют клапан, да…)

                  https://play.google.com/store/apps/details?id=com.roy.royclub - код: UMI201155
                  https://play.google.com/store/apps/details?id=com.blockchainvault - код приглашения: Freepooh
                  https://play.google.com/store/apps/details?id=games.bee.app - код приглашения: freepooh
                  https://www.timestope.com/freepooh - witness code: freepooh

                  1 Antwort Letzte Antwort
                  0
                  • A Offline
                    A Offline
                    andrey99986
                    schrieb am zuletzt editiert von
                    #11

                    @Pooh:

                    У меня выключенный вентилятор крутиться от естественного потока (некоторые вентиляторы имеют клапан, да…) `

                    То что он крутится это не значит что пропускная способность канала не снизилась. А клапаны от ЕВ откроются только на сильном перепаде высот и в определённое время года. Если до крыши этажей меньше 4, а в доме теплей чем на улице менее 5 градусов - уверен что клапан даже не откроется.

                    Рассчитать это очень сложно, но замерив по факту производительность высокочувствительным датчиком потока или косвенно по уровню CO2 (при щелевом приоткрытом окне) - выводы делаются однозначные.

                    1 Antwort Letzte Antwort
                    0
                    • P Offline
                      P Offline
                      Pooh
                      schrieb am zuletzt editiert von
                      #12

                      я имел в виду такой клапан:
                      2689_klapan.jpg
                      бывают и другие, жесткие на пружинках

                      совершенно бесполезная вещь, сразу снял

                      а так да, не спорю, естественная вентиляция через выключенную вытяжку хуже

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

                      https://play.google.com/store/apps/details?id=com.roy.royclub - код: UMI201155
                      https://play.google.com/store/apps/details?id=com.blockchainvault - код приглашения: Freepooh
                      https://play.google.com/store/apps/details?id=games.bee.app - код приглашения: freepooh
                      https://www.timestope.com/freepooh - witness code: freepooh

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      333

                      Online

                      32.5k

                      Benutzer

                      81.7k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe