Сценарии в intraHouse Cherry



  • @Alexulik:

    Подскажите, как запустить сценарий из сценария?

    В настоящий момент это не реализовано.
    @intrapro:

    сейчас идет переработка API сценариев

    Там будет возможность запускать сценарии из сценариев.



  • @intrapro:

    А почему частичное? Вроде задача решается - один мультсценарий, к которому привязываете датчики, которые должны по режимам переключаться - 14 штук :), а уставки - у каждого свои

    Да, Вы правы - с таким мультисценарием логика работает как надо - по всем 14 зонам. Осталось подключить железо к iH и проверить как работает в реальности.



  • @sergeyygr:

    Всем Доброе утро!

    Подскажите пожалуйста как решить одну проблемку!

    Имеется система отопления, прекрасно управляемая IH. Котел, обогрев трубы ввода воды получают информацию от датчиков, подключенных по шине 1W через контроллер MegaD 2560. Ну и все остальное тоже управляется данными контроллерами. В общем я просто решил активировать режим "авто" и доверить автоматике управлять температурой в комнатах раздельно. Ранее все было нормально, а неделю назад при включении этого режима начали мигать иконки переключаясь с вкл на выкл и так далее в цикле. Реле также отрабатывает эти команды. Неделю пытался экспериментальным путем найти причину, остановился на том, что команду эту все таки дает именно сценарий. Хотя подогрев ввода и Котел работают отлично, в автоматическом режиме.

    Похоже, проблема с инверсными выходами в автоматическом режиме. Проверим.

    У вас в сценарии используются команды aon-aoff?

    Можно текст сценария?



  • @sergeyygr:

    Ммм… Только обогрев ввода тоже с инверсией и глюка такого не наблюдается. Правда сценарий там немного другой. Сейчас попробовал, актуатор отопления переподключил на "работающий" сценарий и результат тот же. Правда заметил то, что произвольное переключение актуатора прекращается при достижении показания датчика более 10 ти градусов (radiator100_1 переключаться прекратил. Подожду пока температура поднимется в другой комнате и проверю.

    А случайно для датчика температуры не выставлен диапазон от 10 градусов?

    С установкой флага ошибки меньше 10?

    Можно посмотреть в журнале датчика температуры



  • Если ошибки нет, тогда зацикливание с датчиком температуры скорее всего не связано.

    Попробуйте так:

    check() {
    return bat.auto && ( (bat.dval == 0)&&(Number(dt.aval) <= Number(dt.defval)-0.5) || (bat.dval == 1)&&(Number(dt.aval) >= Number(dt.defval) ) );
    },
    
    start() {
    	if (bat.dval == 0) {
    		this.do(bat, "aon");
    	} else {
    		this.do(bat, "aoff");
    	}
    }	
    
    
    

    @sergeyygr:

    И еще интервалы показаний датчиков не получается задать в плагине. Датчики передают показания как вздумается. По шине I2C может меняться 2 раза в секунду при установке интервала опроса 15 секунд. По шине 1W - один раз в 25-30 секунд при установке 5 секунд. И изменить не получается. Может плагин виноват? (или мои кривые руки))))

    Руки вероятно не виноваты 🙂

    По 1W через MegaD помнится есть минимальное время отклика как раз порядка 20-25 сек. Там же последовательный опрос цепочки датчиков

    По шине I2C - нужно посмотреть лог, скиньте, пригодится, когда будем плагин переделывать



  • @sergeyygr:

    Такой вариант сценария пробовал, не помогло(((

    А в отладчике что? В рабочих сценариях конкретно по этому сценарию?

    Еще можно временно добавить логирование :

    start() {
      if (bat.dval == 0) {
         this.log('Температура '+dt.aval+'  уставка '+dt.defval+'  Батарея '+bat.dval+' -> ВКЛЮЧАЕМ');
         this.do(bat, "aon");
      } else {
        this.log('Температура '+dt.aval+'  уставка '+dt.defval+'  Батарея '+bat.dval+' -> ВЫКЛЮЧАЕМ');
       this.do(bat, "aoff");
     }
    }
    
    


  • @sergeyygr:

    При температуре в помещении 10 градусов все нормально, режим авто работает, уставку датчика делаешь больше 10 ти - нормально, актуатор включается. Сейчас температура в помещении упала ниже 9,28 - началась "чихарда" с актуатором.

    лог сценария высылаю

    Чудеса 🙂 А так?

    start() {
      this.log('Температура '+dt.aval+' уставка '+dt.defval+'  Батарея '+bat.dval);
    
      if (bat.dval == 0 && (Number(dt.aval) < Number(dt.defval))) {
         this.log(dt.aval+' < '+dt.defval+ ' -> ВКЛЮЧАЕМ');
         this.do(bat, "aon");
      } 
    
      if (bat.dval == 1 && (Number(dt.aval) > Number(dt.defval))) {
         this.log(dt.aval+' > '+dt.defval+ ' -> ВЫКЛЮЧАЕМ');
       this.do(bat, "aoff");
     }
    }
    
    


  • @sergeyygr:

    Работает!!!

    Постараемся исправить. Спасибо вам за тестирование 🙂



  • Попробуйте сделать так. Найти папку /var/lib/intrahouse-c/projects/<имя проекта>/scenes/script/

    В этой папке хранятся файлы сценариев с расширением js

    Удалите последний редактированный сценарий. Или перенесите его себе, чтобы сохранить.

    После удаления, сервер надо перезагрузить.



  • Тема закрыта в связи с выходом новой версии API сценариев.


Авторизуйтесь, чтобы ответить