Langfristiges Protokoll
Langfristiges Protokoll
Hallo Ihr Lieben,
leider finde ich im Forum keinen passenden Beitrag, der mein Problem löst.
Und die KI hilft mir auch nicht wirklich um ein Script bzw. Makro zu erstellen.
Folgende Situation: Wir haben als Gemeinde SongBeamer in mehreren Räumen und Gebäuden.
Bisher musste man die Songs und die Software manuell auf jedem einzelnen Gerät aktualisieren.
Nun möchten wir einen zentralen Speicherort für Songs und die damit verbundenen Hintergründe.
Kein Problem, das kriegen wir über die Synchronisation mit OneDrive zu unserem SharePoint locker hin.
Jetzt kommt das eigentliche Problem, wo ich eure Hilfe brauche.
In dem zentralen Ordner 'Songs' soll eine Datei (Tabelle) sein, in der alle Dateien und Songs, die auf den unterschiedlichen SongBeamer-Computern geöffnet wurde, protokolliert werden. (Datum/Uhrzeit/Dateiname/Liednummer/Titel/Gerät)
Ich muss als verantwortlicher sehen können, wann auf welchem Gerät welche Datei und welcher Song über SongBeamer angezeigt wurde.
Grundsätzlich muss ich das an SongBeamer bemängeln.
Warum gibt es kein Protokoll über die Aktivitäten in SongBeamer ?
Es gibt die Statistik-Funktion, aber da sieht man nur die Gesamtanzahl und die letzte Nutzung, nicht die einzelnen Aktivitäten.
Dann gibt es den CCLI-Report, dort werden auch nur die Songs aufgelistet, solange bis man den Report übermittelt und danach sieht man nichts mehr.
Im VG Report sieht man auch nur die Songs die im jeweiligen Quartal angezeigt wurden, aber weder die Anzahl noch das Datum, wann es angezeigt wurde.
Aber wie bekomme ich ein Protokoll über alles was mit SongBeamer angezeigt wurde, unabhängig von den Reports zu CCLI oder VG ?
Vielen Dank für euren Support.
leider finde ich im Forum keinen passenden Beitrag, der mein Problem löst.
Und die KI hilft mir auch nicht wirklich um ein Script bzw. Makro zu erstellen.
Folgende Situation: Wir haben als Gemeinde SongBeamer in mehreren Räumen und Gebäuden.
Bisher musste man die Songs und die Software manuell auf jedem einzelnen Gerät aktualisieren.
Nun möchten wir einen zentralen Speicherort für Songs und die damit verbundenen Hintergründe.
Kein Problem, das kriegen wir über die Synchronisation mit OneDrive zu unserem SharePoint locker hin.
Jetzt kommt das eigentliche Problem, wo ich eure Hilfe brauche.
In dem zentralen Ordner 'Songs' soll eine Datei (Tabelle) sein, in der alle Dateien und Songs, die auf den unterschiedlichen SongBeamer-Computern geöffnet wurde, protokolliert werden. (Datum/Uhrzeit/Dateiname/Liednummer/Titel/Gerät)
Ich muss als verantwortlicher sehen können, wann auf welchem Gerät welche Datei und welcher Song über SongBeamer angezeigt wurde.
Grundsätzlich muss ich das an SongBeamer bemängeln.
Warum gibt es kein Protokoll über die Aktivitäten in SongBeamer ?
Es gibt die Statistik-Funktion, aber da sieht man nur die Gesamtanzahl und die letzte Nutzung, nicht die einzelnen Aktivitäten.
Dann gibt es den CCLI-Report, dort werden auch nur die Songs aufgelistet, solange bis man den Report übermittelt und danach sieht man nichts mehr.
Im VG Report sieht man auch nur die Songs die im jeweiligen Quartal angezeigt wurden, aber weder die Anzahl noch das Datum, wann es angezeigt wurde.
Aber wie bekomme ich ein Protokoll über alles was mit SongBeamer angezeigt wurde, unabhängig von den Reports zu CCLI oder VG ?
Vielen Dank für euren Support.
Re: Langfristiges Protokoll
Wir haben die Protokollierungen gemäß den Anforderungen von CCLI und VG Musik programmiert, und die Statistik gemäß dem, was uns sinnvoll erschien.
Ich meine, man könnte natürlich auch wirklich alles mitprotokollieren. Aber was bringt es mir, wenn ich weiß, daß ich das Lied XY am 03.02.2025 um 10:57:12, 11:16:12 und um 11:17:13 geöffnet hab, und dort mindestens eine Seite gezeigt habe? Also da bräuchte ich schon einen Anwendungsfall, um die Programmierung dafür zu rechtfertigen.
Ich meine, man könnte natürlich auch wirklich alles mitprotokollieren. Aber was bringt es mir, wenn ich weiß, daß ich das Lied XY am 03.02.2025 um 10:57:12, 11:16:12 und um 11:17:13 geöffnet hab, und dort mindestens eine Seite gezeigt habe? Also da bräuchte ich schon einen Anwendungsfall, um die Programmierung dafür zu rechtfertigen.
Gruß, Sebastian
Re: Langfristiges Protokoll
Lieber Sebastian,
vielen Dank für deine schnelle Antwort und deine guten Überlegungen.
Es ist tatsächlich so wie du beschreibst, sinnlos.
Jedoch ist es in unserem Fall etwas anders.
Wie vorher beschrieben, benutzen wir SongBeamer in mehreren Räumen und sogar Gebäuden gleichzeitig.
Es gibt "Filialen" wo Gottesdienste parallel stattfinden usw.
Dazu kommt, dass bei uns manche Lieder noch nicht als .sng Datei vorliegen, sondern als .pptx benutzt werden.
Das ist eine spezielle Anforderung der Kindermission, wo in den Liedern Bilder als Hintergrund benutzt werden, jedoch auf jeder Folie ein anderes Bild ist, welches zu dem Text passt.
Übrigens ist an dieser Stelle ein ganz großes Lob an "SongBeamer" auszusprechen, welches nach meinen Recherchen das einzige Programm ist, welches PowerPoint überhaupt öffnen und steuern kann. Alle anderen Programme verwenden entweder eigene Formate oder man muss PowerPoint als eigenständiges Programm verwenden, dann macht eine PräsiSoftware keinen Sinn mehr.
Zurück zu meinem (unserem) Anliegen.
Selbst wenn ein Lied "versehentlich" geöffnet wurde und nur die erste Folie angezeigt wurde, ist das für mich relevant, wobei ich diese Fehlerquote als sehr gering einschätze und vernachlässigen kann.
Da ich keinen Zugriff auf alle SongBeamer-Geräte habe, weil ich sonst zu den einzelnen Orten fahren müsste bzw. jedes Gerät einzeln behandeln müsste, brauche ich ein gesamtes Protokoll, von allen Geräten.
Das muss auch nicht unbedingt als Funktion im Programm sein, sondern als Makro im Ordner "Scripts" liegen und somit automatisch ausgeführt werden auf allen Geräten.
Das was ich bemängelt habe ist zwar sehr ähnlich meinem Bedarf, jedoch etwas anders.
Es gibt eine "Statistik-Funktion" aber ich habe keinerlei Details darin.
Man kann nicht nachvollziehen, wann welches Lied tatsächlich angezeigt wurde.
Kannst du mir ein Makro schreiben, welches jeden Song und Datei, die geöffnet wurde, in ein Protokoll schreibt ?
Es muss eine Tabelle sein, die ich anschließend sortieren und filtern kann.
In der Tabelle brauche ich folgende Informationen:
- Datum
- Uhrzeit
- Dateiname (ohne Pfad)
- Liednummer (wenn vorhanden)
- Titel (wenn vorhanden)
- Gerät
Ich habe schon etwas rumprobiert und folgenden Code geschrieben, der nur teilweise funktioniert:
Damit das (teilweise) funktioniert, habe ich in Windows %Songs% als Umgebungsvariable definiert.
Dann habe ich noch das Problem, dass dieses Script nicht automatisch ausgeführt wird.
Warum ist das so?
Ich verstehe, wenn ich ein Script im Ordner Scripts ablege, dann sollte es automatisch funktionieren, oder verstehe ich das falsch ?
Vielen Dank für deinen Support.
vielen Dank für deine schnelle Antwort und deine guten Überlegungen.
Es ist tatsächlich so wie du beschreibst, sinnlos.
Jedoch ist es in unserem Fall etwas anders.
Wie vorher beschrieben, benutzen wir SongBeamer in mehreren Räumen und sogar Gebäuden gleichzeitig.
Es gibt "Filialen" wo Gottesdienste parallel stattfinden usw.
Dazu kommt, dass bei uns manche Lieder noch nicht als .sng Datei vorliegen, sondern als .pptx benutzt werden.
Das ist eine spezielle Anforderung der Kindermission, wo in den Liedern Bilder als Hintergrund benutzt werden, jedoch auf jeder Folie ein anderes Bild ist, welches zu dem Text passt.
Übrigens ist an dieser Stelle ein ganz großes Lob an "SongBeamer" auszusprechen, welches nach meinen Recherchen das einzige Programm ist, welches PowerPoint überhaupt öffnen und steuern kann. Alle anderen Programme verwenden entweder eigene Formate oder man muss PowerPoint als eigenständiges Programm verwenden, dann macht eine PräsiSoftware keinen Sinn mehr.
Zurück zu meinem (unserem) Anliegen.
Selbst wenn ein Lied "versehentlich" geöffnet wurde und nur die erste Folie angezeigt wurde, ist das für mich relevant, wobei ich diese Fehlerquote als sehr gering einschätze und vernachlässigen kann.
Da ich keinen Zugriff auf alle SongBeamer-Geräte habe, weil ich sonst zu den einzelnen Orten fahren müsste bzw. jedes Gerät einzeln behandeln müsste, brauche ich ein gesamtes Protokoll, von allen Geräten.
Das muss auch nicht unbedingt als Funktion im Programm sein, sondern als Makro im Ordner "Scripts" liegen und somit automatisch ausgeführt werden auf allen Geräten.
Das was ich bemängelt habe ist zwar sehr ähnlich meinem Bedarf, jedoch etwas anders.
Es gibt eine "Statistik-Funktion" aber ich habe keinerlei Details darin.
Man kann nicht nachvollziehen, wann welches Lied tatsächlich angezeigt wurde.
Kannst du mir ein Makro schreiben, welches jeden Song und Datei, die geöffnet wurde, in ein Protokoll schreibt ?
Es muss eine Tabelle sein, die ich anschließend sortieren und filtern kann.
In der Tabelle brauche ich folgende Informationen:
- Datum
- Uhrzeit
- Dateiname (ohne Pfad)
- Liednummer (wenn vorhanden)
- Titel (wenn vorhanden)
- Gerät
Ich habe schon etwas rumprobiert und folgenden Code geschrieben, der nur teilweise funktioniert:
Code: Alles auswählen
procedure LogCurrentSong;
var
LogFile: TextFile;
SongTitle, ComputerName: String;
LogFilePath: String;
begin
// Hole den Titel des aktuellen Songs
SongTitle := CurrentFileName;
ComputerName := GetEnvironmentVariable('COMPUTERNAME');
// Bestimme den Pfad für die Log-Datei aus der Umgebungsvariable
LogFilePath := GetEnvironmentVariable('Songs') + '\SongLog.csv';
// Öffne die Log-Datei zum Schreiben
AssignFile(LogFile, LogFilePath);
if FileExists(LogFilePath) then
Append(LogFile)
else
begin
Rewrite(LogFile);
// Schreibe die Kopfzeile in die Log-Datei
WriteLn(LogFile, 'Datum,Uhrzeit,Dateiname,Computername');
end;
// Schreibe den Song-Titel in die Log-Datei
WriteLn(LogFile, FormatDateTime('yyyy-mm-dd', Now) + ',' +
FormatDateTime('hh:nn:ss', Now) + ',' +
SongTitle + ',' +
ComputerName);
// Schließe die Log-Datei
CloseFile(LogFile);
end;
begin
// Rufe die Log-Funktion auf, wenn ein Song geöffnet wird
LogCurrentSong;
end.Dann habe ich noch das Problem, dass dieses Script nicht automatisch ausgeführt wird.
Warum ist das so?
Ich verstehe, wenn ich ein Script im Ordner Scripts ablege, dann sollte es automatisch funktionieren, oder verstehe ich das falsch ?
Vielen Dank für deinen Support.
Re: Langfristiges Protokoll
Du gehst aktuell davon aus, daß jedes Script, das im Script Ordner liegt beim Öffnen von einem Song gestartet wird. Das ist aber nicht der Fall.
Den Songs Ordner bekommst du mit GetFolder_SBSongs. Das ist einfacher als über GetEnvironmentVariable. In der nächsten SongBeamer Version habe ich IniSFS.Script.OnObjectLoaded hinzugefügt. Du kannst dort den Dateinamen von einem Script hinterlegen, daß beim Öffnen von Dingen aufgerufen wird. Dann würde dein Script folgendermaßen aussehen:
Das Script installiert sich beim ersten manuellen Aufruf selber.
Den Songs Ordner bekommst du mit GetFolder_SBSongs. Das ist einfacher als über GetEnvironmentVariable. In der nächsten SongBeamer Version habe ich IniSFS.Script.OnObjectLoaded hinzugefügt. Du kannst dort den Dateinamen von einem Script hinterlegen, daß beim Öffnen von Dingen aufgerufen wird. Dann würde dein Script folgendermaßen aussehen:
Das Script installiert sich beim ersten manuellen Aufruf selber.
Code: Alles auswählen
procedure LogCurrentSong;
var
LogFile: TextFile;
SongTitle, ComputerName: String;
LogFilePath: String;
begin
// Hole den Titel des aktuellen Songs
SongTitle := CurrentFileName;
ComputerName := GetEnvironmentVariable('COMPUTERNAME');
// Bestimme den Pfad für die Log-Datei aus der Umgebungsvariable
LogFilePath := GetFolder_SBSongs + '\SongLog.csv';
// Öffne die Log-Datei zum Schreiben
AssignFile(LogFile, LogFilePath);
if FileExists(LogFilePath) then
Append(LogFile)
else
begin
Rewrite(LogFile);
// Schreibe die Kopfzeile in die Log-Datei
WriteLn(LogFile, 'Datum,Uhrzeit,Dateiname,Computername');
end;
// Schreibe den Song-Titel in die Log-Datei
WriteLn(LogFile, FormatDateTime('yyyy-mm-dd', Now) + ',' +
FormatDateTime('hh:nn:ss', Now) + ',' +
SongTitle + ',' +
ComputerName);
// Schließe die Log-Datei
CloseFile(LogFile);
end;
begin
// Rufe die Log-Funktion auf, wenn ein Song geöffnet wird. Es würde auch reichen, das einmalig aufzurufen
IniSFS.Script.OnObjectLoaded := CurrentScriptFileName;
LogCurrentSong;
end.
Gruß, Sebastian
Re: Langfristiges Protokoll
Du kannst es jetzt in SongBeamer 6.12a testen.
https://www.songbeamer.de/bin/SongBeame ... _Forum.exe
https://www.songbeamer.de/bin/SongBeame ... _Forum.exe
Gruß, Sebastian
Re: Langfristiges Protokoll
Hallo Sebastian und vielen Dank für die Umsetzung.
Es funktioniert großartig.
Ich musste lediglich noch zusätzlich den aktuellen Windows-Benutzer als Spalte abfragen, weil wir auf einem Gerät 3 Account's mit jeweils einer eigenen SongBeamer-Instanz haben. Und ich habe das "Komma" zwischen den einzelnen Informationen durch ein "Semikolon" ersetzt, damit die .csv direkt als Tabelle in Excel geöffnet wird.
Doch jetzt habe ich eine weitere Beanstandung: Mit dem CCLI-Account kann man sich immer nur an einem einzigen Gerät anmelden.
Immer, sobald ich mich an einem weiteren Gerät anmelde, dann wird das vorherige Gerät abgemeldet.
Das ergibt gar keinen Sinn, wenn man mindestens 5 SongBeamer-Instanzen in der Gemeinde verwendet.
Vielleicht ist SongBeamer garnicht Schuld daran, aber das weiß ich doch nicht.
Soweit mir bekannt ist, kann man bei CCLI nur zwei Account's haben, wobei der eine immer ein Administrator-Account wäre, den ich ungerne auf den SongBeamer-Geräten verwenden will.
Lieber Sebastian, ist es irgendwie möglich, diesen Fehler zu beheben ?
Ich denke, dass der Software-Entwickler hier mit CCLI an der Schnittstelle etwas nacharbeiten müssen, damit man mit einem Account auf mehreren Geräten gleichzeitig arbeiten kann.
Vielen Dank, dass du mich/uns supportest.
Gott liebt Dich und ich schätze dich sehr.
Es funktioniert großartig.
Ich musste lediglich noch zusätzlich den aktuellen Windows-Benutzer als Spalte abfragen, weil wir auf einem Gerät 3 Account's mit jeweils einer eigenen SongBeamer-Instanz haben. Und ich habe das "Komma" zwischen den einzelnen Informationen durch ein "Semikolon" ersetzt, damit die .csv direkt als Tabelle in Excel geöffnet wird.
Doch jetzt habe ich eine weitere Beanstandung: Mit dem CCLI-Account kann man sich immer nur an einem einzigen Gerät anmelden.
Immer, sobald ich mich an einem weiteren Gerät anmelde, dann wird das vorherige Gerät abgemeldet.
Das ergibt gar keinen Sinn, wenn man mindestens 5 SongBeamer-Instanzen in der Gemeinde verwendet.
Vielleicht ist SongBeamer garnicht Schuld daran, aber das weiß ich doch nicht.
Soweit mir bekannt ist, kann man bei CCLI nur zwei Account's haben, wobei der eine immer ein Administrator-Account wäre, den ich ungerne auf den SongBeamer-Geräten verwenden will.
Lieber Sebastian, ist es irgendwie möglich, diesen Fehler zu beheben ?
Ich denke, dass der Software-Entwickler hier mit CCLI an der Schnittstelle etwas nacharbeiten müssen, damit man mit einem Account auf mehreren Geräten gleichzeitig arbeiten kann.
Vielen Dank, dass du mich/uns supportest.
Gott liebt Dich und ich schätze dich sehr.
Re: Langfristiges Protokoll
Ich bin aktuell mit 3 PCs bei der CCLI eingeloggt, mit demselben Account. Das klappt einwandfrei. Aber laß uns hier bitte beim Thema bleiben.
Gruß, Sebastian
Re: Langfristiges Protokoll
Gut, zu dem Thema mit der automatischen Liedmeldung an CCLI werde ich ein neues Thema eröffnen, aber zu dem Protokoll habe ich bereits ein feedback.
Wir haben das script jetzt schon auf 3 SongBeamer-Instanzen laufen und das Protokoll füllt sich rapide.
Über das Protokoll sehe ich nun die Aktivitäten und stelle fest, dass dort etwas passiert, was mir vorher niemals aufgefallen und somit nicht bewusst war.
Die Person(en) die den SongBeamer bedienen klicken vor und während dem Event immer wieder im Ablaufplan herum, ohne die Projektion für diesen Song bzw. PPT zu starten. Dadurch wird die Vorschau geladen und ins Protokoll geschrieben.
Natürlich brauche ich diese Informationen nicht (immer) im Protokoll, weil es sonst zu viel Information wird.
Wäre es möglich das Script so anzupassen, damit man auswählen kann, ob nur die Dateien protokolliert werden, die projiziert werden oder wie es jetzt ist, alle Dateien, die geladen werden ? Ich denke da an die Automatische Liedmeldung und den VG Musikreport, da wird auch nur das erfasst, was projiziert wurde. Trotzdem würde ich die Funktion, die jetzt "alles" trackt behalten wollen um so erkennen zu können, ob das SongBeamer-Personal Hilfe beim Bedienen benötigt.
Wenn ich das richtig verstehe, dann muss nicht IniSFS.Script.OnObjectLoaded verwendet werden, sondern die Funktion, die auch schon für die Liedmeldung verwendet werden.
Es ist übrigens nicht schlimm, wenn am ende zwei Protokolle erstellt werden, das was jetzt schon super funktioniert und ein zweites, wo nur das protokolliert wird, was tatsächlich projiziert wird.
Vielen Dank
Gott liebt dich und ich schätze dich sehr
Wir haben das script jetzt schon auf 3 SongBeamer-Instanzen laufen und das Protokoll füllt sich rapide.
Über das Protokoll sehe ich nun die Aktivitäten und stelle fest, dass dort etwas passiert, was mir vorher niemals aufgefallen und somit nicht bewusst war.
Die Person(en) die den SongBeamer bedienen klicken vor und während dem Event immer wieder im Ablaufplan herum, ohne die Projektion für diesen Song bzw. PPT zu starten. Dadurch wird die Vorschau geladen und ins Protokoll geschrieben.
Natürlich brauche ich diese Informationen nicht (immer) im Protokoll, weil es sonst zu viel Information wird.
Wäre es möglich das Script so anzupassen, damit man auswählen kann, ob nur die Dateien protokolliert werden, die projiziert werden oder wie es jetzt ist, alle Dateien, die geladen werden ? Ich denke da an die Automatische Liedmeldung und den VG Musikreport, da wird auch nur das erfasst, was projiziert wurde. Trotzdem würde ich die Funktion, die jetzt "alles" trackt behalten wollen um so erkennen zu können, ob das SongBeamer-Personal Hilfe beim Bedienen benötigt.
Wenn ich das richtig verstehe, dann muss nicht IniSFS.Script.OnObjectLoaded verwendet werden, sondern die Funktion, die auch schon für die Liedmeldung verwendet werden.
Es ist übrigens nicht schlimm, wenn am ende zwei Protokolle erstellt werden, das was jetzt schon super funktioniert und ein zweites, wo nur das protokolliert wird, was tatsächlich projiziert wird.
Vielen Dank
Gott liebt dich und ich schätze dich sehr
Re: Langfristiges Protokoll
Kurzes Feedback: es funktioniert einwandfrei!
Vielen Dank.
Kurze Frage: Wenn eine Bibelstelle angezeigt wurde, dann steht im Protokoll z.B.: "bible:Schlachter 2000\182027" .
Kann man SongBeamer die Bibelstelle korrekt ins Protokoll schreiben lassen ?
Ich kann mit der Stelle 182027 nicht anfangen.
Vielen Dank.
Kurze Frage: Wenn eine Bibelstelle angezeigt wurde, dann steht im Protokoll z.B.: "bible:Schlachter 2000\182027" .
Kann man SongBeamer die Bibelstelle korrekt ins Protokoll schreiben lassen ?
Ich kann mit der Stelle 182027 nicht anfangen.