Arbeiten mit der CSV
Im Kapitel Grundlagen wurde die CSV bereits auszugsweise gezeigt. Hier der grundsätzliche Umgang mit der CSV-Datei und die weiteren Felder der CSV-Datei erklärt anhand der einfachen Beispielwerkstatt erklärt.
Grundsätzliches zur CSV
- Die CSV-Datei muss in einem bestimmten Format vorliegen. Es wird empfohlen eine Kopie der Beispieldatei anzulegen, um eine eigene Konfiguration zu erstellen.
- Bei der Vergabe von internen IDs (siehe unten) sind nicht alle Zeichen zulässig, daher nimmt der Config Generator automatisch eine Umwandlung vor.
Konkrete Angaben zu beiden Punkten befinden sich im Referenzbereich "CSV-Datei".
Felder: Interne IDs
Um eine Maschine anzulegen werden Namen für die folgenden Elemente vergeben:
- Domäne
- Bereich
- ggf. Unterbereich
- Maschine
- ggf. Alternativrolle
Darüber hinaus werden für all diese Elemente auch IDs vergeben, die intern im FabAccess für die Bezeichnung der Maschinen/ Rollen verwendet. Auf diesem Wege werden zwei Welten abgedeckt:
- Für die FabAccess-App können ausführliche und gut beschreibende Namen vergeben werden.
- Für die FabAccess-Konfiguration könnten kompakte und schnell lesbare IDs vergeben werden.
Name Domäne | Name Bereich | Name Unterbereich | Maschine/ Gerät | ID Domäne | ID Bereich | ID Unterbereich | ID Maschine | |
---|---|---|---|---|---|---|---|---|
Meine Werkstatt | Holz | Bandsäge | mw | holz | bandsaege | |||
Meine Werkstatt | Holz | Kreissäge | mw | holz | kreissaege | |||
Meine Werkstatt | Elektronik | Lötkolben 1 | mw | elektro | löt1 | |||
Meine Werkstatt | Elektronik | Lötkolben 2 | mw | elektro | löt2 | |||
Meine Werkstatt | Elektronik | 3D-Drucker | 3D-Drucker "123" | mw | elektro | 3ddruck | 123 | |
Meine Werkstatt | Elektronik | 3D-Drucker | 3D-Drucker "456" | mw | elektro | 3ddruck | 456 | |
Meine Werkstatt | Elektronik | Lasercutter | Lasercutter "Abc" | mw | elektro | laser | Abc | |
Meine Werkstatt | Elektronik | Lasercutter | Lasercutter "Def" | mw | elektro | laser | Def |
- mw-holz-bandsaege
- mw-holz-kreissaege
- mw-elektro-loet1
- mw-elektro-loet2
- mw-elektro-3ddruck-123
- mw-elektro-3ddruck-456
- mw-elektro-laser-abc
- mw-elektro-laser-def
Alternativrolle
Die Felder "Name Alternativrolle" und "ID Alternativrolle" verhalten sich analog zu den obigen Feldern und wurden aus Gründen der Übersicht ausgelassen.
Felder: FabAccess-Infofelder
Die folgende Tabelle beschreibt, welche CSV-Spalten welchem FabAccess-Infofeld entspricht.
CSV-Spalte | FabAccess-Feld |
---|---|
Maschinenbeschreibung | description |
Wiki-URL | wiki |
Felder: Aktoren
Für die Aktoren werden lediglich diese Felder ausgefüllt:
Feld | Beschreibung |
---|---|
Aktor ID | Hier wird die ID des jeweiligen Aktors angegeben. (Diese ID muss zunächst beim Aktor selbst eingestellt/ ausgelesen werden) |
Aktor Typ | Hier wird ein Aktorentyp eingetragen, der in der Aktorenbibliothek angelegt ist. |
Wichtiger Hinweis
Der Aktor Typ muss zuvor in der Aktorenbibliothek angelegt werden.
Exkurs: Aktorenbibliothek
Bei der händischen Erstellung einer FabAccess-Konfiguration müssen (auch) für Aktoren viele Einträge angelegt werden, die sich nur minimal unterscheiden. Hier haben wir zum Beispiel drei Tasmota-Steckdosen, die sich nur beim Paramter args
in ihrer ID unterscheiden:
{
module = "Process",
params =
{
cmd = "/usr/local/lib/bffh/adapters/tasmota/main.py",
args = "--host mqtt --tasmota stecker1",
}
},
{
module = "Process",
params =
{
cmd = "/usr/local/lib/bffh/adapters/tasmota/main.py",
args = "--host mqtt --tasmota stecker2",
}
},
{
module = "Process",
params =
{
cmd = "/usr/local/lib/bffh/adapters/tasmota/main.py",
args = "--host mqtt --tasmota stecker6",
}
},
Um den Konfigurationsaufwand zu minimieren verwendet der Config Generator eine zentrale Aktorenbibliothek (Datei actors.ini
). Hier wird für ein Aktor ein zentrales Schema hinterlegt.
Für unseren Tasmota-Stecker sieht dies wie folgt aus:
[tasmota]
module = Process
param_cmd = "/usr/local/lib/bffh/adapters/tasmota/main.py"
param_args = "--host mqtt --tasmota $actor_id"
- Die eckigen Klammern definieren einen Aktor-Typ. Innerhalb der Klammern befindet sich der Name, der dann auch in der CSV eingetragen wird.
- Der Parameter
module
definiert das gleichnamige FabAccess-Konfigurationsfeld. - Es können beliebig viele weitere Parameter angelegt werden. Diese müssen mit dem Präfix param_ versehen werden, damit sie vom Config Generator erkannt und verarbeitet werden können.
- Die Zeichenkette
$actor_id
markiert den Platzhalter für die Geräte-ID. Hier wird automatisch die Aktor ID eingefügt, die in der CSV-Datei angegeben werden.
In der Praxis sieht unser Arbeitsweg wie folgt an:
- Wir legen den Aktor-Typ einmaligen in der
actors.ini
an. - Wir füllen in der CSV-Datei bei unserer Maschine die Felder
Aktor Typ
undAktor ID
aus. - Der Config Generator erledigt den Rest.