Zum Inhalt

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:

  1. Wir legen den Aktor-Typ einmaligen in der actors.ini an.
  2. Wir füllen in der CSV-Datei bei unserer Maschine die Felder Aktor Typ und Aktor ID aus.
  3. Der Config Generator erledigt den Rest.