From 6bf14fdb6975cb2c6ff32b98912ff1aef48a11eb Mon Sep 17 00:00:00 2001 From: Mario Voigt Date: Mon, 3 Mar 2025 12:42:53 +0100 Subject: [PATCH 1/8] add official dummy actor --- actors.ini | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/actors.ini b/actors.ini index 38b354a..921fd87 100644 --- a/actors.ini +++ b/actors.ini @@ -1,3 +1,6 @@ +[dummy] +module = Dummy + [tasmota] module = Process param_cmd = "/usr/local/lib/bffh/adapters/tasmota/main.py" @@ -11,4 +14,4 @@ param_topic = "shellyplug-$actor_id" module = "MqttSwitch" param_topic = "shellyplus1pm-$actor_id/rpc", param_onMsg = "{\"id\": 1, \"src\": \"bffh\", \"method\": \"Switch.Set\", \"params\": {\"id\": 0, \"on\": true}" -param_offMsg= "{\"id\": 1, \"src\": \"bffh\", \"method\": \"Switch.Set\", \"params\": {\"id\": 0, \"on\": false}" \ No newline at end of file +param_offMsg= "{\"id\": 1, \"src\": \"bffh\", \"method\": \"Switch.Set\", \"params\": {\"id\": 0, \"on\": false}" From 7aaf93709c38ac8a4ed68d823741f239d020e5dd Mon Sep 17 00:00:00 2001 From: Mario Voigt Date: Mon, 3 Mar 2025 12:43:12 +0100 Subject: [PATCH 2/8] add official dummy initiator and process initiator --- initiators.ini | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 initiators.ini diff --git a/initiators.ini b/initiators.ini new file mode 100644 index 0000000..7f45df2 --- /dev/null +++ b/initiators.ini @@ -0,0 +1,5 @@ +[dummy] +module = Dummy + +[process] +module = Process From 4e0e431dc0ec46b4a9c659b1afe4b91af219652f Mon Sep 17 00:00:00 2001 From: Mario Voigt Date: Mon, 3 Mar 2025 12:47:21 +0100 Subject: [PATCH 3/8] rename load_actors to load_plugins to have common use for actors and initiators --- generator/core.py | 4 ++-- generator/globals.py | 5 ++++- generator/helpers.py | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/generator/core.py b/generator/core.py index c313292..9f77cd5 100644 --- a/generator/core.py +++ b/generator/core.py @@ -20,9 +20,9 @@ else: settings = config_load('./settings.ini', 'generator') if os.path.isfile('actors.ini') == True: - actor_library = load_actors('actors.ini') + actor_library = load_plugins('actors.ini') else: - actor_library = load_actors('./actors.ini') + actor_library = load_plugins('./actors.ini') string_userhandle = settings["string_userhandle"] + ' ' string_adminhandle = settings["string_adminhandle"] + ' ' diff --git a/generator/globals.py b/generator/globals.py index 5bdb1ce..f50d5bd 100644 --- a/generator/globals.py +++ b/generator/globals.py @@ -1,5 +1,5 @@ from generator.helpers import config_load -from generator.helpers import load_actors +from generator.helpers import load_plugins # Icons für Mermaid-Code @@ -41,6 +41,9 @@ csv_match = { "Aktor ID": "actor_id", "Aktor Modul": "actor_module", "Aktor Typ": "actor_type", + "Initiator ID": "initiator_id", + "Initiator Modul": "initiator_module", + "Initiator Typ": "initiator_type", "ID Alternativrolle": "customrole_id", "Name Alternativrolle": "customrole_name", } diff --git a/generator/helpers.py b/generator/helpers.py index d0983ca..e4a9123 100644 --- a/generator/helpers.py +++ b/generator/helpers.py @@ -191,7 +191,7 @@ def config_load(file, section = 'all'): return dict_settings # Actor-Library einlesen -def load_actors(file): +def load_plugins(file): dict_actors = {} filehandle = app_path + f'/{file}' From d67471b68928b8813c0ad0652868c32dab60789c Mon Sep 17 00:00:00 2001 From: Mario Voigt Date: Mon, 3 Mar 2025 13:03:36 +0100 Subject: [PATCH 4/8] add initiators to codebase --- config-generator.py | 12 ++++---- generator/core.py | 69 +++++++++++++++++++++++++++------------------ 2 files changed, 49 insertions(+), 32 deletions(-) diff --git a/config-generator.py b/config-generator.py index f7a0da7..ea60b35 100644 --- a/config-generator.py +++ b/config-generator.py @@ -40,21 +40,23 @@ roles = generate_roles(machines) # Finale DHALL-Daten erzeugen export_roles = generate_bffh_roles(roles) export_machines = generate_bffh_machines(machines) -export_actors = generate_bffh_actors(machines) -export_actorconnections = generate_bffh_actorconnections(machines) -export_all = export_roles + export_machines + export_actors + export_actorconnections +export_actors = generate_bffh_plugins(machines, "actors") +export_actorconnections = generate_bffh_pluginconnections(machines, "actors") +export_initiators = generate_bffh_plugins(machines, "initiators") +export_initiatorconnections = generate_bffh_pluginconnections(machines, "initiators") +export_all = export_roles + export_machines + export_actors + export_actorconnections + export_initiators + export_initiatorconnections # ------- Daten exportieren # Textdatei mit komplettem dhall-Inhalt -create_singledhall(export_roles, export_machines, export_actors, export_actorconnections) +create_singledhall(export_roles, export_machines, export_actors, export_actorconnections, export_actors, export_initiatorconnections) # Rollenliste als CSV create_roles_csv(roles) # Einzelne DHALLs -create_multipledhalls(export_roles, export_machines, export_actors, export_actorconnections) +create_multipledhalls(export_roles, export_machines, export_actors, export_actorconnections, export_actors, export_initiatorconnections) # Mermaid-Code create_mermaid(machines) diff --git a/generator/core.py b/generator/core.py index 9f77cd5..4e602f8 100644 --- a/generator/core.py +++ b/generator/core.py @@ -20,9 +20,15 @@ else: settings = config_load('./settings.ini', 'generator') if os.path.isfile('actors.ini') == True: - actor_library = load_plugins('actors.ini') + plugin_library = load_plugins('actors.ini') else: - actor_library = load_plugins('./actors.ini') + plugin_library = load_plugins('./actors.ini') + +if os.path.isfile('initiators.ini') == True: + initiator_library = load_plugins('initiators.ini') +else: + initiator_library = load_plugins('./initiators.ini') + string_userhandle = settings["string_userhandle"] + ' ' string_adminhandle = settings["string_adminhandle"] + ' ' @@ -198,6 +204,9 @@ class Machine(Subarea): actor_id = string_clean(data["actor_id"].strip()).lower() # actor_module = data["actor_module"].strip() actor_type = data["actor_type"].strip().lower() + initiator_id = string_clean(data["initiator_id"].strip()).lower() + # initiator_module = data["initiator_module"].strip() + initiator_type = data["initiator_type"].strip().lower() customrole_id = string_clean(data["customrole_id"].strip()).lower() customrole_name = data["customrole_name"].strip() @@ -246,6 +255,8 @@ class Machine(Subarea): "wikiurl": wikiurl, "actor_id": actor_id, "actor_type": actor_type + "initiator_id": initiator_id, + "initiator_type": initiator_type } self.customrole = { @@ -652,7 +663,7 @@ def generate_bffh_machines(machines): return data # Aktoren -def generate_bffh_actors(machines): +def generate_bffh_plugins(machines, type): data = [] @@ -660,30 +671,30 @@ def generate_bffh_actors(machines): data.append('{') # Inhalt - last_actor = len(machines) - 1 + last_plugin = len(machines) - 1 - for index_actor, (id, m) in enumerate(machines.items()): + for index_plugin, (id, m) in enumerate(machines.items()): specs = m.get_machine() - if len(specs["actor_id"]) > 0 and len(specs["actor_type"]) > 0: - actor_handle = specs["actor_type"] + '_' + specs["actor_id"] + if len(specs["{}_id"].format(type)) > 0 and len(specs["{}_type"].format(type)) > 0: + plugin_handle = specs["{}_type".format(type)] + '_' + specs["{}_id".format(type)] - # 2do Actor Library Funktionalität + # 2do Plugin Library Funktionalität - data.append(space * 1 + f'{actor_handle} =') + data.append(space * 1 + f'{plugin_handle} =') data.append(space * 1 + '{') - data.append(space * 2 + f'module = "{actor_library[specs["actor_type"]]["module"]}",') + data.append(space * 2 + f'module = "{plugin_library[specs["{}_type".format(type)]]["module"]}",') data.append(space * 2 + 'params =') data.append(space * 2 + '{') # Aktor-ID der aktuellen Maschine speichern replace = { - "actor_id": specs["actor_id"] + "{}_id".format(type): specs["{}_id".format(type)] } - last_param = len(actor_library[specs["actor_type"]]["params"]) - 1 + last_param = len(plugin_library[specs["{}_type".format(type)]]["params"]) - 1 - for index_param, (key, value) in enumerate(actor_library[specs["actor_type"]]["params"].items()): + for index_param, (key, value) in enumerate(plugin_library[specs["{}_type".format(type)]]["params"].items()): template = Template(value) string = template.substitute(replace) @@ -694,7 +705,7 @@ def generate_bffh_actors(machines): data.append(space * 2 + '}') - if index_actor == last_actor: + if index_plugin == last_plugin: data.append(space * 1 + '}') else: data.append(space * 1 + '},') @@ -707,9 +718,8 @@ def generate_bffh_actors(machines): return data -# Aktoren-Verbindungen -def generate_bffh_actorconnections(machines): - +# Verbindungen (type = "actor" oder "initiator") +def generate_bffh_pluginconnections(machines, type): data = [] # Anfang Datenstruktur @@ -721,13 +731,14 @@ def generate_bffh_actorconnections(machines): for index, (id, m) in enumerate(machines.items()): specs = m.get_machine() - if len(specs["actor_id"]) > 0 and len(specs["actor_type"]) > 0: - actor_fullid = specs["actor_type"] + '_' + specs["actor_id"] + if len(specs["{}_id".format(type)]) > 0 and len(specs["{}_type"].format(type)) > 0: + plugin_fullid = specs["{}_type"] + '_' + specs["{}_id".format(type)] if index == last: - data.append(space * 1 + '{ ' + f'machine = "{specs["fa_id"]}", actor = "{actor_fullid}"' + ' }') + "{ machine = \"{}\", {} = \"{}\" }".format(specs["fa_id"], type, plugin_fullid) + data.append(space * 1 + "{ machine = \"{}\", {} = \"{}\" }".format(specs["fa_id"], type, plugin_fullid)) else: - data.append(space * 1 + '{ ' + f'machine = "{specs["fa_id"]}", actor = "{actor_fullid}"' + ' },') + data.append(space * 1 + "{ machine = \"{}\", {} = \"{}\" },".format(specs["fa_id"], type, plugin_fullid)) # Ende Datenstruktur data.append(']') @@ -752,10 +763,10 @@ def create_roles_csv(roles): # dhall-Dateien erzeugen -def create_singledhall(export_roles, export_machines, export_actors, export_actorconnections): +def create_singledhall(export_roles, export_machines, export_actors, export_actorconnections, export_initiators, export_initiatorconnections): print('|- Gesamten DHALL-Output exportieren') - input = [export_roles, export_machines, export_actors, export_actorconnections] + input = [export_roles, export_machines, export_actors, export_actorconnections, export_actorconnections, export_initiators, export_initiatorconnections] data = [] @@ -770,7 +781,8 @@ def create_singledhall(export_roles, export_machines, export_actors, export_acto case 1: data.append('machines =') case 2: data.append('actors =') case 3: data.append('export_actorconnections =') - + case 4: data.append('initiators =') + case 5: data.append('export_initiatorconnections =') last = len(input[index_input]) - 1 for index_seg, (el) in enumerate(i): @@ -785,11 +797,11 @@ def create_singledhall(export_roles, export_machines, export_actors, export_acto write_file('output/bffh-dhall-data.txt', data) -def create_multipledhalls(export_roles, export_machines, export_actors, export_actorconnections): +def create_multipledhalls(export_roles, export_machines, export_actors, export_actorconnections, export_initiators, export_initiatorconnections): - input = [export_roles, export_machines, export_actors, export_actorconnections] + input = [export_roles, export_machines, export_actors, export_actorconnections, export_initiators, export_initiatorconnections] fa_dhall_directory = settings["fa_dhall_directory"].replace('\\', '/') @@ -808,7 +820,8 @@ def create_multipledhalls(export_roles, export_machines, export_actors, export_a case 1: target_file = 'machines.dhall' case 2: target_file = 'actors.dhall' case 3: target_file = 'actorconnections.dhall' - + case 4: target_file = 'initiator.dhall' + case 5: target_file = 'initiatorconnections.dhall' print(f' |- Erzeuge {target_file}') # Im Output-Ordner @@ -911,6 +924,8 @@ def display_machine(machine_object): print(' ' + p) print('actor_id = ' + scope["actor_id"]) print('actor_type = ' + scope["actor_type"]) + print('initiator_id = ' + scope["initiator_id"]) + print('initiator_type = ' + scope["initiator_type"]) print('\n[Alternativrolle: '+ role["name"] + ']') print('state = ' + str(machine_object.has_customrole())) From a892f9f0e9b763322aaeec2557d89098735c2848 Mon Sep 17 00:00:00 2001 From: Mario Voigt Date: Mon, 3 Mar 2025 13:04:35 +0100 Subject: [PATCH 5/8] fix comma --- generator/core.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generator/core.py b/generator/core.py index 4e602f8..f5e3a72 100644 --- a/generator/core.py +++ b/generator/core.py @@ -254,7 +254,7 @@ class Machine(Subarea): "desc": machine_desc, "wikiurl": wikiurl, "actor_id": actor_id, - "actor_type": actor_type + "actor_type": actor_type, "initiator_id": initiator_id, "initiator_type": initiator_type } From 4d097e03f3e03b02928162f002671368f8207b61 Mon Sep 17 00:00:00 2001 From: Mario Voigt Date: Mon, 3 Mar 2025 13:20:03 +0100 Subject: [PATCH 6/8] make initiators work --- .~lock.maschinenliste.csv# | 1 + config-generator.py | 8 ++++---- generator/core.py | 22 +++++++++++++--------- maschinenliste.csv | 32 ++++++++++++++++---------------- settings.ini | 4 ++-- 5 files changed, 36 insertions(+), 31 deletions(-) create mode 100644 .~lock.maschinenliste.csv# diff --git a/.~lock.maschinenliste.csv# b/.~lock.maschinenliste.csv# new file mode 100644 index 0000000..721312b --- /dev/null +++ b/.~lock.maschinenliste.csv# @@ -0,0 +1 @@ +,apfel,apfel-nuc,03.03.2025 13:05,file:///home/apfel/.config/libreoffice/4; \ No newline at end of file diff --git a/config-generator.py b/config-generator.py index ea60b35..da18be9 100644 --- a/config-generator.py +++ b/config-generator.py @@ -40,10 +40,10 @@ roles = generate_roles(machines) # Finale DHALL-Daten erzeugen export_roles = generate_bffh_roles(roles) export_machines = generate_bffh_machines(machines) -export_actors = generate_bffh_plugins(machines, "actors") -export_actorconnections = generate_bffh_pluginconnections(machines, "actors") -export_initiators = generate_bffh_plugins(machines, "initiators") -export_initiatorconnections = generate_bffh_pluginconnections(machines, "initiators") +export_actors = generate_bffh_plugins(machines, "actor") +export_actorconnections = generate_bffh_pluginconnections(machines, "actor") +export_initiators = generate_bffh_plugins(machines, "initiator") +export_initiatorconnections = generate_bffh_pluginconnections(machines, "initiator") export_all = export_roles + export_machines + export_actors + export_actorconnections + export_initiators + export_initiatorconnections diff --git a/generator/core.py b/generator/core.py index f5e3a72..5b32129 100644 --- a/generator/core.py +++ b/generator/core.py @@ -20,9 +20,9 @@ else: settings = config_load('./settings.ini', 'generator') if os.path.isfile('actors.ini') == True: - plugin_library = load_plugins('actors.ini') + actors_library = load_plugins('actors.ini') else: - plugin_library = load_plugins('./actors.ini') + actors_library = load_plugins('./actors.ini') if os.path.isfile('initiators.ini') == True: initiator_library = load_plugins('initiators.ini') @@ -665,6 +665,11 @@ def generate_bffh_machines(machines): # Aktoren def generate_bffh_plugins(machines, type): + if type == "actor": + plugin_library = actors_library + elif type == "initiator": + plugin_library = initiator_library + data = [] # Anfang Datenstruktur @@ -676,7 +681,7 @@ def generate_bffh_plugins(machines, type): for index_plugin, (id, m) in enumerate(machines.items()): specs = m.get_machine() - if len(specs["{}_id"].format(type)) > 0 and len(specs["{}_type"].format(type)) > 0: + if len(specs["{}_id".format(type)]) > 0 and len(specs["{}_type".format(type)]) > 0: plugin_handle = specs["{}_type".format(type)] + '_' + specs["{}_id".format(type)] # 2do Plugin Library Funktionalität @@ -731,14 +736,13 @@ def generate_bffh_pluginconnections(machines, type): for index, (id, m) in enumerate(machines.items()): specs = m.get_machine() - if len(specs["{}_id".format(type)]) > 0 and len(specs["{}_type"].format(type)) > 0: - plugin_fullid = specs["{}_type"] + '_' + specs["{}_id".format(type)] + if len(specs["{}_id".format(type)]) > 0 and len(specs["{}_type".format(type)]) > 0: + plugin_fullid = specs["{}_type".format(type)] + '_' + specs["{}_id".format(type)] if index == last: - "{ machine = \"{}\", {} = \"{}\" }".format(specs["fa_id"], type, plugin_fullid) - data.append(space * 1 + "{ machine = \"{}\", {} = \"{}\" }".format(specs["fa_id"], type, plugin_fullid)) + data.append(space * 1 + "{{ machine = \"{}\", {} = \"{}\" }}".format(specs["fa_id"], type, plugin_fullid)) else: - data.append(space * 1 + "{ machine = \"{}\", {} = \"{}\" },".format(specs["fa_id"], type, plugin_fullid)) + data.append(space * 1 + "{{ machine = \"{}\", {} = \"{}\" }},".format(specs["fa_id"], type, plugin_fullid)) # Ende Datenstruktur data.append(']') @@ -820,7 +824,7 @@ def create_multipledhalls(export_roles, export_machines, export_actors, export_a case 1: target_file = 'machines.dhall' case 2: target_file = 'actors.dhall' case 3: target_file = 'actorconnections.dhall' - case 4: target_file = 'initiator.dhall' + case 4: target_file = 'initiators.dhall' case 5: target_file = 'initiatorconnections.dhall' print(f' |- Erzeuge {target_file}') diff --git a/maschinenliste.csv b/maschinenliste.csv index 4838c04..e1296aa 100644 --- a/maschinenliste.csv +++ b/maschinenliste.csv @@ -1,16 +1,16 @@ -Name Domäne;Name Bereich;Name Unterbereich;Name Maschine;Maschinenbeschreibung;Manager Unterbereich;ID Alternativrolle;Name Alternativrolle;Wiki-URL;ID Domäne;ID Bereich;ID Unterbereich;ID Maschine;Aktor ID;Aktor Typ;Kommentar -Beispielwerkstatt;Holzwerkstatt;Bandsäge;Bandsäge;Bandsäge im Holzbereich;;;;;beispielw;holz;bandsaege;bandsaege;1;Tasmota; -Beispielwerkstatt;Holzwerkstatt;Hobelmaschine;Hobelmaschine;Hobelmaschine im Holzbereich;;;;;beispielw;holz;hobelmaschine;hobelmaschine;2;Tasmota; -Beispielwerkstatt;Holzwerkstatt;CNC-Fräse;CNC-Fräse;CNC Fräse im Holzbereich;;;;;beispielw;holz;holzcnc;holzcncfraese;6;Tasmota; -Beispielwerkstatt;Holzwerkstatt;;Kappsäge;Kappsäge mit allgemeiner Einweisung Holz;;;;;beispielw;holz;;kappsaege;7;Tasmota; -Beispielwerkstatt;Holzwerkstatt;;Bandschleifer;Bandschleifer mit allgemeiner Einweisung Holz;;;;;beispielw;holz;;bandschleifer;8;Tasmota;Irgendein Kommentar -Beispielwerkstatt;Holzwerkstatt;;Ständerbohrmaschine;Ständerbohrmaschine mit allgemeiner Einweisung Holz;;;;;beispielw;holz;;staenderbohrmaschine;9;Tasmota; -Beispielwerkstatt;Textilwerkstatt;;Nähmaschine 1;Nähmaschine Nummer 1;;;;;beispielw;textil;;naehmaschine1;10;Tasmota; -Beispielwerkstatt;Textilwerkstatt;;Nähmaschine 2;Nähmaschine Nummer 2;;;;;beispielw;textil;;naehmaschine2;11;Tasmota; -Beispielwerkstatt;FabLab;3D-Druck;3D-Drucker 1;3D-Drucker Modell 111;x;;;;beispielw;fablab;3dprint;3ddrucker1;12;Tasmota; -Beispielwerkstatt;FabLab;3D-Druck;3D-Drucker 2;3D-Drucker Modell 222;x;;;;beispielw;fablab;3dprint;3ddrucker2;13;Tasmota; -Beispielwerkstatt;FabLab;Laser;Lasercutter;Modell Laser3000;x;;;https://www.fiktivedoku.de;beispielw;fablab;laser;laser3000;14;Tasmota; -Beispielwerkstatt;FabLab;Laser;Kühlung;Modell Kühlung3000;x;;;;beispielw;fablab;laser;kühlung3000;15;Tasmota; -Beispielwerkstatt;Siebdruck;;SD-Belichter;Belichter für die Siebe;;;;;beispielw;siebdruck;;sdbelichter;16;Tasmota; -Beispielwerkstatt;Siebdruck;;A3-Drucker;A3 Drucker im Siebdruck Bereich;;drucker;Druckernutzung;;beispielw;siebdruck;;a3drucker;17;Tasmota; -Beispielwerkstatt;Büro;;Drucker;;;drucker;Druckernutzung;;beispielw;büro;;drucker;18;Tasmota; +Name Domäne,Name Bereich,Name Unterbereich,Name Maschine,Maschinenbeschreibung,Manager Unterbereich,ID Alternativrolle,Name Alternativrolle,Wiki-URL,ID Domäne,ID Bereich,ID Unterbereich,ID Maschine,Aktor ID,Aktor Typ,Initiator ID,Initiator Typ,Kommentar +Beispielwerkstatt,Holzwerkstatt,Bandsäge,Bandsäge,Bandsäge im Holzbereich,,,,,beispielw,holz,bandsaege,bandsaege,1,Tasmota,,, +Beispielwerkstatt,Holzwerkstatt,Hobelmaschine,Hobelmaschine,Hobelmaschine im Holzbereich,,,,,beispielw,holz,hobelmaschine,hobelmaschine,2,Tasmota,1,Process, +Beispielwerkstatt,Holzwerkstatt,CNC-Fräse,CNC-Fräse,CNC Fräse im Holzbereich,,,,,beispielw,holz,holzcnc,holzcncfraese,6,Tasmota,,, +Beispielwerkstatt,Holzwerkstatt,,Kappsäge,Kappsäge mit allgemeiner Einweisung Holz,,,,,beispielw,holz,,kappsaege,7,Tasmota,,, +Beispielwerkstatt,Holzwerkstatt,,Bandschleifer,Bandschleifer mit allgemeiner Einweisung Holz,,,,,beispielw,holz,,bandschleifer,8,Tasmota,,,Irgendein Kommentar +Beispielwerkstatt,Holzwerkstatt,,Ständerbohrmaschine,Ständerbohrmaschine mit allgemeiner Einweisung Holz,,,,,beispielw,holz,,staenderbohrmaschine,9,Tasmota,,, +Beispielwerkstatt,Textilwerkstatt,,Nähmaschine 1,Nähmaschine Nummer 1,,,,,beispielw,textil,,naehmaschine1,10,Tasmota,,, +Beispielwerkstatt,Textilwerkstatt,,Nähmaschine 2,Nähmaschine Nummer 2,,,,,beispielw,textil,,naehmaschine2,11,Tasmota,,, +Beispielwerkstatt,FabLab,3D-Druck,3D-Drucker 1,3D-Drucker Modell 111,x,,,,beispielw,fablab,3dprint,3ddrucker1,12,Tasmota,,, +Beispielwerkstatt,FabLab,3D-Druck,3D-Drucker 2,3D-Drucker Modell 222,x,,,,beispielw,fablab,3dprint,3ddrucker2,13,Tasmota,,, +Beispielwerkstatt,FabLab,Laser,Lasercutter,Modell Laser3000,x,,,https://www.fiktivedoku.de,beispielw,fablab,laser,laser3000,14,Tasmota,,, +Beispielwerkstatt,FabLab,Laser,Kühlung,Modell Kühlung3000,x,,,,beispielw,fablab,laser,kühlung3000,15,Tasmota,,, +Beispielwerkstatt,Siebdruck,,SD-Belichter,Belichter für die Siebe,,,,,beispielw,siebdruck,,sdbelichter,16,Tasmota,,, +Beispielwerkstatt,Siebdruck,,A3-Drucker,A3 Drucker im Siebdruck Bereich,,drucker,Druckernutzung,,beispielw,siebdruck,,a3drucker,17,Tasmota,,, +Beispielwerkstatt,Büro,,Drucker,,,drucker,Druckernutzung,,beispielw,büro,,drucker,18,Tasmota,,, diff --git a/settings.ini b/settings.ini index ccac7d1..0d29892 100644 --- a/settings.ini +++ b/settings.ini @@ -19,7 +19,7 @@ manager_area = False manager_subarea = False ; Erzeugt DHALL-Dateien für Rollen, Maschinen, Aktoren und Aktorenverbindungen -fa_dhall_directory = F:\fabaccess-docker\config\bffh\ +fa_dhall_directory = /etc/bffh/ ; Anzeige aller erzeugten Maschinendaten show_machines = False @@ -34,4 +34,4 @@ string_adminhandle = Admin string_managerhandle = Manager ; Kennzeichnung für Benutzer-Rollen, steht am Anfang des Namens der Rolle. -string_userhandle = Benutzer \ No newline at end of file +string_userhandle = Benutzer From eccf58b3ff0acf9b360ee39d4f3e830433f132a2 Mon Sep 17 00:00:00 2001 From: Wolfram <71720167+elem74@users.noreply.github.com> Date: Wed, 2 Apr 2025 20:25:55 +0200 Subject: [PATCH 7/8] Delete .~lock.maschinenliste.csv# --- .~lock.maschinenliste.csv# | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .~lock.maschinenliste.csv# diff --git a/.~lock.maschinenliste.csv# b/.~lock.maschinenliste.csv# deleted file mode 100644 index 721312b..0000000 --- a/.~lock.maschinenliste.csv# +++ /dev/null @@ -1 +0,0 @@ -,apfel,apfel-nuc,03.03.2025 13:05,file:///home/apfel/.config/libreoffice/4; \ No newline at end of file From e0d511b30595375d49fb162aa494691bececb24b Mon Sep 17 00:00:00 2001 From: Wolfram <71720167+elem74@users.noreply.github.com> Date: Wed, 2 Apr 2025 20:26:15 +0200 Subject: [PATCH 8/8] Delete settings.ini --- settings.ini | 37 ------------------------------------- 1 file changed, 37 deletions(-) delete mode 100644 settings.ini diff --git a/settings.ini b/settings.ini deleted file mode 100644 index 0d29892..0000000 --- a/settings.ini +++ /dev/null @@ -1,37 +0,0 @@ -; ------------ Einstellungen für den DHALL-Generator ------------ -; Einstellung aktiv = True -; Einstellung inkativ = False - -[generator] -; Verwendung mehrer Domänen. Bei Verwendung mehrer Domänen werden wird für jede Domäne ein Manager erstellt -multi_domains = False - -; Erstellung einer Benutzerrolle für die gesamte Werkstatt. (Es werden keine Benutzerrollen für Unterbereiche/ Bereiche erstellt) -domain_user = True - -; Manager-Rolle für die Domäne erstellen. -manager_domain = True - -; Manager-Rolle für jeden Bereich erstellen. -manager_area = False - -; Spalte "Unterbereich Manager" der CSV beachten (True) der nicht (False). -manager_subarea = False - -; Erzeugt DHALL-Dateien für Rollen, Maschinen, Aktoren und Aktorenverbindungen -fa_dhall_directory = /etc/bffh/ - -; Anzeige aller erzeugten Maschinendaten -show_machines = False - -; Anzeige aller erzeugten Rollendaten -show_roles = False - -; Kennzeichnung für Administrator-Rollen, steht am Anfang des Namens der Rolle. -string_adminhandle = Admin - -; Kennzeichnung für Manager-Rollen, steht am Anfang des Namens der Rolle. -string_managerhandle = Manager - -; Kennzeichnung für Benutzer-Rollen, steht am Anfang des Namens der Rolle. -string_userhandle = Benutzer