Arduino Cloud ab Sofort per Kommandozeile ansprechbar

Arduino bietet seit längerer Zeit einen Clouddienst an, der eine niederschwellige – also ohne MQTT auskommende – Realisierung von Geräteverbünden erlaubt. Mit einer Erweiterung der Kommandozeilenutility Arduino-CLI wird die Provisionierung und Anmeldung von Geräten automatisierbar.

Was ist die Arduino Cloud?

IoT-Broker aller Herren Hersteller arbeiten normalerweise mit MQTT. Arduino entschied sich im hauseigenen Clouddienst Arduino Cloud für eine abstraktere Vorgehensweise, die auf Variablen und Geräten basiert. Unter https://www.mikrocontroller.net/topic/521135 findet sich eine detaillierte Beschreibung des Systems.

(Bildquelle: Autor)

arduino-cloud-cli installieren

Die Konfiguration von in der Cloud befindlichen Elementen erfolgte bisher ausschließlich unter Nutzung des Browserinterfaces. Neu ist nun die Möglichkeit, diese Einrichtung über ein Kommandozeilenwerkzeug durchzuführen. Spezifischerweise handelt es sich dabei um die unter https://github.com/arduino/arduino-cloud-cli bereitstehende Arduino-Cloud-Cli.

Interessant ist dabei, dass das Herunterladen des Repositoriums nur Go-Code zur Verfügung stellt:

1(base) tamhan@tamhanthinkpad:~$ mkdir arduinocloudclitest
2(base) tamhan@tamhanthinkpad:~$ cd arduinocloudclitest/
3(base) tamhan@tamhanthinkpad:~/arduinocloudclitest$ git clone https://github.com/arduino/arduino-cloud-cli
4Cloning into arduinocloudcli
5(base) tamhan@tamhanthinkpad:~/arduinocloudclitest$

Das linux-übliche Makefile zur Kompilation sucht man indes vergeblich:

1(base) tamhan@tamhanthinkpad:~/arduinocloudclitest$ find | grep “install”
2(base) tamhan@tamhanthinkpad:~/arduinocloudclitest$

Der korrekte Weg zum Ziel ist das Besuchen der URL https://github.com/arduino/arduino-cloud-cli/releases/tag/0.1.0, wo wir die Datei arduino-cloud-cli_0.1.0_Linux_64bit.tar.gz herunterladen. Extrahieren Sie das Archiv danach, und führen Sie die Datei nach folgendem Schema aus:

1(base) tamhan@tamhanthinkpad:~/arduinocloudclitest/arduinocloudcli$ ./arduinocloudcli
2Arduino Cloud Command Line Interface (arduinocloudcli).
3
4Usage:
5 arduinocloudcli [command]
6 . . .

Zur Fertigstellung ist dann noch ein Besuch bei der URL https://cloud.arduino.cc/home/api-keys erforderlich, wo sie einen neuen API-Key beantragen. Die eigentliche Anmeldung erfolgt dann über credentials init:

1(base) tamhan@tamhanthinkpad:~/arduinocloudclitest/arduinocloudcli$ ./arduinocloudcli credentials init
2To obtain your API credentials visit https://create.arduino.cc/iot/integrations
3 Please enter the Client ID:
4. . .

Benutzer der kostenlosen Version des Cloud-Abonnements kommen an dieser Stelle übrigens an eine Grenze – nur Besitzer eines bezahlten Accounts dürfen die Konfiguration abschließen.

(Bildquelle: Screenshot)

Was kann man mit der Cloud CLI tun?

Die wichtigste Anwendung für die CLI dürfte das Provisioning von Geräten sein – je nachdem ob das Gerät einen LORA-Transmitter mitbringt oder nicht, stehen zwei unterschiedliche Befehle am Start:

1$ arduinocloudcli device create name <deviceName> port <port> fqbn <deviceFqbn>
2$ arduinocloudcli device createlora name <deviceName> frequencyplan <freqID> port <port> fqbn <deviceFqbn>

Sonst beschränkt sich die CLI auf die Errichtung und Abtragung von Infrastruktur. So lassen sich beispielsweise Geräte löschen oder von zugewiesenen Tags befreien:

1$ arduinocloudcli device deletetags id <deviceID> keys <key0>,<key1>

Auch für Things und Dashboards stehen analoge Werkzeuge zur Verfügung, die wir hier nur auszugsweise zeigen:

1$ arduinocloudcli thing create name <thingName> template <template.(json|yaml)>
2$ arduinocloudcli dashboard list showwidgets

Wichtig ist vor Allem, dass sich die CLI aus der eigentlichen Variablenverwaltung heraushält: das Eintragen oder Auslesen von Werten in den Variablen ist mit dem Kommandozeilenwerkzeug (noch nicht) möglich.

“Mehr” Kompilationszeit für Nutzer der Online-IDE

Arduino Cloud ist seit jeher auch Teil einer im Browser lebenden Arbeitsumgebung, die in der kostenlosen Basisversion bisher pro Tag 200 Sekunden Kompilationszeit für Sketches zur Verfügung stellte.

(Bildquelle beide: Screenshot)

Auch an dieser Stelle gibt es eine Änderung:

1Always close and sensitive to the communitys demands, Arduino has decided to improve the general users experience by changing the limit of the free plan to 25 successful compilations per day instead of the traditional 200 seconds of successful compilations per day.

Interessant ist dabei, dass wegen Syntax- und sonstigen Fehlern fehlgeschlagene Kompilationen nach wie vor nicht von der Quote abgezogen werden. Begründet wird die Änderung übrigens damit, dass “modernere” Mikrocontroller mehr Kompilationszeit benötigen:

1Instead of using a time limit, it is more sensible to use a limit based on the number of compilations that does not penalise the more resourcehungry ones.

Zuerst erschienen bei Mikrocontroller.net News

Quelle: Read More