Spielstände (z.B. SNES) automatisch mit einem Server synchronisieren

  • Hallo zusammen,

    suche nach einer Möglichkeit, um die Spielstände von RetroArch (RPi3, LibreELEC) automatisch mit einem Server (Synology NAS) zu synchronisieren (bestenfalls mit WebDAV oder FTP oder SMB).
    Ich verwende derzeit SFTP (RPi in LibreELEC gestartet), um die Spielstände über Filezilla auf meinen PC zu laden und sie dann auf das Synology NAS zu kopieren.
    Ein bisschen umständlich, denke ich. Daher wäre es schön, wenn es ein Addon zum Synchronisieren gibt (oder direkt innerhalb RetroArch die Funktionalität).

  • Wenn die Spielstände in einem per Netzwerk zugänglichen Ordner liegen, könnte man das dem NAS sagen, dass er per Zeitplan die Daten da "abholt" und auf den NAS Speicher schiebt.

    Bin mir sicher, dass das NAS solche Funktionen bereithält.

  • Ich werfe mal einen anderen Lösungsansatz in den Raum:

    Syncthing

    Mit der OpenSource-Software lassen sich prima plattformübergreifend Daten synchronisieren.
    Seit einigen Versionen gibts auch eine Funktion bei der nicht nur nach Zeitplan synchronisiert wird, sondern auch wenn Änderungen erkannt werden. Also in deinem Fall wenn ein Spielstand aktualisiert wurde.

    Ich nutze das aktuell unter anderem zum Abgleich von Spielständen zwischen einem Windows-PC, einem Android-TV, einem Raspberry Pi 3 sowie einem Android-Smartphone und einer QNAP-NAS.

  • Für die Synology gibt es wohl auch ein Package:
    https://synocommunity.com/package/syncthing

    Dass der RPi nicht dauerhaft läuft ist in dem Fall kein Problem.
    Syncthing kann so konfiguriert werden dass es bei Systemstart automatisch als Dienst im Hintergrund mitläuft. Dann werden die Daten entweder direkt synchronisiert nachdem Änderungen stattgefunden haben, sprich der Spielstand gespeichert wurde, oder spätestens dann wenn der RPi das nächste Mal gestartet wird, sofern er direkt nach dem Speichern ausgeschaltet wurde.

    Das Tool ist wirklich sehr schnell und Ressoucen-schonend.
    Nutze das z.B. auch um meine umfangreiche Musiksammlung an insgesamt 5 weit entfernten Standorten auf dem selben Stand zu halten. Das funktioniert praktisch in Echtzeit.

  • Ich hab dir mal meine Doku rausgesucht, die ich mir damals zur Installation auf dem RPi(2B+3B) erstellt hatte:

    Installation Syncthing via SSH:

    Code
    sudo -i  
    cd /usr/src 
    wget https://github.com/syncthing/syncthing/releases/download/v1.3.4/syncthing-linux-arm-v1.3.4.tar.gz 
    tar xvzf syncthing-linux-arm-*.tar.gz 
    cd syncthing-linux-arm-*  
    cp syncthing /usr/bin/ 
    cd / 
    syncthing


    "My ID" notieren. Die wird später zur Verknüpfung mit anderen Geräten benötigt.

    config.xml anpassen

    Code
    nano /root/.config/syncthing/config.xml
    Bash
    <gui enabled="true" tls="false"> 
        <address>127.0.0.1:8080</address> 
    </gui>

    durch

    Bash
    <gui enabled="true" tls="false"> 
        <address>0.0.0.0:8384</address> 
    </gui>

    ersetzen

    syncthing starten

    Code
    syncthing


    Autostart einrichten:

    Code
    sudo nano /etc/init.d/syncthing
    Code
    chmod +x /etc/init.d/syncthing 
    update-rc.d syncthing defaults 
    service syncthing start 
    sudo reboot

    Ich denke das sollte so noch immer funktionieren.
    Die weitere Konfiguration erfolgt dann über Webbrowser http://IPdesRPi:8384 und ist an sich selbsterklärend und nicht weiter kompliziert. Gibt aber auch viele Anleitungen dazu im Netz.

  • @psychofaktory vielen Dank für deine Anregung bezüglich Syncthing. Ich werde mich da mal genauer einlesen
    Dazu ein paar Fragen:

    • Wie verhält sich die Synchronisationsgeschwindigkeit von Syncthing im Vergleich zu FreeFileSync (nutze ich aktuell um meinen PC mit dem Synology NAS zu synchronisieren)
    • Wie verhält sich die Synchronisationsgeschwindigkeit von Syncthing im Vergleich zu FolderSync (Android. Nutze ich um über FTP die Musik von meinem Synology NAS auf das Smartphone zu synchronisieren)
    • Kann ich die Synchronisationsrichtung (PC -> NAS, NAS -> Android) einstellen und einzelne Ordner ausschließen?
    • Vorteile/Nachteile von Syncthing bezüglich FreeFileSync?
    • Für deine geschilderte Einrichtung am RPi muss ich von LibreELEC auf Raspbian + Kodi umsteigen? (Hätte dann den Vorteil, dass ich auch einen Webbrowser innerhalb Raspbian am Fernseher hätte?)
      Ist die Performance von Raspbian + Kodi schlechter als LibreELEC auf dem RPi3?
    • Lohnt sich der Aufwand, um alles auf Syncthing umzustellen? :D
    • zu FreeFileSync habe ich leider keine Erfahrungswerte.
    • FolderSync nutze ich auch, allerdings nur um einzelne Verzeichnisse meines Android-Smartphones auf die NAS zu synchronisieren. Zur Synchronisation im LAN habe ich leider keine messtechnischen Vergleichswerte. Meiner subjektiven Einschätzung nach ist die Synchronisationsgeschwindigkeit in allen Szenarien mindestens vergleichbar wenn nicht sogar schneller. Syncthing setzt auf das Bittorrent-Protokoll auf. Vor allem wenn die Daten zu mehr als einem Endpunkt übertragen werden sollen geht das wirklich schnell, weil die Daten effektiv nur einmal hochgeladen werden müssen und die einzelnen Knoten ihre jeweils bereits vom Master erhaltenen Daten untereinander via Peer-To-Peer wieder abgleichen können. Meine 40 MBit/s Upload ins Internet werden jedenfalls ganz gut ausgelastet.
    • Beim Verbinden der einzelnen Syncthing-Knoten kann bei jedem Gerät für jedes individuelle zu synchronisierende Verzeichnis gewählt werden ob die Elemente nur gesendet, nur empfangen oder gesendet und empfangen werden können.
    • Ausschlüsse sind sowohl für einzelen Dateien, als auch für Ordner auf jeder Ebene möglich
    • Für LibreELEC gibt es offenbar direkt ein AddOn ;)
      ich würde bei LibreELEC bleiben.
    • Ich habe (mit Ausnahme des beschriebenen FolderSync-Szenarios) alle Synchronisationsvorgänge auf Syncthing umgestellt und konnte bisher keinerlei Nachteile feststellen.
  • Ich hatte mich damit auch mal beschäftigt aber weil immer was dazwischen gekommen ist. Nie richtig fertig geworden.

    Hatte mich an sowas wie das hier gehalten.

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.


    Kann man evtl. Abwandeln.
    Oder halt so nutzen... Save games in der cloud ist ja nicht so schlimm.

    Cheers

  • Ich hatte mich damit auch mal beschäftigt aber weil immer was dazwischen gekommen ist. Nie richtig fertig geworden.

    Hatte mich an sowas wie das hier gehalten.

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Kann man evtl. Abwandeln.
    Oder halt so nutzen... Save games in der cloud ist ja nicht so schlimm.

    Cheers

    Bei mir funktioniert das Video nicht


    @psychofaktory Ich bin auch sehr interessiert an dem Thema. Ich hab das Addon für LibreElec installiert, aber es wird unter meinen Addons nicht aufgeführt. Muss ich das via ssh konfigurieren? Und wenn ja, was muss ich in die Konsole eingeben? Ich vermute mal deine o.g. Doku gilt nicht für LE oder?

  • Warum verwendest du nicht auch Syncthing für das Android-Smartphone. Gibt es da Einschränkungen, die nur mit FolderSync realisiert werden können?

    Ich hab FolderSync schon einige Jahre im Einsatz und bisher läuft das auch problemlos für mein Einsatzszenario. Besteht also kein Bedarf das zu ändern.
    Aktuell synchronisiere ich hiermit einzelne Verzeichnisse, unter Beibehaltung auf dem Quellgerät gelöschter Dateien im Ziel, nach einem vorgegebenen Zeitplan, unter der Bedingung, dass ich mich in meinem WLAN zuhause befinde.
    Das ließe sich sich mittels Syncthing ebenfalls erreichen indem ich die Gerätesuche auf lokale Geräte beschränke. Eine Zeitplan-Funktion gibt es allerdings meines Wissens nach nicht. Man kann lediglich die Überwachung auf Änderungen deaktivieren und einen festen Intervall zwischen den Synchronisationen festlegen.
    Wie gesagt: Das ist ein ganz anderer Anwendungsfall mit anderen Anforderungen für den ich FolderSync einsetze.


    Die im Video von Mumpitz-88 vorgestellt Lösung basiert ja auf dem gleichen Prinzip wie die von mir vorgestellte. Nur dass bei Syncthing die Datenhoheit in der eigenen Hand liegt, das P2P-Protokoll verwendet wird, umfangreiche Einstellungen selbst getroffen werden können und ein Open-Source-Sync-Client für praktisch alle Betriebssysteme bereitsteht.
    In wie weit das für GDrive oder vergleichbare Dienste zutrifft kann ich nicht beurteilen.
    Für mich waren das jedenfalls wichtige Kriterien die derartige Dienste ausgeschlossen haben.



    Ich bin auch sehr interessiert an dem Thema. Ich hab das Addon für LibreElec installiert, aber es wird unter meinen Addons nicht aufgeführt. Muss ich das via ssh konfigurieren? Und wenn ja, was muss ich in die Konsole eingeben? Ich vermute mal deine o.g. Doku gilt nicht für LE oder?

    Ich habe das AddOn selbst nicht unter LibreElec im Einsatz, sondern war gestern nur bei einer kurzen Recherche darauf gestoßen. Evtl. fehlt hier eine passende Abhängigkeit noch?
    Für mein Verständnis sollte bei dem AddOn dann keine manuelle Konfiguration via SSH oder dergleichen erforderlich sein.

    Die oben beschriebene Doku hatte ich mir für die Audiodistribution MoodeAudio (MoodeOS 4.2) erstellt um im Hintergrund meine Musiksammlung bei neuer Musik auf allen Geräten automatisch zu erweitern bzw. synchron zu halten. Die Distribution basiert auf Raspbian-Lite.
    Ob sich das unter LibreELEC 1:1 übertragen ließe kann ich leider nicht sagen

  • Ich hatte das früher mal mit Lakka, dessen Basis auf LibreElec aufsetzt, einfach mit einem Mounten eines Netzwerkordners der Diskstation auf dem Pi gelöst. Somit speicherst du direkt auf der Synology und brauchst dich nicht mehr um eine Synchronisierung zu kümmern.

    Hier die Anleitungen für LE und Lakka:
    https://libreelec.wiki/how_to/mount_network_share
    https://www.lakka.tv/doc/Serving-ROMs-from-a-NAS/

    Brauchst natürlich Schreibrechte für den Netzwerkordner.

  • Ich hatte das früher mal mit Lakka, dessen Basis auf LibreElec aufsetzt, einfach mit einem Mounten eines Netzwerkordners der Diskstation auf dem Pi gelöst. Somit speicherst du direkt auf der Synology und brauchst dich nicht mehr um eine Synchronisierung zu kümmern.

    Hier die Anleitungen für LE und Lakka:
    https://libreelec.wiki/how_to/mount_network_share
    https://www.lakka.tv/doc/Serving-ROMs-from-a-NAS/

    Brauchst natürlich Schreibrechte für den Netzwerkordner.

    Kann ich auch einen SFTP-Share einrichten (-> das meine SNES-Spielstände direkt auf dem NAS gespeichert werden)?
    SFTP-Share deshalb, da ich ja teilweise den RPi auch im Urlaub verwenden will und dann in einem anderen Netzwerk bin und auch dort auf meine Spielstände zugreifen will.
    Die Dateien sind dann nicht lokal gespeichert, oder? Denn wenn ich im Urlaub kein Internet habe würde ich ja auch gerne weiterspielen :D


    Wenn ich das gemäß https://wiki.libreelec.tv/how-to/mount_network_share mit dem folgenden Code mache bekomme ich jedoch diese Fehlermeldung

  • @update.freak Hi, ich bin zu lange weg von dem Thema, um da auf dem neuesten Stand zu sein (Lakka verwende ich nicht mehr).

    Aber ja, die Dateien wären mit der Methode nicht lokal auf dem Gerät gespeichert. Ich hatte das später dann mit Syncthing gemacht, um Spielstände vom PC-Retroarch mit dem Android-Retroarch aktuell zu halten. Das hatte funktioniert, aber zur Zeit spiele ich eigentlich kaum noch.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!