Ga naar inhoud

Installatie

OnderdeelVereiste
Node.js≥ 16 (18 / 20 LTS aanbevolen) — alleen nodig voor de npm-installer
PlatformmacOS Intel/Apple Silicon · Linux x64/arm64 · Windows x64/arm64
Netwerknpm-registry, plus de host waar de binary wordt gedownload (standaard Aliyun OSS)
OptioneelGo-toolchain, alleen bij bouwen vanuit de broncode

Het npm-pakket is een dunne wrapper: het downloadt bij het eerste gebruik een vooraf gebouwde, statische Go-binary voor je platform en registreert het commando sensecraft-cli. De binary zelf heeft geen runtime-afhankelijkheden.

Voer de installer uit met npx:

bash
npx @seeed-studio/sensecraft-cli install

Dit doet het volgende:

  1. Het downloadt de binary die past bij jouw platform en de pakketversie.
  2. Het registreert sensecraft-cli globaal op je PATH.
  3. Zijn er nog geen inloggegevens en zit je in een interactieve terminal, dan biedt het de installatiewizard in de browser aan. Wil je in plaats daarvan een toegangssleutel gebruiken die je in het accountcentrum hebt aangemaakt, voer dan na de installatie auth add uit (zie Authenticatie).

Controleer:

bash
sensecraft-cli --version
sensecraft-cli --help
powershell
node -v
npx @seeed-studio/sensecraft-cli install
sensecraft-cli --version
  • Het commando wordt geïnstalleerd als sensecraft-cli.cmd onder npm prefix -g.
  • Vindt een nieuwe terminal het niet, voeg die map dan toe aan de systeem-PATH.
  • PowerShell 5+ of Windows Terminal wordt aanbevolen; Git Bash werkt meestal ook.
  • Sommige antivirusprogramma’s zetten de eerst gedownloade sensecraft-cli.exe in quarantaine — zet de installatiemap op de witte lijst en installeer opnieuw als dat gebeurt.

Elk commando werkt via npx, tegen de prijs van een kleine opstartcontrole per keer:

bash
npx @seeed-studio/sensecraft-cli device list
bash
npm install -g @seeed-studio/sensecraft-cli@0.1.4

Binary-downloads worden geadresseerd als {RELEASE_BASE}/v{version}/sensecraft-cli-{os}-{arch}[.exe], met als standaard release-basis https://sensecraft-statics.oss-us-east-1.aliyuncs.com/static/bin/sensecraft-cli.

De CLI levert Cobra-completions mee — tab-aanvulling voor commando’s en flags:

bash
# zsh (macOS: pick a directory on your $fpath)
sensecraft-cli completion zsh > "${fpath[1]}/_sensecraft-cli"
# bash (Linux)
sensecraft-cli completion bash | sudo tee /etc/bash_completion.d/sensecraft-cli
# fish
sensecraft-cli completion fish > ~/.config/fish/completions/sensecraft-cli.fish

Open een nieuwe shell om het te laden. Windows: sensecraft-cli completion powershell print het script — voeg het toe aan je $PROFILE.

Controleer of de installatie is uitgevoerd (npx @seeed-studio/sensecraft-cli install) en bekijk dan of de globale npm-binmap in je PATH staat. De installer vertelt welke map hij nodig heeft — ontbreekt die in je PATH, dan eindigt zijn uitvoer met deze hint:

Plain Text
提示: 若无法直接运行 sensecraft-cli,请将以下目录加入 PATH:
/Users/you/.npm-global/bin

(“Als je sensecraft-cli niet rechtstreeks kunt uitvoeren, voeg dan de volgende map toe aan PATH.”)

Een map aan PATH toevoegen betekent één export-regel in het profielbestand van je shell zetten, zodat elke nieuwe terminal ermee begint.

macOS / Linux — hier staat zsh; gebruik ~/.bashrc als je shell bash is (echo $SHELL vertelt welke):

bash
npm prefix -g
# common values:
# macOS (Homebrew Node): /opt/homebrew → bin dir /opt/homebrew/bin
# Linux: ~/.npm-global → bin dir ~/.npm-global/bin
echo 'export PATH="$(npm prefix -g)/bin:$PATH"' >> ~/.zshrc # or ~/.bashrc
source ~/.zshrc

npm prefix -g print de globale map van npm, en het commando staat in de submap bin daarvan — dezelfde map die de hint toont.

Windows (PowerShell) — stel het in voor je gebruiker en open daarna een nieuwe terminal:

powershell
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";" + (npm prefix -g) + "\bin", "User")

Open daarna een nieuwe terminal — PATH-wijzigingen gelden alleen voor shells die daarna starten — en voer opnieuw sensecraft-cli --version uit.

bash
npm install -g @seeed-studio/sensecraft-cli@latest

De installer vergelijkt de versiestempel van de gedownloade binary (vendor/.version) met de versie van het npm-pakket: komen ze overeen, dan hergebruikt hij de gecachte binary, anders downloadt hij de bijpassende. Controleer met sensecraft-cli --version.

Blijft de versie weigeren te veranderen, ruim dan zowel het pakket als de npm-cache op en installeer opnieuw:

bash
npm uninstall -g @seeed-studio/sensecraft-cli
npm cache clean --force
npx @seeed-studio/sensecraft-cli@<target-version> install
sensecraft-cli --version
bash
npm uninstall -g @seeed-studio/sensecraft-cli

De binary in de map vendor/ van het pakket wordt mee verwijderd. Inloggegevens staan buiten het pakket — verwijder ze apart als je klaar bent met de CLI op die machine:

bash
rm -rf ~/.config/sensecraft-cli # macOS / Linux
# Windows: Remove-Item -Recurse "$env:APPDATA\sensecraft-cli"

Het verwijderen van de configuratie wist de lokaal opgeslagen toegangssleutels en tokens — zie Authenticatie voor wat er wordt opgeslagen en hoe je afzonderlijke profielen verwijdert.

Bouw de binaries voor alle platformen en wijs de installer er vervolgens naar:

bash
./script/build.sh # in a clone of the source repo
export SENSECRAFT_CLI_LOCAL_DIST="$PWD/dist"
npx @seeed-studio/sensecraft-cli install
bash
export SENSECRAFT_CLI_RELEASE_BASE="https://your-mirror.example.com/sensecraft-cli"
npx @seeed-studio/sensecraft-cli install

De mirror moet de release-indeling reproduceren:

Plain Text
…/sensecraft-cli/v0.1.4/sensecraft-cli-darwin-arm64
…/sensecraft-cli/v0.1.4/sensecraft-cli-linux-amd64
…
bash
export SENSECRAFT_CLI_SKIP_DOWNLOAD=1

De installatie faalt als vendor/ nog geen binary bevat die bij de huidige versie past — handig in CI om netwerktoegang uit te sluiten.

Als er een SHA256 voor de release is gepubliceerd:

bash
export SENSECRAFT_CLI_SHA256="<hex digest>"

De installatie faalt wanneer de gedownloade bytes niet overeenkomen.

De installer respecteert de standaard proxyvariabelen van Node en het systeem:

bash
export HTTPS_PROXY=http://proxy.example.com:8080
export HTTP_PROXY=http://proxy.example.com:8080
bash
git clone https://github.com/Seeed-Solution/sensecraft-cli.git
cd sensecraft-cli
go build -o sensecraft-cli .
./sensecraft-cli --version
# all 6 platform binaries, into dist/
./script/build.sh

Eén gedragsverschil om te weten: een binary die je zelf hebt gebouwd, leest zijn configuratie standaard uit de huidige map, terwijl de via npm geïnstalleerde CLI ~/.config/sensecraft-cli/ leest — zie Configuratie voor hoe je ze gelijktrekt met SENSECRAFT_CLI_PATH.

Sandbox-commando’s geven voorbeeld-JSON terug zonder het netwerk aan te raken — maar ze hebben wel een bestaand profiel nodig, dus maak eerst een gesimuleerd profiel aan (schrijft een nepconfiguratie, geen account nodig):

bash
sensecraft-cli auth init --sandbox # accept the defaults, ~20 seconds
sensecraft-cli device list --sandbox
sensecraft-cli group list --sandbox
sensecraft-cli model constants --sandbox
sensecraft-cli app list --mine --sandbox

(Heeft een commando geen sandboxmodus, dan meldt het simpelweg een fout — dat is verwacht.)