📂 AIS Commander

AIS Commander

:open_file_folder:

AIS Commander to menedżer plików działający w przeglądarce Internetowej. Zawiera edytor plików tekstowych oraz podgląd plików (tekst, audio, wideo). AIS Commander umożliwia pracę z plikami i katalogami w przeglądarce internetowej z dowolnego komputera, telefonu komórkowego lub tabletu.

Aplikacja powstała, żeby ułatwić użytkownikom zarządzanie plikami z konfiguracją na bramce i będzie preinstalowana na bramkach AIS dom. Oczywiście każdy, kto ma już bramkę i chciałby mieć możliwość zarządzania plikami z poziomu przeglądarki, może sam doinstalować aplikację wg instrukcji poniżej.

Kody aplikacji

Aplikacja bazuje na projekcie Cloud Commander, który jest od lat rozwijany i udoskonalany (389 wersji). Jest to duży projekt - kody i zależności wymagają około 400 MB wolnego miejsca na bramce. Jeżeli instalujesz aplikację na bramce DEV1, to upewnij się, że masz tyle wolnego miejsca.

Pobranie kodów i instalacja

Pobieramy kody z github, wpisując w konsoli:

cd ~
git clone --depth 1 https://github.com/sviete/AIS-webcmd.git

instalacja zależności i budowanie aplikacji:

cd ~/AIS-webcmd
npm install
npm run build

pierwsze uruchomienie i sprawdzenie działania

npm start

po tym możemy sprawdzić działanie aplikacji przechodząc w przeglądarce Internetowej na adres http://ais-dom.local:8000 lub http://ip-bramki:8000

Uruchomienie jako usługa

Żeby aplikacja była zawsze automatycznie uruchamiana po starcie bramki, dodajemy ją do uslug działających na bramce:

cd ~/AIS-webcmd
pm2 start npm --name webcmd -- start
pm2 save

Dodanie do interfejus Asystenta domowego

Dodajemy nowy widok typu “Panel (1 karta)”

w widoku umieszczamy kartę typu “Strona web” z adresem do aplikacji → http://ais-dom.local:8000 lub http://ip-bramki:8000

i już możemy przegladać

image

i edytować pliki na bramce z aplikacji webowej

image

w etytorze pokazujemy białe znaki (spacja, tab, enter) żeby było łatwiej wychwycić błędy w yaml czy python (w językach w których spacje mają znaczenie)

w AIS Commander, możemy też przeglądać zdalne dyski i odtwarzać z nich multimedia (opiszemy dokładnie o co chodzi w kolejnym wpisie)

Możliwości AIS Commander

Klawiszem F1 wywołujemy informację o możliwościach programu i skrótach klawiszowych:


Dodatkowe informacje

AIS Commander znajduje się w repozytorium pakietów npm

można go zainstalować na każdym systemie operacyjnym (nie tylko na bramce ais), tak samo jak inne pakiety nodejs, jednym poleceniem menażera pakietów npm.

Woleliśmy jednak opisać cały proces pobierania kodów, budowania, uruchamiania jako usługa oraz dodawania do interfejsu Asystenta domowego. W ten sam sposób można zainstalować każdą aplikacje Node.js na bramce. Tak samo, jak AIS Commander na bramce działa Zigbee2Mqtt, Node-RED, ZwaveJs2Mqtt, bo to wszystko to są aplikacje napisane w JavaScript/Node.js.
Może ten opis przyda się komuś do zrozumienia jak zainstalować na bramce inny program napisany w Node.js.

Z uwagi na rozmiar programu AIS Commander (prawie 400 MB) nie będziemy go instalowali automatycznie na bramkach (żeby nie zajmować miejsca, dla kogoś, kto nie potrzebuje tego programu).

W wydaniu Leon, widok AIS Commander będzie wbudowany w narzędziach developerskich (ale będzie wymagał ręcznej instalacji - nie dołączymy go do aktualizacji):

Ze względu na bezpieczeństwo podobnie jak w przypadku konsoli dostęp do tego programu będzie tylko w sieci lokalnej:

8 polubień

Kolejne dodatek ułatwiający pracę z AIS, rozwiązanie lepsze niż oficjalny add-on File editor :slight_smile: .

2 polubienia

Czas jaki spędziłem na korzystaniu z bramki DEV1 pozwolił mi na wypracowanie własnych metod korzystania i edycji zasobów bramki i na razie nie widzę konieczności instalacji, ale wiem, że jest sporo osób którym brakowało czegoś takiego, więc na pewno rozwiązanie przydatne :point_up:

Duży szacunek za pomysł i wykonanie, bo jest to na pewno jeden z elementów który będzie sporym “ułatwiaczem” zwłaszcza dla osób zaczynających dopiero zabawę i tego typu rozwiązania na pewno będą przez nich postrzegane jako bardzo pomocne :grinning:

2 polubienia

U mnie przy instalacji na dev3 coś “nie pykło” - nie odpala się niestety.
Przy “npm start” mam takie błędy:
npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path /data/data/pl.sviete.dom/files/home/package.json
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, open ‘/data/data/pl.sviete.dom/files/home/package.json’
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR! /data/data/pl.sviete.dom/files/home/.npm/_logs/2021-11-15T15_44_18_796Z-debug.log

wygląd jak byś chciał uruchomić aplikację nie będąc w folderze z aplikacją tylko w folderze domowym (a tam nie ma pliku package.json opisującego aplikację)

zrób tak

cd ~/AIS-webcmd
npm start

No niestety:
~ $ cd ~/AIS-webcmd
~/AIS-webcmd $ npm start

aiscmd@15.9.9 start /data/data/pl.sviete.dom/files/home/AIS-webcmd
madrun start

node bin/cloudcmd.mjs
root: /data/data/pl.sviete.dom/files/home
cloudcmd --port: listen EADDRINUSE: address already in use 0.0.0.0:8000
Command failed: node bin/cloudcmd.mjs
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! aiscmd@15.9.9 start: madrun start
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the aiscmd@15.9.9 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /data/data/pl.sviete.dom/files/home/.npm/_logs/2021-11-16T14_39_25_202Z-debug.log

A tu log:

0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli ‘/data/data/pl.sviete.dom/files/usr/bin/node’,
1 verbose cli ‘/data/data/pl.sviete.dom/files/usr/bin/npm’,
1 verbose cli ‘start’
1 verbose cli ]
2 info using npm@6.14.15
3 info using node@v14.17.6
4 verbose run-script [ ‘prestart’, ‘start’, ‘poststart’ ]
5 info lifecycle aiscmd@15.9.9~prestart: aiscmd@15.9.9
6 info lifecycle aiscmd@15.9.9~start: aiscmd@15.9.9
7 verbose lifecycle aiscmd@15.9.9~start: unsafe-perm in lifecycle true
8 verbose lifecycle aiscmd@15.9.9~start: PATH: /data/data/pl.sviete.dom/files/usr/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/data/data/pl.sviete.dom/files/home/AIS-webcmd/node_modules/.bin:/data/data/pl.sviete.dom/files/usr/bin:/data/data/pl.sviete.dom/files/usr/bin/applets
9 verbose lifecycle aiscmd@15.9.9~start: CWD: /data/data/pl.sviete.dom/files/home/AIS-webcmd
10 silly lifecycle aiscmd@15.9.9~start: Args: [ ‘-c’, ‘madrun start’ ]
11 silly lifecycle aiscmd@15.9.9~start: Returned: code: 1 signal: null
12 info lifecycle aiscmd@15.9.9~start: Failed to exec start script
13 verbose stack Error: aiscmd@15.9.9 start: madrun start
13 verbose stack Exit status 1
13 verbose stack at EventEmitter. (/data/data/pl.sviete.dom/files/usr/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
13 verbose stack at EventEmitter.emit (events.js:400:28)
13 verbose stack at ChildProcess. (/data/data/pl.sviete.dom/files/usr/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack at ChildProcess.emit (events.js:400:28)
13 verbose stack at maybeClose (internal/child_process.js:1055:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
14 verbose pkgid aiscmd@15.9.9
15 verbose cwd /data/data/pl.sviete.dom/files/home/AIS-webcmd
16 verbose Linux 4.9.113
17 verbose argv “/data/data/pl.sviete.dom/files/usr/bin/node” “/data/data/pl.sviete.dom/files/usr/bin/npm” “start”
18 verbose node v14.17.6
19 verbose npm v6.14.15
20 error code ELIFECYCLE
21 error errno 1
22 error aiscmd@15.9.9 start: madrun start
22 error Exit status 1
23 error Failed at the aiscmd@15.9.9 start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

Coś a’la MC, TC czy stary NC przydać się może :slight_smile:

Ja też mam takie skojarzenia/wspomnienia :), TC pokazała mi koleżanka Agnieszka w banku (w mojej pierwszej pracy w it), do dzisiaj pamiętam, że było mi głupio, że nie znam tego programu, a ona robiła w nim wszystko.

Jak ktoś potrafi w konsoli, to w 5 sekund można zawsze tak:

ssh ais-dom.local
apt update
apt install mc
mc

MC nie jest takie ładne i wygodne jak AIS Commander, który jest naprawdę super.
Nie sądziłem, że przełączę się na taką obsługę plików do przeglądarki… ale jednak - człowiek zawsze wybierze wygodniejsze rozwiązanie.

AIS Commander będzie wbudowany w wersję Leon i dostarczony w paczce startowej i na nowych bramkach, może będzie dzięki temu na forum będzie mniej “nie da się” i “nie działa”.

PS
jeżeli ktoś nie jest w stanie zainstalować AIS Commander, to polecam moje wprowadzenie do Node.js - zawsze warto zacząć od podstaw:

1 polubienie

jeżeli chodzi o mc to warto zmienić kolory

F9 > Options > Appearance

po zmianie kolorów, chyba da się w tym kododać nawet

też widać kropki w nowych liniach:

1 polubienie

Doszedłem do momentu dodatnia AISCommander do lovelace idąc zgodnie z instrukcją od tego momentu wysypało mi się całkowicie zigbee. Po restarcie urządzenia Dev3 jestem w stanie wejść do zigbee natomiast po czasie mnie wyrzuca. Po wpisaniu w konsoli “pm2 restart zigbee” wyświetla mi się:

pm2 restart zigbee
PM2       | App [zigbee:10] starting in -fork mode-
PM2       | App [zigbee:10] online
10|zigbee | Zigbee2MQTT:info  2021-12-20 19:57:57: Logging to console only'
10|zigbee | Zigbee2MQTT:info  2021-12-20 19:57:57: Starting Zigbee2MQTT version 1.21.1 (commit #4a51e0c)
10|zigbee | Zigbee2MQTT:info  2021-12-20 19:57:57: Starting zigbee-herdsman (0.13.138)
2|ais     | 2021-12-20 19:58:14 INFO (MainThread) [greeclimate.discovery] Scanning for Gree devices ...
10|zigbee | Zigbee2MQTT:error 2021-12-20 19:58:24: Error while starting zigbee-herdsman
10|zigbee | Zigbee2MQTT:error 2021-12-20 19:58:24: Failed to start zigbee
10|zigbee | Zigbee2MQTT:error 2021-12-20 19:58:24: Check https://www.zigbee2mqtt.io/information/FAQ.html#help-zigbee2mqtt-fails-to-start for possible solutions
10|zigbee | Zigbee2MQTT:error 2021-12-20 19:58:24: Exiting...
10|zigbee | Zigbee2MQTT:error 2021-12-20 19:58:24: Error: SRSP - SYS - getExtAddr after 6000ms
10|zigbee |     at Timeout._onTimeout (/data/data/pl.sviete.dom/files/home/zigbee2mqtt/node_modules/zigbee-herdsman/src/utils/waitress.ts:64:35)
10|zigbee |     at listOnTimeout (internal/timers.js:557:17)
10|zigbee |     at processTimers (internal/timers.js:500:7)
PM2       | App [zigbee:10] exited with code [1] via signal [SIGINT]

Dodam, że AIS Commander działa natomiast zigbee nie :frowning:

Super sprawa, Ale czy naprawdę nie możecie dodać obsługi zdalnej a nie tylko lokalnie. Lokalnie istnieje sporo sposobów na edycje, a zdalnie nic nie działa. Muszę specjalnie komputer postawić w tym celu. Rozumiem kwestię bezpieczeństwa ale Satel i wiele innych firm umożliwia edycję programu zdalnie.

Już dawno dodana :wink:
Wykorzystaj AIS auto proxy:

1 polubienie

Zgodnie z radą

Wykorzystaj AIS auto proxy:

taki jest efekt. Czego brakuje bo gdy kliknę na folder np Ais to “404: Not Found”