1

Выгрузить в Excel все датчики всех объектов по типам

(22/06/2020 12:33:42 отредактировано darkpal)

Тема: Выгрузить в Excel все датчики всех объектов по типам

Хотим провести у себя в Wialon унификацию названий датчиков по типам. Для этого, как мне видится, проще всего будет выгрузить все датчики всех объектов в Excel и там уже работать с данными, а потом, возможно, через SDK или в крайнем случае вручную загрузить откорректированные данные. Можно ли это сделать штатными инструментами Wialon или нужно все это делать через тот же SDK?

2

Выгрузить в Excel все датчики всех объектов по типам

Re: Выгрузить в Excel все датчики всех объектов по типам

Нет для такого штатных средств. Только руками, только API, только хардкор...

3

Выгрузить в Excel все датчики всех объектов по типам

Re: Выгрузить в Excel все датчики всех объектов по типам

Получить эти данные совсем не сложно (проверено в браузере Chrome)

1) Логинитесь на hosting.wialon.com (или свой сайт wialon)
2) Нажимаете F12, переходите на вкладку Console
3) Вставляете кусочек кода, указанный ниже. Он собирает в "табличку" идентификатор объекта, его имя и имя датчика (каждый датчик отдельная строка). Результат копируется в буфер обмена
4) Открываете Excel, вставляете содержимое буфера обмена (проверено на Google Spreadsheets)

Код говорит сам за себя smile

const units = wialon.core.Session.getInstance().getItems('avl_unit')
let data = ''
for (let i = 0; i < units.length;i++){
    sensors = units[i].getSensors();

    for (let id in sensors) {
        data += units[i].getId() + '\t' +units[i].getName() + ' \t' + sensors[id].n + '\n'
    }
}

copy(data)
4

Выгрузить в Excel все датчики всех объектов по типам

Re: Выгрузить в Excel все датчики всех объектов по типам

shmi
Агонь! Работает как надо! А можно сюда еще добавить тип датчика и параметр?

Так чтобы поржать (а нам поплакать), примеры "перлов" некоторых сотрудников техподдержки:
Выгрузить в Excel все датчики всех объектов по типам
Выгрузить в Excel все датчики всех объектов по типам

  • Выгрузить в Excel все датчики всех объектов по типам
  • Выгрузить в Excel все датчики всех объектов по типам
5

Выгрузить в Excel все датчики всех объектов по типам

Re: Выгрузить в Excel все датчики всех объектов по типам

darkpal
На здоровье )

Добавил ещё 2 столбца: тип (системное имя, разберётесь) и параметр

let units = wialon.core.Session.getInstance().getItems('avl_unit')
let data = ''
for (let i = 0; i < units.length;i++){
    sensors = units[i].getSensors();

    for (let id in sensors) {
        data += units[i].getId() + '\t' +units[i].getName() + ' \t' + sensors[id].n + '\t' + sensors[id].t + '\t' + sensors[id].p + '\n'
    }
}

copy(data)
6

Выгрузить в Excel все датчики всех объектов по типам

(23/06/2020 10:22:05 отредактировано SanderAMC)

Re: Выгрузить в Excel все датчики всех объектов по типам

Вы только учтите, что если у вас в датчиках используются имена других датчиков в качестве части параметра (т.е. [...]), то при замене имен "в лоб" это все перестанет работать.

7

Выгрузить в Excel все датчики всех объектов по типам

Re: Выгрузить в Excel все датчики всех объектов по типам

Можно ли применить на сводные страницы?

8

Выгрузить в Excel все датчики всех объектов по типам

Re: Выгрузить в Excel все датчики всех объектов по типам

shmi пишет:

darkpal
На здоровье )

Добавил ещё 2 столбца: тип (системное имя, разберётесь) и параметр

let units = wialon.core.Session.getInstance().getItems('avl_unit')
let data = ''
for (let i = 0; i < units.length;i++){
    sensors = units[i].getSensors();

    for (let id in sensors) {
        data += units[i].getId() + '\t' +units[i].getName() + ' \t' + sensors[id].n + '\t' + sensors[id].t + '\t' + sensors[id].p + '\n'
    }
}

copy(data)

Добрый день!
А можно еще таким же методом выгрузить информацию по геозонам? интересует именно свойстово имя, описание и га.

  • Выгрузить в Excel все датчики всех объектов по типам
9

Выгрузить в Excel все датчики всех объектов по типам

Re: Выгрузить в Excel все датчики всех объектов по типам

Ну с площадью - не знаю, не вижу такого, вообще на возможности можно глянуть здесь: https://sdk.wialon.com/playground/demo/get_zone_params. Там снизу токен вписан, можно вбить свой токен и запустить скрипт наново - тогда можно свои геозоны посмотреть. По идее там можно и со скриптом побаловаться, если с javascript знакомство есть.

10

Выгрузить в Excel все датчики всех объектов по типам

Re: Выгрузить в Excel все датчики всех объектов по типам

BugTransContinental пишет:

Ну с площадью - не знаю, не вижу такого, вообще на возможности можно глянуть здесь: https://sdk.wialon.com/playground/demo/get_zone_params. Там снизу токен вписан, можно вбить свой токен и запустить скрипт наново - тогда можно свои геозоны посмотреть. По идее там можно и со скриптом побаловаться, если с javascript знакомство есть.

спасибо, посмотрю...

11

Выгрузить в Excel все датчики всех объектов по типам

Re: Выгрузить в Excel все датчики всех объектов по типам

alex1505 пишет:

Добрый день!
А можно еще таким же методом выгрузить информацию по геозонам? интересует именно свойстово имя, описание и га.

Добрый день

Геозоны лежат в ресурсе, поэтому сначала ищете интересующий ресурс и его ID

let resources = wialon.core.Session.getInstance().getItems('avl_resource');
for (let i = 0; i < resources.length; i++) {
    console.log(resources[i].getId(), resources[i].getName());
}

Далее копируете ID нужного ресурса в код вывода информации о геозонах

let resource = wialon.core.Session.getInstance().getItem(RESOURCE_ID);
let data = '';
resource.getZonesData(null, 0x11, function(code, geofences) {
    for (let i = 0; i < geofences.length; i++) {
        data += geofences[i].n + '\t' + geofences[i].d + ' \t' + geofences[i].ar + '\n'
    }
});

После этого копируете data в буфер обмена

copy(data);
12

Выгрузить в Excel все датчики всех объектов по типам

Re: Выгрузить в Excel все датчики всех объектов по типам

shmi то, что надо. Спасибо большое!

13

Выгрузить в Excel все датчики всех объектов по типам

Re: Выгрузить в Excel все датчики всех объектов по типам

shmi пишет:
alex1505 пишет:

Добрый день!
А можно еще таким же методом выгрузить информацию по геозонам? интересует именно свойстово имя, описание и га.

Добрый день

Геозоны лежат в ресурсе, поэтому сначала ищете интересующий ресурс и его ID

let resources = wialon.core.Session.getInstance().getItems('avl_resource');
for (let i = 0; i < resources.length; i++) {
    console.log(resources[i].getId(), resources[i].getName());
}

Далее копируете ID нужного ресурса в код вывода информации о геозонах

let resource = wialon.core.Session.getInstance().getItem(RESOURCE_ID);
let data = '';
resource.getZonesData(null, 0x11, function(code, geofences) {
    for (let i = 0; i < geofences.length; i++) {
        data += geofences[i].n + '\t' + geofences[i].d + ' \t' + geofences[i].ar + '\n'
    }
});

После этого копируете data в буфер обмена

copy(data);

помогите выгрузить геозоны с ID группы, название, описание.

14

Выгрузить в Excel все датчики всех объектов по типам

Re: Выгрузить в Excel все датчики всех объектов по типам

Напишите в личку, выгружу

gps-report.ru
Разработка приложений для Wialon
Мы расширяем возможности мониторинга!
Telegram: @dire77
15

Выгрузить в Excel все датчики всех объектов по типам

Re: Выгрузить в Excel все датчики всех объектов по типам

alex1505 пишет:

помогите выгрузить геозоны с ID группы, название, описание.

Изменится только 2ой шаг (получение RESOURCE_ID и копирование в буфер теми же командами)

let resource = wialon.core.Session.getInstance().getItem(RESOURCE_ID);
let data = 'id геозоны\tимя геозоны\tописание геозоны\tплощадь геозоны\tid групп (через ,)\tимена групп (через ,)\tописание групп (через ,)\n';
resource.getZonesData(null, 0x11, function(code, geofences) {
    for (let i = 0; i < geofences.length; i++) {
        let groups = Object.values(resource.getZonesGroups()).filter((group) => group.zns.indexOf(zone.id) > -1);
        data += geofences[i].id
            + '\t' + geofences[i].n
            + '\t' + geofences[i].d
            + '\t' + geofences[i].ar
            + '\t' + groups.map((g)=>g.id).join(',')
            + '\t' + groups.map((g)=>g.n).join(',')
            + '\t' + groups.map((g)=>g.d).join(',')
            + '\n'
    }
});

Добавил 1ую строчку (имена столбцов)
Для групп выводится id, имя и описание
Если геозона входит в несколько групп, то они будут перечислены через запятую