Удаленное подключение к ПК с локальным сервером

Для удаленного подключения к ПК с установленным ЛС может использоваться протокол SSH (и одноименная утилита под ОС Linux). Для операционной системы Windows доступна программа Putty. При подключении нужно указать логин и пароль пользователя на том ПК, где установлен ЛС.

После подключения становится доступен интерфейс командной строки операционной системы. При подключении из ОС Linux как правило становится возможным запускать удаленно приложения с графическим интерфейсом и видеть сам интерфейс на своем ПК. Putty под ОС WIndows такую возможность не предоставляет.

В данном документе собраны примеры команд для управления локальным сервером из командной строки.
 

Управление пользователями для удаленного подключения к локальному серверу

Добавление пользователя (запрашивает пароль в процессе)
$ wliotproxy apm user create test1

Просмотр списка пользователей
$ wliotproxy apm user list 
data: 0|root
data: 2|test1

Задание пароля пользователя (запрашивает пароль в процессе)
$ wliotproxy apm user chpass user1

Создание группы пользвателей
$ wliotproxy apm grp create grp1

Добавление пользователя в группу
$ wliotproxy apm grp add_user grp1 user1

Просмотр пользователей в группе
$ wliotproxy apm grp list_users grp1
test1|root

Смена модератора в группе
$ wliotproxy apm grp set_moder grp1 user1

Захват устройства во владение
$ wliotproxy apm dev chown f0df78da-785a-4fe5-8703-2b5857006bb0

Передача устройства во владение другому пользователю
$ wliotproxy apm dev chown f0df78da-785a-4fe5-8703-2b5857006bb0 user2

Просмотр списка устройств во владении
$ wliotproxy apm dev list
{f0df78da-785a-4fe5-8703-2b5857006bb0}

Установка прав доступа для устройства
$ wliotproxy apm dev set_rule f0df78da-785a-4fe5-8703-2b5857006bb0 u user2 rs

аргументы:
f0df78da-785a-4fe5-8703-2b5857006bb0 - идентификатор устройства
u - права задаются на пользователя (g - на группу)
user2 - имя пользователя или название группы
rs - строка, описывающая права доступа, если она отсутствует, права для субъекта отменяются

возможные символы в строке прав доступа:
r - пользователь (или группа пользователей) может запрашивать данные с датчиков устройства
m - пользователь может управлять хранилищами для данных с датчиков устройства
s - пользователь может запрашивать состояние устройства
e - пользователь может выполнять команды на устройстве

Просмотр прав доступа для устройства
$ wliotproxy apm dev list_rules f0df78da-785a-4fe5-8703-2b5857006bb0
data: u|user2|rs

Различные сценарии работы с локальным сервером

Подключение устройств

Просмотр списка последовательных портов
$ wliotproxy list_tty 
Tty device:
        port: ttyACM1
        serialNumber: 9543231343835130B2F1
        manufacturer: Arduino LLC (www.arduino.cc)
        usb vendor id (0 - not a usb device): 2341 (Arduino SA)
        usb product id (0 - not a usb device): 0243 ()

Tty device:
        port: ttyACM0
        serialNumber: 
        manufacturer: Arduino LLC
        usb vendor id (0 - not a usb device): 2341 (Arduino SA)
        usb product id (0 - not a usb device): 8036 (Leonardo (CDC ACM, HID))

Tty device:
        port: ttyS0
        serialNumber: 
        manufacturer: 
        usb vendor id (0 - not a usb device): 0 ()
        usb product id (0 - not a usb device): 0 ()

Идентификация устройства
$ wliotproxy identify_tty ttyACM1
Device identified: id={f84526c1-5e88-4315-81f8-f7da45daa09d} name=led_blink_test

Просмотр списка идентифицированных устройств
$ wliotproxy list_identified 
Identified device:
        uid: {f84526c1-5e88-4315-81f8-f7da45daa09d}
        name: led_blink_test
        connection type: tty
        port or address: ttyACM1

Просмотр списка датчиков и команд

Просмотр списка датчиков
$ wliotproxy list_sensors led_blink_test 
Sensor:
        Name:blinks_count
        Type:f32_sv_nt
        Attributes:
Sensor:
        Name:sin_x
        Type:f32_d2_sv_nt
        Attributes:
Sensor:
        Name:sin_x_txt
        Type:txt_d2_sv_nt
        Attributes:

Просмотр списка команд
$ wliotproxy list_commands led_blink_test 
Commands list with arguments
COMMAND: blink
        name: delay
        attributes: QMap((max, 1000)(min, 100))
COMMAND: get_blinks_count

Задание имени устройства
$ wliotproxy set_dev_name led_blink_test led_test_new_name

Добавление и удаление хранилищ, установка атрибутов, запрос значений

Добавление хранилища
$ wliotproxy add_storage led_blink_test sin_x last_n_values add_global_time --N=1000

Просмотр списка хранилищ
$ wliotproxy list_storages 
Storage:
        device id: {f84526c1-5e88-4315-81f8-f7da45daa09d}
        device name: led_blink_test
        sensor name: sin_x
        sensor values type: f32_d2_sv_nt
        attributes:
        storage type: last_n_values
        timestamp transformation rule: add_global_time
        stored values type: f32_d2_sv_gt

Установка атрибута
$ wliotproxy storage_set_attr led_blink_test sin_x author "Vasya Pupkin"

Запрос атрибута
$ wliotproxy storage_get_attr led_blink_test sin_x author
Vasya Pupkin

Запрос количества значений
$ wliotproxy get_samples_count led_blink_test sin_x 
1000

Запрос 10 последних значений
$ wliotproxy get_samples led_blink_test sin_x 990 10
data: 1537438894897|0.93829065561294556|-0.34584754705429077
data: 1537438895401|0.89908665418624878|-0.43777057528495789
data: 1537438895904|0.85088759660720825|-0.52534765005111694
data: 1537438896408|0.7941858172416687|-0.60767495632171631
data: 1537438896912|0.72954773902893066|-0.68392986059188843
data: 1537438897416|0.6576194167137146|-0.75335031747817993
data: 1537438897919|0.57914441823959351|-0.81522494554519653
data: 1537438898423|0.49485912919044495|-0.86897313594818115
data: 1537438898923|0.40562871098518372|-0.91403788328170776
data: 1537438899423|0.31234493851661682|-0.94996869564056396

Удаление хранилища
$ wliotproxy remove_storage led_blink_test sin_x

Настройка экспорта данных во внешние сервисы

Просмотр списка доступных сервисов
$ wliotproxy available_data_export_services
iotkit-agent|alterozoom|thingspeak

Добавление экспорта
$ wliotproxy data_export add led_blink_test sin_x alterozoom host:ecoimpact-ple.com email:test@example.com

Просмотр списка настроенных сервисов
$ wliotproxy data_export list led_blink_test sin_x
External services configured for data export:
alterozoom

Просмотр конфигурации экспорта
$ wliotproxy data_export get led_blink_test sin_x alterozoom
External service configuration:
        host: ecoimpact-ple.com
        email: test@example.com

Удаление экспорта
$ wliotproxy data_export remove led_blink_test sin_x alterozoom

Управление скриптами обработки данных

Просмотр списка скриптов
$ wliotproxy js_program list
test.js

Запуск скрипта (аналогично остановка и перезапуск)
$ wliotproxy js_program start test.js