ioBroker Adapter-Entwicklung von A-Z

Mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks.

ioBroker Adapter-Entwicklung von A-Z
ioBroker Adapter-Entwicklung von A-Z
  • Matthias Kleine
  • 06.05.2022
  • Entwicklung

Vor einigen Jahren habe ich ja schon einmal gezeigt, wie man eigene Adapter für ioBroker entwickelt. Leider ist das Video schon etwas in die Jahre gekommen und es gibt mittlerweile viel bessere Werkzeuge und Helfer auf dem Weg zum eigenen Adapter. Daher gibt es hier ein möglichst ausführliches Update-Video für den gesamten Prozess. Teil 2 ist glücklicherweise noch relativ aktuell und der Prozess funktioniert weiterhin genau so.

Was wird benötigt?

  • Ein Debian-System ohne(!) laufenden ioBroker Installation
  • Visual Studio Code (VSCode)
  • Etwas Vorwissen bei der Arbeit mit Linux (ssh, key authentication, …), nodeJS / npm usw.

Video

ioBroker-Kurs

Entwicklungs-Client vorbereiten

Ich entwickle mittlerweile auf einem MacBook Pro 2023 mit M2 Pro Prozessor und nutze VSCode mit einigen Plugins.

ssh-keygen -t ed25519 -C "MacBook Pro 2023"
ssh-add -K ~/.ssh/id_ed25519
vi ~/.ssh/config

Die Config hat folgenden Inhalt:

Host *
  ForwardAgent yes

Der Public-Key muss dann auf GitHub (Account Settings) hinterlegt werden. Und in der Datei ~/.ssh/authorized_keys auf dem Entwicklungs-Server, um nicht jedes Mal das Passwort einzugeben zu müssen / sich per Key zu authentifizieren. Bitte in das Thema einlesen. Jedenfalls solltest Du danach mit deinem GitHub-Benutzernamen begrüßt werden:

ssh -T git@github.com

Hi klein0r! You've successfully authenticated, but GitHub does not provide shell access.

Dann ist alles richtig.

Entwicklungs-Server vorbereiten

Ich verwende ein Debian-System (VM oder LXC-Container unter Proxmox oder auch unter Virtual Box), auf welchem alle Module entwickelt werden. Um einzelne Adapter in einer eigenen Instanz zu starten, wird der dev-server verwendet. Alles wird im folgenden Abschnitt nach und nach installiert.

sudo apt install -y gcc g++ make git vim

git config --global user.name "Dein Name"
git config --global user.email "DeineE-Mail@domain.com"

mkdir .ssh
chmod 0700 .ssh
vi ~/.ssh/authorized_key

Dann noch alles rund um npm vorbereiten. Ich arbeite hier als normaler nutze (nie als root) und muss deswegen das Ziel für globale npm-Pakete umbiegen. Im Zweifel bitte in die offizielle npm Dokumentation schauen.

curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -

sudo apt install -y nodejs

mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
vi ~/.profile

In die Datei kommt ganz ans Ende export PATH=~/.npm-global/bin:$PATH.

source ~/.profile

npm install --global @iobroker/dev-server

Neuen Adapter erstellen

Um auf dem Entwicklungs-Server ein neues Modul zu erstellen, kannst Du den Adapter-Creator verwenden:

npx @iobroker/create-adapter
Du willst mehr?

Smart-Home-Trainings von A-Z

Steig noch tiefer in die Themen ein und meistere Deine Projekte! Über 13.000 Teilnehmer konnten sich schon von der Qualität der Online-Kurse überzeugen.

ioBroker-Master-Kurs

ioBroker-Master-Kurs

Mehr Infos
Hausbau-Kurs

Hausbau mit KNX

Mehr Infos
Lox-Kurs

Lox-Kurs

Mehr Infos
Node-RED-Master-Kurs

Node-RED-Master-Kurs

Mehr Infos