NEWS
Разделить число
-
Всем привет! только учусь работать с iobroker и прошу помощи.
Есть объект starline.0.lancer.battery там значение например 12.8, мне нужно это значение 1. разделить на 2 значения т.е. 12 и после точки 8 и что бы они писались в новые объекты и 2е, убрать из этого значения точку, т.е. что бы число стало 128 и сохранялось в новый объект. т.е. по результату работы скрипта или через node red, должно появится 3 новых объекта пример:
starline.0.lancer.battery1 = 12
starline.0.lancer.battery2 = 8
starline.0.lancer.battery3 = 128
это для меня пример, что бы понимать как работать с скриптами…. хотя больше стал нравится node red. ну если пример будет и там и там, то вообще респект)))
спасибо!
-
Всем привет! только учусь работать с iobroker и прошу помощи.
Есть объект starline.0.lancer.battery там значение например 12.8, мне нужно это значение 1. разделить на 2 значения т.е. 12 и после точки 8 и что бы они писались в новые объекты и 2е, убрать из этого значения точку, т.е. что бы число стало 128 и сохранялось в новый объект. т.е. по результату работы скрипта или через node red, должно появится 3 новых объекта пример:
starline.0.lancer.battery1 = 12
starline.0.lancer.battery2 = 8
starline.0.lancer.battery3 = 128
это для меня пример, что бы понимать как работать с скриптами…. хотя больше стал нравится node red. ну если пример будет и там и там, то вообще респект)))
спасибо! `
Можно сделать так. Но обьекты (starline.0.lancer.batteryХ) придется создать вручную так как из скрипта можно создавать только в ветке javascript! ````
createState('lancer.battery1', ''); //Создаст обьект в javascript.0.lancer.battery1
! on({id: "starline.0.lancer.battery", change: 'ne'}, function (obj) {
log('Напряжение батареи изменилось = ' + obj.state.val);
var val = obj.state.val.toString();
var array = val.split('.');
var battery1 = array[0];
var battery2 = array[1];
var battery3 = val.replace('.', '');log('battery1 = ' + battery1); log('battery2 = ' + battery2); log('battery3 = ' + battery3); setState('starline.0.lancer.battery1', battery1); setState('starline.0.lancer.battery2', battery2); setState('starline.0.lancer.battery3', battery3);
});
-
!
@instalator:
! >@black_angel666:Всем привет! только учусь работать с iobroker и прошу помощи.
Есть объект starline.0.lancer.battery там значение например 12.8, мне нужно это значение 1. разделить на 2 значения т.е. 12 и после точки 8 и что бы они писались в новые объекты и 2е, убрать из этого значения точку, т.е. что бы число стало 128 и сохранялось в новый объект. т.е. по результату работы скрипта или через node red, должно появится 3 новых объекта пример:
starline.0.lancer.battery1 = 12
starline.0.lancer.battery2 = 8
starline.0.lancer.battery3 = 128
это для меня пример, что бы понимать как работать с скриптами…. хотя больше стал нравится node red. ну если пример будет и там и там, то вообще респект)))
спасибо! `
Можно сделать так. Но обьекты (starline.0.lancer.batteryХ) придется создать вручную так как из скрипта можно создавать только в ветке javascript! ````
createState('lancer.battery1', ''); //Создаст обьект в javascript.0.lancer.battery1
! on({id: "starline.0.lancer.battery", change: 'ne'}, function (obj) {
log('Напряжение батареи изменилось = ' + obj.state.val);
var val = obj.state.val.toString();
var array = val.split('.');
var battery1 = array[0];
var battery2 = array[1];
var battery3 = val.replace('.', '');log('battery1 = ' + battery1); log('battery2 = ' + battery2); log('battery3 = ' + battery3); setState('starline.0.lancer.battery1', battery1); setState('starline.0.lancer.battery2', battery2); setState('starline.0.lancer.battery3', battery3);
});
```` `Огромное спасибо!
А не подскажите еще такие моменты:
1. куда надо этот скрипт писать.
2. какова логика выполнения скрипта, он при определенных действиях запускается или каждые сколько то секунд и т.д., было бы не плохо знать где это делается.
3. а как насчет node red?)))
-
! Создал объекты в starline.0.lancer., battery1, battery2 и battery3. type указал "Число".
! далее установил драйвер javascript.
! создал скрипт в common, и туда скопировал данный скрипт. сохранил, запустил. Объект в javascript.0.lancer.battery1 создался (для чего он???)
! но значения в battery1…. не меняются...
! что я сделал не так?работает.