Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. Скрипты
    5. ioBroker скрипты
    6. Разделить число

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Разделить число

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      black_angel666 last edited by

      Всем привет! только учусь работать с 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. ну если пример будет и там и там, то вообще респект)))

      спасибо!

      1 Reply Last reply Reply Quote 0
      • I
        instalator last edited by

        @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 Reply Last reply Reply Quote 0
        • B
          black_angel666 last edited by

          ! @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?)))

          1 Reply Last reply Reply Quote 0
          • B
            black_angel666 last edited by

            ! Создал объекты в starline.0.lancer., battery1, battery2 и battery3. type указал "Число".
            ! далее установил драйвер javascript.
            ! создал скрипт в common, и туда скопировал данный скрипт. сохранил, запустил. Объект в javascript.0.lancer.battery1 создался (для чего он???)
            ! но значения в battery1…. не меняются...
            ! что я сделал не так?

            работает.

            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate

            764
            Online

            31.8k
            Users

            80.0k
            Topics

            1.3m
            Posts

            2
            4
            620
            Loading More Posts
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes
            Reply
            • Reply as topic
            Log in to reply
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            The ioBroker Community 2014-2023
            logo