Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Lokal Notizen verwalten

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Lokal Notizen verwalten

Geplant Angeheftet Gesperrt Verschoben Off Topic
43 Beiträge 5 Kommentatoren 395 Aufrufe 7 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • David G.D David G.

    @peterfido

    Und ich hab bis morgen vormittag kein KI Guthaben mehr ^^.

    P Offline
    P Offline
    peterfido
    schrieb am zuletzt editiert von
    #26

    @David-G. sagte in Lokal Notizen verwalten:

    Und ich hab bis morgen vormittag kein KI Guthaben mehr ^^.

    Jetzt hat die KI Zeit, zu überlegen, warum das mit den 30 Sekunden passiert. ;)

    Gruß

    Peterfido


    Proxmox auf Intel NUC12WSHi5
    ioBroker: Debian (VM)
    CCU: Debmatic (VM)
    Influx: Debian (VM)
    Grafana: Debian (VM)
    eBus: Debian (VM)
    Zigbee: Debian (VM) mit zigbee2mqtt

    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      peterfido
      schrieb am zuletzt editiert von
      #27

      Eine Idee habe ich nocht. Wenn jede Notiz zwei Zeitstempel [erstellt,geändert] mitschleppt, könnte man diese z.B. für Synchronisationszwecke nutzen. Zumindest hat man schonmal die Infos. Der erstellt am -Stempel wäre nebenbei als eindeutige ID brauchbar.

      Gruß

      Peterfido


      Proxmox auf Intel NUC12WSHi5
      ioBroker: Debian (VM)
      CCU: Debmatic (VM)
      Influx: Debian (VM)
      Grafana: Debian (VM)
      eBus: Debian (VM)
      Zigbee: Debian (VM) mit zigbee2mqtt

      David G.D 1 Antwort Letzte Antwort
      0
      • P peterfido

        Eine Idee habe ich nocht. Wenn jede Notiz zwei Zeitstempel [erstellt,geändert] mitschleppt, könnte man diese z.B. für Synchronisationszwecke nutzen. Zumindest hat man schonmal die Infos. Der erstellt am -Stempel wäre nebenbei als eindeutige ID brauchbar.

        David G.D Online
        David G.D Online
        David G.
        schrieb am zuletzt editiert von David G.
        #28

        @peterfido

        Eine Eindeutige ID bekommen sie schon über den Zeitstempel.
        Ebenso das JSON wenn es geschrieben wird (Über das Dateiattribut).
        Darüber wird geprüft ob sich was geändert hat über einem anderem Browser. Also nicht pro Notiz sondern allgemein.

        • Du öffnest den Editor eine Notiz am Rechner
        • TS der JSON wird gelesen
        • Speichern
        • Script prüft ob sich der TS seit dem öffnen geändert hat (geht ja nur über einen anderen Rechner)
        • Wenn nein, es wird gespeichert
        • Wenn ja, es kommt die Warnung die du kennst

        Man könnte aber noch einbauen, dass wenn Rechner A im Bearbeitungsmodus ist, Rechner B nicht in den Bearbeitungsmodus kommt und eine Meldung erscheint. Sowas wie "Warte bis ein anderer User mit dem bearbeiten seiner Notiz fertig ist" oder so. (Falls man es hinkommt zu erkennen, wenn der Browser einfach geschlossen wird im Bearbeitungsmodus. Sonst könnte man stecken bleiben. Teste ich mal.

        EDIT
        Das Problem mit den 30sek sollte gefixt sein und Pessimistic Locking (nur ein Gerät kann zum selben Zeitpunkt was bearbeiten) eingebaut.

        Meine ersten Tests waren gut.

        EDIT 2

        Unter setup_test.sh hab ich auf git eine Version die wenn ein Termin erreicht ist einen webhook senden kann. Hab bisher nur "Post" getestet. Das klappt wunderbar. Wenn das Notiz Tool im selben Netz wie der iobroker läuft kann man auch schnell die Daten an die simpleApi senden.
        Oder sämtliche anderen Dienste die das unterstützen.

        Zeigt eure Lovelace-Visualisierung klick
        (Auch ideal um sich Anregungen zu holen)

        Meine Tabellen für eure Visualisierung klick

        1 Antwort Letzte Antwort
        1
        • P Offline
          P Offline
          peterfido
          schrieb am zuletzt editiert von peterfido
          #29

          @david-g. ich arbeite gerade an einer App für Android. Das klappt schon relativ gut. Was mir allerdings beim Testen passiert ist, war, dass alle Notizen verloren gingen. - In der Testphase nicht schlimm. Allerdings sind auch alle Settings mit verschwunden, da in der selben json. Das kann wohl auch jederzeit passieren, wenn der Server Murks empfängt.

          Das sollte / könnte noch robuster werden.

          Gruß

          Peterfido


          Proxmox auf Intel NUC12WSHi5
          ioBroker: Debian (VM)
          CCU: Debmatic (VM)
          Influx: Debian (VM)
          Grafana: Debian (VM)
          eBus: Debian (VM)
          Zigbee: Debian (VM) mit zigbee2mqtt

          David G.D 1 Antwort Letzte Antwort
          0
          • P peterfido

            @david-g. ich arbeite gerade an einer App für Android. Das klappt schon relativ gut. Was mir allerdings beim Testen passiert ist, war, dass alle Notizen verloren gingen. - In der Testphase nicht schlimm. Allerdings sind auch alle Settings mit verschwunden, da in der selben json. Das kann wohl auch jederzeit passieren, wenn der Server Murks empfängt.

            Das sollte / könnte noch robuster werden.

            David G.D Online
            David G.D Online
            David G.
            schrieb am zuletzt editiert von
            #30

            @peterfido

            App für Notizen?
            Dachte wolltest von jedem Gerät dran können.

            In wie fern robuster? Es wird ein sauberes json geschrieben.
            Im nächsten Update kommt noch ein fix, der es erst in eine tmp Datei schreibt und wenn fertig in die echte Datei, falls die Verbindung abbricht etc und dann nichts korrupt wird.

            Zeigt eure Lovelace-Visualisierung klick
            (Auch ideal um sich Anregungen zu holen)

            Meine Tabellen für eure Visualisierung klick

            1 Antwort Letzte Antwort
            0
            • P Offline
              P Offline
              peterfido
              schrieb am zuletzt editiert von
              #31

              Moin,
              ja, von jedem Gerät dran, passt. Der Plan ist online zu arbeiten, wo es geht, und eine App, welche die Notizen zwischenspeichert und so offline zur Verfügung stellt.

              Aktuell lade ich die Notizen einzeln in eine lokale Datenbank. Das geht auch schon. Nur die Anzeige ist noch nicht so, wie online, da der Browser die ganze Arbeit macht und ich alles nachbauen müsste.

              Vielleicht sollte ich neu anfangen, und als Worker eine Browserengine nutzen.

              Gruß

              Peterfido


              Proxmox auf Intel NUC12WSHi5
              ioBroker: Debian (VM)
              CCU: Debmatic (VM)
              Influx: Debian (VM)
              Grafana: Debian (VM)
              eBus: Debian (VM)
              Zigbee: Debian (VM) mit zigbee2mqtt

              David G.D 1 Antwort Letzte Antwort
              0
              • P peterfido

                Moin,
                ja, von jedem Gerät dran, passt. Der Plan ist online zu arbeiten, wo es geht, und eine App, welche die Notizen zwischenspeichert und so offline zur Verfügung stellt.

                Aktuell lade ich die Notizen einzeln in eine lokale Datenbank. Das geht auch schon. Nur die Anzeige ist noch nicht so, wie online, da der Browser die ganze Arbeit macht und ich alles nachbauen müsste.

                Vielleicht sollte ich neu anfangen, und als Worker eine Browserengine nutzen.

                David G.D Online
                David G.D Online
                David G.
                schrieb am zuletzt editiert von
                #32

                @peterfido

                Wie oft bist du offline, dass das wirklich lohnt?
                Mein nächster test ist auf SQL lite zu gehen. Bringt phyton schon mit und alles wird robuster.

                Zeigt eure Lovelace-Visualisierung klick
                (Auch ideal um sich Anregungen zu holen)

                Meine Tabellen für eure Visualisierung klick

                1 Antwort Letzte Antwort
                0
                • P Offline
                  P Offline
                  peterfido
                  schrieb am zuletzt editiert von peterfido
                  #33

                  Hin und wieder.
                  Es sollen für Urlaubsreisen alle Infos parat sein. Flugnr, Zeiten, Buchungsnummern, usw.

                  Mir waren beim Testen vorhin z.B. Skizzen nur halb übertragen worden. Allerdings nur im Simulator vom Android Studio. Auf dem Handy gab es diese Probleme nicht.

                  Ich habe die App soweit fertig, dass die alles anzeigt. Die Rücksynchronisation nehme ich wieder raus. Klappt aktuell sogar für die Notizen. Aber dafür (bearbeiten) ist ja der Browser gedacht.

                  Eine Datenbank wäre für größere Sammlungen von Vorteil. Da bräuchte man evtl. nur die geänderten IDs übertragen. Das Sortieren der Einträge wird dadurch evtl. erschwert.

                  Gruß

                  Peterfido


                  Proxmox auf Intel NUC12WSHi5
                  ioBroker: Debian (VM)
                  CCU: Debmatic (VM)
                  Influx: Debian (VM)
                  Grafana: Debian (VM)
                  eBus: Debian (VM)
                  Zigbee: Debian (VM) mit zigbee2mqtt

                  David G.D 1 Antwort Letzte Antwort
                  0
                  • P peterfido

                    Hin und wieder.
                    Es sollen für Urlaubsreisen alle Infos parat sein. Flugnr, Zeiten, Buchungsnummern, usw.

                    Mir waren beim Testen vorhin z.B. Skizzen nur halb übertragen worden. Allerdings nur im Simulator vom Android Studio. Auf dem Handy gab es diese Probleme nicht.

                    Ich habe die App soweit fertig, dass die alles anzeigt. Die Rücksynchronisation nehme ich wieder raus. Klappt aktuell sogar für die Notizen. Aber dafür (bearbeiten) ist ja der Browser gedacht.

                    Eine Datenbank wäre für größere Sammlungen von Vorteil. Da bräuchte man evtl. nur die geänderten IDs übertragen. Das Sortieren der Einträge wird dadurch evtl. erschwert.

                    David G.D Online
                    David G.D Online
                    David G.
                    schrieb zuletzt editiert von David G.
                    #34

                    @peterfido

                    Meine Datenbankversion läuft mittlerweile stabil denke ich.
                    Nur die Skizzen werden noch als json und Bild gespeichert.

                    Würde auch entweder online oder offline machen. Was im mischbetrieb finde ich anfällig.
                    Dann lieber online und wenn man mal was wichtiges hat nen Screenshot machen falls man mal offline ist^^.

                    Zeigt eure Lovelace-Visualisierung klick
                    (Auch ideal um sich Anregungen zu holen)

                    Meine Tabellen für eure Visualisierung klick

                    1 Antwort Letzte Antwort
                    0
                    • P Offline
                      P Offline
                      peterfido
                      schrieb zuletzt editiert von peterfido
                      #35

                      Guten Morgen,

                      sehe ich mir nachher mal an. Können beide nebeneinander installiert werden?

                      Ich probiere es mal, indem ich

                      INSTALL_DIR="/opt/notiz-tool"
                      SERVICE_NAME="notizen.service"
                      

                      ändere.

                      Die Version ohne Datenbank läuft soweit. Da die data.json gelitten hattte, als ich diese per Android-Simulator genutzt hatte, habe ich es mal per VPN probiert. Da dauerte der Seitenaufbau bissel länge, und schnell mehrere Haken bei einer To-Do-Liste ändern brachten die Meldung hervor, dass auf einem anderen Gerät geändert wurde, ein Stream-Abriss konnte ich jedoch nicht provozieren. Liegt evtl. am Simulator.

                      Gruß

                      Peterfido


                      Proxmox auf Intel NUC12WSHi5
                      ioBroker: Debian (VM)
                      CCU: Debmatic (VM)
                      Influx: Debian (VM)
                      Grafana: Debian (VM)
                      eBus: Debian (VM)
                      Zigbee: Debian (VM) mit zigbee2mqtt

                      David G.D 1 Antwort Letzte Antwort
                      0
                      • P Offline
                        P Offline
                        peterfido
                        schrieb zuletzt editiert von peterfido
                        #36

                        Die SQL-Version habe ich jetzt mal parallel installiert. Als Port 8081 gewählt.

                        peter@debianserver:~$ sudo ./notizen-sql-setup.sh
                        [sudo] Passwort für peter:
                        Welcher Port soll für das Notiz-Tool genutzt werden? (Standard: 8080)
                        Port: 8081
                        
                        

                        Allerdings öffnet sich die Seite im Browser nicht.

                        Geändert im Skript habe ich Folgendes:

                        INSTALL_DIR="/opt/notiz-tool-sql"
                        SERVICE_NAME="notizen-sql.service"
                        

                        und etwas weiter unten nach den mkdirs:

                        mkdir -p $INSTALL_DIR/static 
                        mkdir -p $INSTALL_DIR/templates 
                        mkdir -p $INSTALL_DIR/uploads 
                        mkdir -p $INSTALL_DIR/backups
                        
                        wget -O $INSTALL_DIR/static/Sortable.min.js https://cdn.jsdelivr.net/npm/sortablejs@1.15.0/Sortable.min.js	
                        wget -O $INSTALL_DIR/static/tomorrow-night-blue.min.css	https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/tomorrow-night-blue.min.css	
                        wget -O $INSTALL_DIR/static/highlight.min.js https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js
                        

                        Also die externen Dinge nach intern geholt, da ich nicht weiß, wenn man mit nocache arbeitet, wie oft die da heruntergeladen werden.

                        Dementsprechend noch in der index.html die Pfade angepasst:

                            <link rel="stylesheet" href="/static/style.css?v={{ v }}">
                            <script src="/static/Sortable.min.js"></script>
                            <link rel="stylesheet" href="/static/tomorrow-night-blue.min.css">
                            <script src="/static/highlight.min.js"></script>
                        

                        Das habe ich in der Urversion allerdings auch schon so gemacht. Evtl. liegt es am Port 8081

                        Gruß

                        Peterfido


                        Proxmox auf Intel NUC12WSHi5
                        ioBroker: Debian (VM)
                        CCU: Debmatic (VM)
                        Influx: Debian (VM)
                        Grafana: Debian (VM)
                        eBus: Debian (VM)
                        Zigbee: Debian (VM) mit zigbee2mqtt

                        1 Antwort Letzte Antwort
                        0
                        • P peterfido

                          Guten Morgen,

                          sehe ich mir nachher mal an. Können beide nebeneinander installiert werden?

                          Ich probiere es mal, indem ich

                          INSTALL_DIR="/opt/notiz-tool"
                          SERVICE_NAME="notizen.service"
                          

                          ändere.

                          Die Version ohne Datenbank läuft soweit. Da die data.json gelitten hattte, als ich diese per Android-Simulator genutzt hatte, habe ich es mal per VPN probiert. Da dauerte der Seitenaufbau bissel länge, und schnell mehrere Haken bei einer To-Do-Liste ändern brachten die Meldung hervor, dass auf einem anderen Gerät geändert wurde, ein Stream-Abriss konnte ich jedoch nicht provozieren. Liegt evtl. am Simulator.

                          David G.D Online
                          David G.D Online
                          David G.
                          schrieb zuletzt editiert von
                          #37

                          @peterfido sagte in Lokal Notizen verwalten:

                          sehe ich mir nachher mal an. Können beide nebeneinander installiert werden?

                          Ich denke schon, hab ich aber nicht getestet An der json Variante arbeite ich aber auch nicht weiter.

                          Die SQL Version hat schon einige neue Features bekommen.

                          Zb einen Verlauf für Notizen (Die noch nicht gelöscht wurden) oder Backlinks (wenn du mit @ auf eine Notiz verweist hast du in der anderen Notiz einen Hinweis, dass die andere Notiz auf diese verweist)

                          Zeigt eure Lovelace-Visualisierung klick
                          (Auch ideal um sich Anregungen zu holen)

                          Meine Tabellen für eure Visualisierung klick

                          1 Antwort Letzte Antwort
                          0
                          • P Offline
                            P Offline
                            peterfido
                            schrieb zuletzt editiert von peterfido
                            #38

                            ich suche gerade:

                            peter@debianserver:~$ sudo systemctl status notizen-sql
                            × notizen-sql.service - Notizen V2 (SQLite)
                                 Loaded: loaded (/etc/systemd/system/notizen-sql.service; enabled; preset: enabled)
                                 Active: failed (Result: exit-code) since Sun 2026-03-01 08:34:56 CET; 13min ago
                               Duration: 228ms
                             Invocation: 1e633e7866ad4bd4851d90738a5011bc
                               Main PID: 835 (code=exited, status=1/FAILURE)
                            
                            Mär 01 08:34:56 debianserver systemd[1]: notizen-sql.service: Scheduled restart job, restart counter is at 5.
                            Mär 01 08:34:56 debianserver systemd[1]: notizen-sql.service: Start request repeated too quickly.
                            Mär 01 08:34:56 debianserver systemd[1]: notizen-sql.service: Failed with result 'exit-code'.
                            Mär 01 08:34:56 debianserver systemd[1]: Failed to start notizen-sql.service - Notizen V2 (SQLite).
                            peter@debianserver:~$ sudo /opt/notiz-tool-sql/app.py
                            /opt/notiz-tool-sql/app.py: 1: from: not found
                            /opt/notiz-tool-sql/app.py: 2: from: not found
                            import: unable to open X server `' @ error/import.c/ImportImageCommand/348.
                            import: unable to open X server `' @ error/import.c/ImportImageCommand/348.
                            import: unable to open X server `' @ error/import.c/ImportImageCommand/348.
                            import: unable to open X server `' @ error/import.c/ImportImageCommand/348.
                            import: unable to open X server `' @ error/import.c/ImportImageCommand/348.
                            import: unable to open X server `' @ error/import.c/ImportImageCommand/348.
                            import: unable to open X server `' @ error/import.c/ImportImageCommand/348.
                            import: unable to open X server `' @ error/import.c/ImportImageCommand/348.
                            import: unable to open X server `' @ error/import.c/ImportImageCommand/348.
                            import: unable to open X server `' @ error/import.c/ImportImageCommand/348.
                            import: unable to open X server `' @ error/import.c/ImportImageCommand/348.
                            import: unable to open X server `' @ error/import.c/ImportImageCommand/348.
                            import: unable to open X server `' @ error/import.c/ImportImageCommand/348.
                            /opt/notiz-tool-sql/app.py: 16: from: not found
                            /opt/notiz-tool-sql/app.py: 18: Syntax error: "(" unexpected
                            peter@debianserver:~$
                            
                            

                            Braucht der x-server?

                            Gruß

                            Peterfido


                            Proxmox auf Intel NUC12WSHi5
                            ioBroker: Debian (VM)
                            CCU: Debmatic (VM)
                            Influx: Debian (VM)
                            Grafana: Debian (VM)
                            eBus: Debian (VM)
                            Zigbee: Debian (VM) mit zigbee2mqtt

                            1 Antwort Letzte Antwort
                            0
                            • P Offline
                              P Offline
                              peterfido
                              schrieb zuletzt editiert von peterfido
                              #39

                              Worin unterscheiden sich die beiden?

                              image.png

                              Edit: Wenn ich es über python3 starte, fehlt flask.

                              peter@debianserver:~$ sudo python3 /opt/notiz-tool-sql/app.py
                              Traceback (most recent call last):
                                File "/opt/notiz-tool-sql/app.py", line 1, in <module>
                                  from flask import Flask, render_template, request, jsonify, send_from_directory, session, redirect, url_for, send_file
                              ModuleNotFoundError: No module named 'flask'
                              
                              

                              edit2:

                              die scheinen sich im cron-job zu beißen, da der Name hard-codiert ist:

                              rm -f /etc/cron.d/notizen-tool
                              

                              Gruß

                              Peterfido


                              Proxmox auf Intel NUC12WSHi5
                              ioBroker: Debian (VM)
                              CCU: Debmatic (VM)
                              Influx: Debian (VM)
                              Grafana: Debian (VM)
                              eBus: Debian (VM)
                              Zigbee: Debian (VM) mit zigbee2mqtt

                              1 Antwort Letzte Antwort
                              0
                              • P Offline
                                P Offline
                                peterfido
                                schrieb zuletzt editiert von peterfido
                                #40

                                OK, wenn ich es über die alte Version drüber installiere, läuft es.

                                Leider wurden die alten Notizen nicht importiert und können auch nicht aus dem Backup importiert werden.

                                a637f38d-8f2f-4f66-aec8-72e8ba98e6aa-image.png

                                Ein älteres Backup zum manuellen Extrahieren der Texte lässt sich leider nicht bequem herunterladen.

                                Gruß

                                Peterfido


                                Proxmox auf Intel NUC12WSHi5
                                ioBroker: Debian (VM)
                                CCU: Debmatic (VM)
                                Influx: Debian (VM)
                                Grafana: Debian (VM)
                                eBus: Debian (VM)
                                Zigbee: Debian (VM) mit zigbee2mqtt

                                David G.D 2 Antworten Letzte Antwort
                                0
                                • P peterfido

                                  OK, wenn ich es über die alte Version drüber installiere, läuft es.

                                  Leider wurden die alten Notizen nicht importiert und können auch nicht aus dem Backup importiert werden.

                                  a637f38d-8f2f-4f66-aec8-72e8ba98e6aa-image.png

                                  Ein älteres Backup zum manuellen Extrahieren der Texte lässt sich leider nicht bequem herunterladen.

                                  David G.D Online
                                  David G.D Online
                                  David G.
                                  schrieb zuletzt editiert von
                                  #41

                                  @peterfido

                                  Komisch, bei mir hat er beim Setup der SQL Version alles sauber importiert aus der json.

                                  Die neue Version lässt auch nur einen restore einer DB zu, da eigentlich die json importiert sein sollte.

                                  Hast du setup_sql oder setup_sql2 installiert?
                                  Ersteres hat bei mir den Import gemacht. Auf die 2 bin ich in einem Schritt mit sehr vielen Änderungen gegangen. Evtl ist das da verloren gegangen.

                                  P. S.
                                  Gemini meint zu 2 Versionen gleichzeitig:

                                  Kurz und knapp: Damit sich zwei Instanzen auf demselben Server nicht gegenseitig überschreiben, musst du im Setup-Skript an ein paar Stellen die Namen und Pfade "klonen" (z. B. eine "2" dranhängen).
                                  
                                  Hier sind die 5 Dinge, die du im Code anpassen musst:
                                  
                                  ### 1. Die Haupt-Variablen (ca. Zeile 28)
                                  
                                  Ändere das Installationsverzeichnis und den Namen des Systemdienstes:
                                  
                                  * `INSTALL_DIR="/opt/notiz-tool-2"`
                                  * `SERVICE_NAME="notizen2.service"`
                                  
                                  ### 2. Die hardcodierten Pfade in den Hintergrund-Skripten
                                  
                                  In der `cleanup.py` (ca. Zeile 606) und in der `backup.sh` (ca. Zeile 641) stehen aktuell noch feste Pfade. Ändere diese auf dein neues Verzeichnis:
                                  
                                  * In `cleanup.py`:
                                  `DB = '/opt/notiz-tool-2/data.db'` und `UPL = '/opt/notiz-tool-2/uploads'`
                                  * In `backup.sh`:
                                  `cd /opt/notiz-tool-2`
                                  
                                  ### 3. Der Linux-Systembenutzer (ca. ab Zeile 899)
                                  
                                  Ersetze im unteren Teil des Skripts (bei den Rechten, im Systemd-Service und beim Cronjob) den Benutzer `notizen` durch z.B. `notizen2`.
                                  Beispiel: `if ! id -u notizen2 > /dev/null 2>&1; then useradd -r -s /bin/false notizen2` und `chown -R notizen2:notizen2 $INSTALL_DIR`.
                                  
                                  ### 4. Der Dateiname für den Cronjob (ca. Zeile 925)
                                  
                                  Damit der Cronjob der ersten Instanz nicht gelöscht wird, ändere den Namen der Datei, die in `/etc/cron.d/` abgelegt wird:
                                  
                                  * `rm -f /etc/cron.d/notizen-tool-2`
                                  * Und entsprechend bei den `echo`-Befehlen danach auch `>> /etc/cron.d/notizen-tool-2` schreiben.
                                  
                                  ### 5. Der Port
                                  
                                  Das passiert nicht im Code, sondern ist selbsterklärend: Wenn das Skript dich am Anfang fragt, gibst du einfach einen anderen Port an (z. B. `8081`).
                                  
                                  ---
                                  
                                  Wenn du diese Anpassungen machst, laufen beide Tools komplett isoliert voneinander.
                                  
                                  Bist du bereit, dir als Nächstes die Swipe-Geste für die Sidebar auf dem Smartphone anzuschauen?
                                  

                                  Zeigt eure Lovelace-Visualisierung klick
                                  (Auch ideal um sich Anregungen zu holen)

                                  Meine Tabellen für eure Visualisierung klick

                                  1 Antwort Letzte Antwort
                                  0
                                  • P peterfido

                                    OK, wenn ich es über die alte Version drüber installiere, läuft es.

                                    Leider wurden die alten Notizen nicht importiert und können auch nicht aus dem Backup importiert werden.

                                    a637f38d-8f2f-4f66-aec8-72e8ba98e6aa-image.png

                                    Ein älteres Backup zum manuellen Extrahieren der Texte lässt sich leider nicht bequem herunterladen.

                                    David G.D Online
                                    David G.D Online
                                    David G.
                                    schrieb zuletzt editiert von David G.
                                    #42

                                    @peterfido

                                    Ist in meiner v2 wirklich ausgeflogen.

                                    Hiermit kannst du es importieren. Achtung, überschreibt die DB falls schon was drinnen ist. Json muss im Ordner liegen.

                                    #!/bin/bash
                                    
                                    # Installationsverzeichnis (passe dies an, falls deine 2. Instanz z.B. /opt/notiz-tool-2 heißt)
                                    INSTALL_DIR="/opt/notiz-tool"
                                    JSON_FILE="$INSTALL_DIR/data.json"
                                    DB_FILE="$INSTALL_DIR/data.db"
                                    TEMP_SCRIPT="$INSTALL_DIR/run_import.py"
                                    
                                    echo "--- JSON zu SQLite Import-Tool ---"
                                    
                                    # 1. Root-Rechte prüfen
                                    if [ "$EUID" -ne 0 ]; then
                                        echo "FEHLER: Bitte führe dieses Skript als Root (z.B. sudo) aus!"
                                        exit 1
                                    fi
                                    
                                    # 2. Prüfen, ob die JSON-Datei existiert
                                    if [ ! -f "$JSON_FILE" ]; then
                                        echo "FEHLER: Die Datei $JSON_FILE wurde nicht gefunden."
                                        echo "Bitte lade deine alte data.json zuerst in den Ordner $INSTALL_DIR hoch."
                                        exit 1
                                    fi
                                    
                                    # 3. Existierende Datenbank radikal löschen
                                    echo "Lösche existierende Datenbank..."
                                    rm -f "$DB_FILE"
                                    rm -f "$DB_FILE-wal"
                                    rm -f "$DB_FILE-shm"
                                    
                                    echo "Erstelle temporäres Python-Import-Skript..."
                                    
                                    # 4. Python-Skript generieren
                                    cat << 'EOF' > $TEMP_SCRIPT
                                    import json
                                    import sqlite3
                                    import sys
                                    import os
                                    
                                    json_file = sys.argv[1]
                                    db_file = sys.argv[2]
                                    
                                    try:
                                        with open(json_file, 'r', encoding='utf-8') as f:
                                            data = json.load(f)
                                    except Exception as e:
                                        print(f"Fehler beim Lesen der JSON-Datei: {e}")
                                        sys.exit(1)
                                    
                                    conn = sqlite3.connect(db_file)
                                    # Aktiviere Write-Ahead-Logging wie im Hauptprogramm
                                    conn.execute('PRAGMA journal_mode=WAL')
                                    cursor = conn.cursor()
                                    
                                    # Tabellenstruktur neu anlegen, da die DB frisch ist
                                    cursor.execute('''
                                        CREATE TABLE IF NOT EXISTS settings (
                                            key TEXT PRIMARY KEY, 
                                            value TEXT
                                        )
                                    ''')
                                    cursor.execute('''
                                        CREATE TABLE IF NOT EXISTS notes (
                                            id TEXT PRIMARY KEY,
                                            parent_id TEXT,
                                            sort_order INTEGER,
                                            title TEXT,
                                            text TEXT,
                                            reminder TEXT,
                                            locked_by TEXT,
                                            locked_at REAL
                                        )
                                    ''')
                                    cursor.execute('''
                                        CREATE TABLE IF NOT EXISTS note_history (
                                            id INTEGER PRIMARY KEY AUTOINCREMENT,
                                            note_id TEXT,
                                            title TEXT,
                                            text TEXT,
                                            saved_at REAL
                                        )
                                    ''')
                                    
                                    # Standard-Einstellungen schreiben
                                    cursor.execute("INSERT INTO settings (key, value) VALUES ('theme', 'dark')")
                                    cursor.execute("INSERT INTO settings (key, value) VALUES ('accent', '#27ae60')")
                                    cursor.execute("INSERT INTO settings (key, value) VALUES ('password_enabled', 'false')")
                                    cursor.execute("INSERT INTO settings (key, value) VALUES ('history_enabled', 'true')")
                                    cursor.execute("INSERT INTO settings (key, value) VALUES ('history_days', '30')")
                                    cursor.execute("INSERT INTO settings (key, value) VALUES ('tree_last_modified', '0')")
                                    
                                    # Rekursive Funktion für den sauberen Baum-Aufbau
                                    def insert_node(node, parent_id=None, sort_order=0):
                                        cursor.execute('''
                                            INSERT INTO notes (id, parent_id, sort_order, title, text, reminder)
                                            VALUES (?, ?, ?, ?, ?, ?)
                                        ''', (
                                            node.get('id'),
                                            parent_id,
                                            sort_order,
                                            node.get('title', 'Neu'),
                                            node.get('text', ''),
                                            node.get('reminder', None)
                                        ))
                                        
                                        # Kinder-Elemente (Unterordner/Notizen) verarbeiten
                                        children = node.get('children', [])
                                        for index, child in enumerate(children):
                                            insert_node(child, node.get('id'), index)
                                    
                                    try:
                                        if isinstance(data, dict) and 'content' in data:
                                            nodes = data['content']
                                        elif isinstance(data, list):
                                            nodes = data
                                        else:
                                            print("Fehler: Unbekanntes JSON-Format. Weder Liste noch 'content'-Objekt gefunden.")
                                            sys.exit(1)
                                            
                                        print(f"Gefundene Hauptknoten: {len(nodes)}. Starte Import...")
                                        
                                        for index, node in enumerate(nodes):
                                            insert_node(node, None, index)
                                            
                                        conn.commit()
                                        print("Erfolg! Alle Notizen wurden sauber in die neue SQLite-Datenbank übertragen.")
                                        
                                    except Exception as e:
                                        print(f"Datenbank-Fehler während des Imports: {e}")
                                    finally:
                                        conn.close()
                                    EOF
                                    
                                    # 5. Import ausführen
                                    echo "Starte Datenmigration..."
                                    python3 $TEMP_SCRIPT "$JSON_FILE" "$DB_FILE"
                                    
                                    # 6. Rechte für den Systemdienst korrigieren
                                    echo "Korrigiere Dateirechte..."
                                    chown notizen:notizen "$DB_FILE"
                                    if [ -f "$DB_FILE-wal" ]; then chown notizen:notizen "$DB_FILE-wal"; fi
                                    if [ -f "$DB_FILE-shm" ]; then chown notizen:notizen "$DB_FILE-shm"; fi
                                    
                                    # 7. Aufräumen
                                    echo "Räume auf..."
                                    rm -f $TEMP_SCRIPT
                                    
                                    # Service neustarten
                                    systemctl restart notizen.service
                                    
                                    echo "--- Import komplett abgeschlossen! ---"
                                    

                                    Edit
                                    https://github.com/ipod86/Notizen/blob/main/json2sql.sh

                                    Edit 2
                                    Jab auf git die Versionen jetzt entsprechend umbenannt und die zwischenversion gelöscht.

                                    EDIT 3
                                    Hab grad alle Dienste, Ordner etc gelöscht und das Script lief problemlos durch. Auch mein DB Backup lies sich problemlos wiederherstellen.

                                    Zeigt eure Lovelace-Visualisierung klick
                                    (Auch ideal um sich Anregungen zu holen)

                                    Meine Tabellen für eure Visualisierung klick

                                    1 Antwort Letzte Antwort
                                    0
                                    • P Offline
                                      P Offline
                                      peterfido
                                      schrieb zuletzt editiert von
                                      #43

                                      Danke für die Infos.

                                      Ich bin heute nicht mehr zu gekommen. Aktuell ändere ich die Kommunikation der Eaton Easy E4 von Node-Red-Nodes zu Modbus. Das hat erstmal Priorität, da ab zu vielen Datenpunkten Probleme kommen, die den WAF gefährden. ;)

                                      Gruß

                                      Peterfido


                                      Proxmox auf Intel NUC12WSHi5
                                      ioBroker: Debian (VM)
                                      CCU: Debmatic (VM)
                                      Influx: Debian (VM)
                                      Grafana: Debian (VM)
                                      eBus: Debian (VM)
                                      Zigbee: Debian (VM) mit zigbee2mqtt

                                      1 Antwort Letzte Antwort
                                      1
                                      Antworten
                                      • In einem neuen Thema antworten
                                      Anmelden zum Antworten
                                      • Älteste zuerst
                                      • Neuste zuerst
                                      • Meiste Stimmen


                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      685

                                      Online

                                      32.7k

                                      Benutzer

                                      82.4k

                                      Themen

                                      1.3m

                                      Beiträge
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                      ioBroker Community 2014-2025
                                      logo
                                      • Anmelden

                                      • Du hast noch kein Konto? Registrieren

                                      • Anmelden oder registrieren, um zu suchen
                                      • Erster Beitrag
                                        Letzter Beitrag
                                      0
                                      • Home
                                      • Aktuell
                                      • Tags
                                      • Ungelesen 0
                                      • Kategorien
                                      • Unreplied
                                      • Beliebt
                                      • GitHub
                                      • Docu
                                      • Hilfe