Данный раздел предназначен для русскоязычных пользователей. Если вы владеете английским, рекомендуем также просмотреть общую ветку обсуждений на английском.
alv1home
Posts: 91 Joined: 24 Jun 2015 22:04
Post
by alv1home » 24 Jun 2015 23:24
Пытаюсь понять, как "прикрутить" Zipato RGBW. Новые версии zway вроде работают с лампой, но как-то...
В версии r41 появляются 4-е устройства: Dimmer, Color, ColdWhite, SoftWhite. Сколько не крутил их - все чушь.
мой тестик wrote:
Zipato.png (48.57 KiB) Viewed 13941 times
Может кто подскажет как с этим чудом (Zipato) работать.
В идеале: цвет плавно меняется (RGB), по событию RGB отключается - включается белый. И обратно.
PoltoS
Posts: 7579 Joined: 26 Jan 2011 19:36
Post
by PoltoS » 25 Jun 2015 02:02
Вообще последний раз, когда тестировали, работало из коробки - Dimmer - это общий на всё, Color - цвет, ColdWhite и SoftWhite - два разных белых. А в экспертном режиме работает?
alv1home
Posts: 91 Joined: 24 Jun 2015 22:04
Post
by alv1home » 25 Jun 2015 07:11
В эксрертном работает как бинарный переключатель вкл/откл (белый). Хотя приссутствует полоса прокрутки от 0 до 99, но не активна.
И для справки (может пригодится): Application version 1.6, SDK version 6.51.01.
alv1home
Posts: 91 Joined: 24 Jun 2015 22:04
Post
by alv1home » 25 Jun 2015 09:23
И ещё.
Если по циклу (setInterval) вызывать vDev.performCommand("exact", args) (кстати, работает только после Basic.Set(255)) каждые 5сек и меньше, то razberry фактически умирает, хотя нагрузка на процессор маленькая. Думаю: логирование. Пишет так много, что железка не справляется (cd карта хорошая).
PoltoS
Posts: 7579 Joined: 26 Jan 2011 19:36
Post
by PoltoS » 26 Jun 2015 02:43
не должен умирать. код в студию!
alv1home
Posts: 91 Joined: 24 Jun 2015 22:04
Post
by alv1home » 27 Jun 2015 01:52
Код простой - пока проба пера
index.js wrote: Code: Select all
// ----------------------------------------------------------------------------
// --- Class definition, inheritance and setup
// ----------------------------------------------------------------------------
function WWRGB (id, controller) {
WWRGB.super_.call(this, id, controller);
}
inherits(WWRGB, AutomationModule);
_module = WWRGB;
// ----------------------------------------------------------------------------
// --- Module instance initialized
// ----------------------------------------------------------------------------
WWRGB.prototype.init = function (config) {
WWRGB.super_.prototype.init.call(this, config);
var self = this;
this.iStep = 0;
this.iWhiteSoft = 0;
this.iWhiteCold = 0;
this.iRed = 0;
this.iGreen = 0;
this.iBlue = 0;
this.vDev = self.controller.devices.create({
deviceId: "GroupWWRGB_" + this.id,
defaults: {
deviceType: "switchBinary",
metrics: {
icon: 'switch',
title: 'Group WWRGB ' + this.id,
level: 'off'
}
},
overlay: {
deviceType: "switchBinary",
metrics: {}
},
handler: function (command, args) {
if (command === "off") {
console.log(" *** WWRGB *** Вызов clearInterval");
if (this.timer) clearInterval(this.timer);
}
self.config.devices.forEach(function(dev) {
if (dev.active) {
var vDev = self.controller.devices.get(dev.device);
if (vDev) {
if (command === "on") {
vDev.performCommand("exact", { red:0,green:0,blue:0 });
vDev.performCommand("on");
}
if (command === "off") {
vDev.performCommand("exact", { red:0,green:0,blue:0 });
vDev.performCommand("off");
}
}
}
});
this.set("metrics:level", command);
if (command === "on") {
console.log(" *** WWRGB *** Вызов setInterval");
this.timer = setInterval(function() {
self.NextStep(self);
},
self.config.frequency);
}
},
moduleId: this.id
});
};
WWRGB.prototype.stop = function () {
if (this.vDev) {
this.controller.devices.remove(this.vDev.id);
this.vDev = null;
}
WWRGB.super_.prototype.stop.call(this);
};
// ----------------------------------------------------------------------------
// --- Module methods
// ----------------------------------------------------------------------------
WWRGB.prototype.NextStep = function(instance) {
var self = instance,
moduleName = "WWRGB",
langFile = self.controller.loadModuleLang(moduleName);
if ((self.iStep >= 0) && (self.iStep <= 510)) {
if (self.iStep <= 255) self.iRed = self.iStep;
else self.iRed = 510 - self.iStep;
}
if ((self.iStep >= 511) && (self.iStep <= 1021)) {
if (self.iStep <= 766) self.iGreen = self.iStep - 511;
else self.iGreen = 1021 - self.iStep;
}
if ((self.iStep >= 1022) && (self.iStep <= 1532)) {
if (self.iStep <= 1277) self.iBlue = self.iStep - 1022;
else self.iBlue = 1532 - self.iStep;
}
console.log(" *** WWRGB *** MyTime \'" + (new Date()).getTime() + "\':");
self.config.devices.forEach(function(dev) {
if (dev.active) {
var vDev = self.controller.devices.get(dev.device);
if (vDev) {
console.log(" *** WWRGB *** set on " + self.iStep + ": "
+ self.iWhiteSoft + ", "
+ self.iWhiteCold + ", "
+ self.iRed + ", "
+ self.iGreen + ", "
+ self.iBlue
);
//zway.devices[3].instances[0].SwitchColor.SetMultiple([2,3,4],[self.iRed,self.iGreen,self.iBlue],2);
//zway.devices[3].instances[0].SwitchColor.Set(0,self.iWhiteSoft);
//zway.devices[3].instances[0].SwitchColor.Set(1,self.iWhiteCold);
//zway.devices[3].instances[0].SwitchColor.Set(2,self.iRed);
//zway.devices[3].instances[0].SwitchColor.Set(3,self.iGreen);
//zway.devices[3].instances[0].SwitchColor.Set(4,self.iBlue);
var args = { red:self.iRed,green:self.iGreen,blue:self.iBlue };
vDev.performCommand("exact", args);
}
}
self.iStep += 15;
if (self.iStep > 1532) self.iStep = 0;
});
};
PoltoS
Posts: 7579 Joined: 26 Jan 2011 19:36
Post
by PoltoS » 28 Jun 2015 04:11
А self.config.frequency чему равно?
alv1home
Posts: 91 Joined: 24 Jun 2015 22:04
Post
by alv1home » 28 Jun 2015 12:44
Сейчас ставлю 5000. Еще терпимо - просто "тормоза". На 1000 - пришлось пустить железку в ребут. Файл z-way-server.log растет сумасшедшими темпами: последний был более 1M в архиве (потер уже, размер самого файла не скажу). Каждый вызов performCommand - это несколько десятков строчек в логе.
PoltoS
Posts: 7579 Joined: 26 Jan 2011 19:36
Post
by PoltoS » 29 Jun 2015 02:16
Может у Вас карточка медленная и логи тормозят, а не софт. Попробуйте логи в syslog отправлять или просто log-level изменить на 4 или даже 6.
alv1home
Posts: 91 Joined: 24 Jun 2015 22:04
Post
by alv1home » 05 Jul 2015 23:32
Zipato заработало в v2.0.2-rc1.