Сценарии в intraHouse Cherry
-
Ммм… Только обогрев ввода тоже с инверсией и глюка такого не наблюдается. Правда сценарий там немного другой. Сейчас попробовал, актуатор отопления переподключил на "работающий" сценарий и результат тот же. Правда заметил то, что произвольное переключение актуатора прекращается при достижении показания датчика более 10 ти градусов (radiator100_1 переключаться прекратил. Подожду пока температура поднимется в другой комнате и проверю.
А случайно для датчика температуры не выставлен диапазон от 10 градусов?
С установкой флага ошибки меньше 10?
Можно посмотреть в журнале датчика температуры
-
Ммм… Только обогрев ввода тоже с инверсией и глюка такого не наблюдается. Правда сценарий там немного другой. Сейчас попробовал, актуатор отопления переподключил на "работающий" сценарий и результат тот же. Правда заметил то, что произвольное переключение актуатора прекращается при достижении показания датчика более 10 ти градусов (radiator100_1 переключаться прекратил. Подожду пока температура поднимется в другой комнате и проверю.
А случайно для датчика температуры не выставлен диапазон от 10 градусов?
С установкой флага ошибки меньше 10?
Можно посмотреть в журнале датчика температуры
-
И еще интервалы показаний датчиков не получается задать в плагине. Датчики передают показания как вздумается. По шине I2C может меняться 2 раза в секунду при установке интервала опроса 15 секунд. По шине 1W - один раз в 25-30 секунд при установке 5 секунд. И изменить не получается. Может плагин виноват? (или мои кривые руки))))
-
Если ошибки нет, тогда зацикливание с датчиком температуры скорее всего не связано.
Попробуйте так:
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"); } }
И еще интервалы показаний датчиков не получается задать в плагине. Датчики передают показания как вздумается. По шине I2C может меняться 2 раза в секунду при установке интервала опроса 15 секунд. По шине 1W - один раз в 25-30 секунд при установке 5 секунд. И изменить не получается. Может плагин виноват? (или мои кривые руки))))
Руки вероятно не виноваты
По 1W через MegaD помнится есть минимальное время отклика как раз порядка 20-25 сек. Там же последовательный опрос цепочки датчиков
По шине I2C - нужно посмотреть лог, скиньте, пригодится, когда будем плагин переделывать
-
Если ошибки нет, тогда зацикливание с датчиком температуры скорее всего не связано.
Попробуйте так:
> 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"); > } > } > >
И еще интервалы показаний датчиков не получается задать в плагине. Датчики передают показания как вздумается. По шине I2C может меняться 2 раза в секунду при установке интервала опроса 15 секунд. По шине 1W - один раз в 25-30 секунд при установке 5 секунд. И изменить не получается. Может плагин виноват? (или мои кривые руки))))
Руки вероятно не виноваты
По 1W через MegaD помнится есть минимальное время отклика как раз порядка 20-25 сек. Там же последовательный опрос цепочки датчиков
По шине I2C - нужно посмотреть лог, скиньте, пригодится, когда будем плагин переделывать
Такой вариант сценария пробовал, не помогло(((
-
Такой вариант сценария пробовал, не помогло(((
А в отладчике что? В рабочих сценариях конкретно по этому сценарию?
Еще можно временно добавить логирование :
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"); } }
-
Такой вариант сценария пробовал, не помогло(((
А в отладчике что? В рабочих сценариях конкретно по этому сценарию?
Еще можно временно добавить логирование :
> 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"); > } > } >
При температуре в помещении 10 градусов все нормально, режим авто работает, уставку датчика делаешь больше 10 ти - нормально, актуатор включается. Сейчас температура в помещении упала ниже 9,28 - началась "чихарда" с актуатором.
лог сценария высылаю
-
При температуре в помещении 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"); } }
-
При температуре в помещении 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"); > } > } >
Работает!!!
-
При температуре в помещении 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"); > > } > > } > >
Работает!!!
И так тоже работает
const script = {
check() {
return bat.auto && ((!bat.dval)&&(Number(dt.aval) <= Number(dt.defval)-0.5) || (bat.dval)&&(Number(dt.aval) >= Number(dt.defval)));
},
start() {
this.log('Температура '+dt.aval+' уставка '+dt.defval+' Батарея '+bat.dval);
if (!bat.dval && (Number(dt.aval) < Number(dt.defval))) {
this.log(dt.aval+' < '+dt.defval+ ' -> ВКЛЮЧАЕМ');
this.do(bat, "aon");
}
if (bat.dval && (Number(dt.aval) > Number(dt.defval))) {
this.log(dt.aval+' > '+dt.defval+ ' -> ВЫКЛЮЧАЕМ');
this.do(bat, "aoff");
}
}
};
-
-
Добрый день!
После сохранения отредактированного сценария теперь не могу зайти в список сценариев. Восстановление проекта из резервной копии не помогло. Список рабочих сценариев открывается. Как это лечится???
-
Попробуйте сделать так. Найти папку /var/lib/intrahouse-c/projects/<имя проекта>/scenes/script/
В этой папке хранятся файлы сценариев с расширением js
Удалите последний редактированный сценарий. Или перенесите его себе, чтобы сохранить.
После удаления, сервер надо перезагрузить.
-
Добрый день!
После сохранения отредактированного сценария теперь не могу зайти в список сценариев. Восстановление проекта из резервной копии не помогло. Список рабочих сценариев открывается. Как это лечится???
Помогло! Спасибо!
-
@intrahouse:
Попробуйте сделать так. Найти папку /var/lib/intrahouse-c/projects/<имя проекта>/scenes/script/
В этой папке хранятся файлы сценариев с расширением js
Удалите последний редактированный сценарий. Или перенесите его себе, чтобы сохранить.
После удаления, сервер надо перезагрузить.
Помогло! Спасибо!!!
-
Тема закрыта в связи с выходом новой версии API сценариев.