📂 Paperless NGX: Dokumente synchronisieren mit OneDrive, Nextcloud, WebDAV & mehr! 🔄☁️

In diesem Video zeige ich dir, wie du gescannte Dokumente direkt in die Cloud schicken und mit Paperless NGX automatisch verarbeiten lassen kannst. Dafür stelle ich ein Tool für Linux vor, mit dem du die Synchronisation mit OneDrive, Nextcloud, WebDAV & viele andere Dienste einrichtest. 🖨️➡️📂 🔹 Themen im Video:

✔️ Installation und Einrichtung des Synchronisationstools unter Linux 🐧

✔️ Automatisches „Herunterladen“ gescannter Dokumente 📤

✔️ Effiziente Dokumentenverwaltung mit Paperless NGX 📑

Das Video zur Installation von paperless ngx: https://youtu.be/WRyBPMH9zf0

Blogbeitrag zum Video: https://blog.smarthomeundmore.de/paperless-ngx-komplett-einrichten-mit-rest-api-home-assistant-sensor/

Das Tool kannst du aber auch unter Linux für viele weitere Aufgaben verwenden.

Im Video habe ich ein paar Befehle verwendet. Damit ihr die Syntax nicht „kompliziert“ aus dem Video ablesen müsst, habe ich euch die wichtigsten Kommandos in diesem Blog Beitrag zusammengefasst.

Installation von rclone unter Linux ( getestet mit Ubuntu 24.10)

sudo apt-get install rclone

Die wichtigsten rclone Befehle kurz zusammengefasst. Im Video habe ich für „remote:“ den Namen onedrive verwendet.

Grundlegende Befehle

  • rclone config – Konfiguration von Remotes (z. B. OneDrive,Google Drive, Dropbox).
  • rclone listremotes – Zeigt alle konfigurierten Remotes.
  • rclone lsd remote: – Listet die Verzeichnisse im Root des Remotes auf.
  • rclone ls remote: – Zeigt alle Dateien und Verzeichnisse im Remote an.
  • rclone copy Quelle Ziel – Kopiert Dateien/Ordner von einer Quelle zu einem Ziel.
  • rclone sync Quelle Ziel – Synchronisiert Quelle mit Ziel (Achtung: Ziel wird überschrieben!).
  • rclone move Quelle Ziel – Verschiebt Dateien von Quelle nach Ziel.
  • rclone delete remote:Ordner – Löscht alle Dateien in einem Remote-Ordner.
  • rclone rmdir remote:Ordner – Löscht einen leeren Remote-Ordner.

Erweiterte Befehle

  • rclone check Quelle Ziel – Vergleicht Dateien zwischen Quelle und Ziel.
  • rclone mount remote: /lokaler/pfad – Mountet ein Remote-Laufwerk als lokales Verzeichnis.
  • rclone dedupe remote: – Findet und entfernt doppelte Dateien.
  • rclone about remote: – Zeigt Speicherinformationen des Remotes an.
  • rclone size remote: – Zeigt die Größe aller Dateien im Remote an.

Hinweis: rclone mount wird in einem unpriviligierten Container nicht funktionieren. Wenn ihr ein smb/cifs Laufwerk mounten möchtet, so empfehle ich euch eine „echte“ virtuelle Maschine zu verwenden. Alle „grundlegenden Befehle“ können hingegen ohne Einschränkungen verwendet werden.

Um einen Scheduler ( Zeitplan ) für einen „Kopiervorgang“ zu definieren müsst ihr zunächst einen „crontab“ Eintrag erstellen.

Ein Crontab (kurz für Cron Table) ist eine Datei, die geplante Aufgaben (Cron-Jobs) für das cron-Daemon unter Linux und Unix-basierten Systemen speichert. Diese Jobs werden zu festgelegten Zeiten oder in bestimmten Intervallen automatisch ausgeführt.

Wichtige Befehle für Crontab

  • crontab -e – Bearbeitet die Crontab-Datei des aktuellen Benutzers.
  • crontab -l – Listet alle aktuell gesetzten Cron-Jobs auf.
  • crontab -r – Löscht alle Cron-Jobs des aktuellen Benutzers.

Crontab-Syntax

Eine Crontab-Zeile besteht aus fünf Zeitfeldern und dem auszuführenden Befehl:

* * * * * /pfad/zum/befehl.sh
- - - - -
| | | | |
| | | | +---- Wochentag (0 - Sonntag, 6 - Samstag)
| | | +------ Monat (1-12)
| | +-------- Tag des Monats (1-31)
| +---------- Stunde (0-23)
+------------ Minute (0-59)

Wir öffnen also den „Crontab Editor“ mit

crontab -e

und wählen „nano“ als Editor aus.

Dann fügen wir folgende Zeile im Crontab Editor ein.

*/5 * * * * /usr/bin/rclone move onedrive:scans /data/paperless/consume --progress

Mit Strg++X speichern wir diesen Vorgang. Denkt daran den Namen eures Remote Laufwerks anzupassen.

Jetzt wird alle 5 Minuten auf dem Cloud Laufwerk geschaut, ob sich Daten im Verzeichnis „scans“ befinden. Ist das der Fall, werden diese Daten in den „consume“ Ordner von paperless verschoben.

📢 Home Assistant Notifications – So wird’s einfacher! 📢

In diesem Video zeige ich dir, wie du Benachrichtigungen in Home Assistant deutlich einfacher verwalten kannst! 🚀 Normalerweise muss man in jeder Automatisierung festlegen, wer welche Nachricht bekommt – sei es die Frau, die Kids oder man selbst. Dazu kommen noch kritische Benachrichtigungen, die extra Aufmerksamkeit erfordern. Ich habe eine Lösung entwickelt, mit der du das Ganze zentral steuern kannst. Selbst wenn sich Geräte ändern, musst du nicht stundenlang deine Automatisierungen anpassen. 🔄

Um das Skript einzufügen, begib dich zu Home Assistant Skripte , lege eine neues Skript an und wähle über die drei Punkte in der rechten oberen Ecke die YAML Bearbeitung aus. Dort kannst du das unten aufgeführte Skript dann einfügen. Wichtig ! Die Dienstnamen für die Benachrichtigungen der Alexa-Media Player Devices oder auch Mobile Geräte müssen in der Variable „targets“ angepasst werden.

sequence:
  - variables:
      push_data: |-
        {% if critical %} {
          "push": {
            "sound": {
             "name": "default",
             "critical": 1,
              "volume": 1.0
             }
          }
        } {% else %} {} {% endif %}
    alias: push_data Variable, um den Channel "Critical" beim Iphone zu abonnieren
  - variables:
      targets: |-
        {% set t = [] %} 
        {% if group_admins %}
          {% set t = t + ["notify.mobile_app_iphone_tobias"] %}
        {% endif %} 
        {% if group_family %}
          {% set t = t + ["notify.mobile_app_iphone_tobias", "notify.mobile_app_slerch","notify.alexa_media_bad_oben"] %}
        {% endif %} 
        {% if alexa %}
          {% set t = t + ["notify.alexa_media_keller"] %}
        {% endif %} 
        {{ t | unique | list }}
    alias: targets für alle gewünschten "notify" Dienste
  - variables:
      alexa_devices: "{{ targets | select('search', 'notify.alexa_media') | list }}"
    alias: "alexa_devices : Filter um nur die alexa Devices für den Dienst zu filtern"
  - variables:
      media_players: >
        {% set media_players = alexa_devices | map('replace',
        'notify.alexa_media_', 'media_player.') | list %} {{ media_players }}
    alias: >-
      media_players: Aus dem Dienst werden automatisch alle Media_Player
      Entitätsnamen abgeleitet.
  - variables:
      volume_level: |
        {% if critical %}
          0.8
        {% else %}
          0.2
        {% endif %}
    alias: >-
      volume_level: Wenn critical aktiviert ist, wir eine andere Lautstärke
      gewählt , anonsten default für die Ausgabe
  - repeat:
      for_each: "{{ media_players }}"
      sequence:
        - action: media_player.volume_set
          metadata: {}
          data:
            volume_level: "{{ volume_level }}"
          target:
            entity_id: "{{ repeat.item }}"
    enabled: true
  - repeat:
      sequence:
        - action: "{{ repeat.item }}"
          data:
            title: "{{ title }}"
            message: "{{ message }}"
            data: "{{ push_data }}"
      for_each: "{{ targets }}"
    enabled: true
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
  - repeat:
      for_each: "{{ media_players }}"
      sequence:
        - action: media_player.volume_set
          metadata: {}
          data:
            volume_level: 0.1
          target:
            entity_id: "{{ repeat.item }}"
    enabled: true
  - action: persistent_notification.create
    metadata: {}
    data:
      message: "{{ targets }}"
alias: Notify All V2
description: ""
fields:
  message:
    selector:
      text:
        multiline: true
    name: message
  title:
    selector:
      text: null
    name: title
  group_admins:
    selector:
      boolean: {}
    name: group_admins
    required: true
  group_family:
    selector:
      boolean: {}
    name: group_family
    required: true
  critical:
    selector:
      boolean: {}
    name: critical
    required: true
  alexa:
    selector:
      boolean: {}
    name: alexa
    required: true

Folgende Videos kann ich dir als Grundlagenvideos zum Thema Notifications noch empfehlen.

YouTube player

YouTube player

YouTube player

💬 So schützt ihr euer Zuhause mit Home Assistant vor der eigenen Vergesslichkeit

🔒 Mehr Sicherheit im eigenen Zuhause – ohne Alarmanlage! Vergesslichkeit kann schnell zu einem Problem werden: Offene Fenster, offene Türen oder ein laufendes Gerät können im Alltag leicht übersehen werden. Genau hier kann Home Assistant helfen! 🏡✨ In diesem Video zeige ich euch zwei einfache Möglichkeiten, um euer Zuhause sicherer zu machen – nicht durch eine klassische Alarmanlage, sondern durch intelligente Automatisierungen, die eure Vergesslichkeit ausgleichen.

🔹 **Variante 1:** Eine schnelle und einfache Lösung – leicht umzusetzen und sofort nutzbar.

🔹 **Variante 2:** Eine elegantere, flexiblere Methode für alle, die es noch smarter möchten.

Mit Home Assistant könnt ihr alltägliche Risiken minimieren und euer Smart Home noch nützlicher gestalten. Seid gespannt! 🚀

Diesen Sensor verwende ich sehr gerne für meine Türen und Fenster *:

Die beiden Automatisierungsbeispiele aus dem Video:

alias: Warnung vor einer offenen Tür
description: ""
triggers:
  - trigger: state
    entity_id:
      - input_boolean.notify_night
    to: "on"
  - trigger: numeric_state
    entity_id:
      - zone.home
    below: 1
conditions:
  - condition: state
    entity_id: binary_sensor.gruppe_aller_turen
    state: "on"
actions:
  - action: notify.mobile_app_iphone_tobias
    metadata: {}
    data:
      title: Hausinformation
      message: Es ist noch eine Türe geöffnet
mode: single

Automatisierung 2

alias: Warnung vor einer offenen Tür 2
description: ""
triggers:
  - trigger: state
    entity_id:
      - input_boolean.notify_night
    to: "on"
  - trigger: numeric_state
    entity_id:
      - zone.home
    below: 1
conditions:
  - condition: template
    value_template: |-
      {{ expand(states.binary_sensor)
        | selectattr('state', 'eq', 'on')
        | selectattr('attributes.device_class', 'eq', 'door')
        |rejectattr('entity_id', 'in' , ['binary_sensor.geschirrspuler_door'])
        | map(attribute='name')
        | list | count > 0
      }}
actions:
  - action: notify.mobile_app_iphone_tobias
    metadata: {}
    data:
      title: Hausinformation
      message: >-
        Es ist noch geöffnet: {{ expand(states.binary_sensor)   |
        selectattr('state', 'eq', 'on')   |
        selectattr('attributes.device_class', 'eq', 'door')  
        |rejectattr('entity_id', 'in' , ['binary_sensor.geschirrspuler_door'])  
        | map(attribute='name')   | list | join('\n') }}
mode: single

Weitere Videos, die zur Umsetzung hilfreich sein könnten und im Video erwähnt wurden:

YouTube player

YouTube player

YouTube player

🚗⚡ Tesla & evcc : So nutzt du die Fleet API & myteslamate mit evcc 2025🔋💡

In diesem Video erfahrt ihr, wie ihr euren Tesla mit EVCC verbinden könnt. Ich habe euch versprochen, darauf nochmal einzugehen, wenn Interesse besteht – und genau dieses Versprechen löse ich mit diesem Video sehr gerne ein! Seit Februar 2025 hat sich einiges geändert, und der bisherige Weg funktioniert nicht mehr. Aber keine Sorge: Ich habe mich mit der neuen Lösung beschäftigt und zeige euch, wie ihr euren Tesla weiterhin mit evcc nutzen könnt.

Wollt ihr wissen, was EVCC ist und wie es sich installieren lässt, dann empfehle ich euch dieses Video zur Vorbereitung

YouTube player

Was hat sich geändert?

Bislang war die Integration von Tesla in evcc recht einfach, doch Tesla hat einige Anpassungen vorgenommen, die eine neue Vorgehensweise erfordern. Statt der bisherigen Methode nutzen wir nun die Fleet API in Kombination mit myteslamate, um die Verbindung herzustellen. Ich erkläre euch genau, was das bedeutet und wie ihr euren Tesla damit einbinden könnt.

Ist die neue Methode besser oder schlechter?

Natürlich stellt sich die Frage: Ist die neue Lösung eine Verbesserung oder eher eine Hürde? In meinem Video teile ich meine persönliche Einschätzung . Wie sieht eure Meinung dazu aus ? Teilt es mir gerne in den Kommentaren zum Video.