Code Snippets & Notes
Kleine Codeschnipsel, Kommandozeilenbefehle und andere Notizen
- Nextcloud WebDAV Link
- tar.gz entpacken
- ssh/sftp WinSCP Laufwerk verbinden (Windows)
- Windows 11 Autologin
- Thingsboard Device
- Telegrambot erstellen
- Thingsboard Instance reset
- Speicherplatz in Treesize Form mit ncdu
- Thingsboard upgrade in Portainer
- Bitwarden Subdomain URI
- Windows Aero-Shake deaktivieren
- tmux
- WLED Error connecting SerialPort
Nextcloud WebDAV Link
https://sub.domain.de/remote.php/dav/files/USERNAME/Unterordner
oder
https://sub.domain.de/nextcloud/remote.php/webdav/USERNAME
oder
https://sub.domain.de/remote.php/webdav
> subdirectory dann
https://sub.domain.de/SUBDIRECTORY/remote.php/webdav
BEISPIEL: https://wolke.folkerts.it/remote.php/dav/files/Eike/Joplin-Sync
Windows WebDAV Laufwerk hinzufuegen
SMB 1.0 / CIFS Client/Server aktivieren
danach
NICHT AUF NETZLAUFWERK VERBINDEN

sondern
Netzwerkadresse hinzufuegen

danach Benutzer und PW der Nextcloud eingeben, fertig
tar.gz entpacken
Linux zip gzip gunzip tar tarball archiv
tar -zxvf dateiname.tar.gz
https://www.cyberciti.biz/faq/linux-unix-bsd-extract-targz-file/
-z gzip compression
-x execute
-v verbose
-f file
ssh/sftp WinSCP Laufwerk verbinden (Windows)
sshfs
\\sshfs\ohuser@192.168.1.77\..\..\etc\openhab
Windows 11 Autologin
Windows Anmeldung Windowsanmeldung Benutzername
NETPLWIZ
WIN+R und
netplwiz
Haken entfernen:
Falls die Checkbox und Text nicht vorhanden sind, vorher eine Änderung in der Registry vornehmen:
Regediteintrag
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device
auf 0 setzen (vorher evtl 2)
Thingsboard Device
Upload von Systeminformationen zu einem Thingsboard IoT Device:
#!/bin/bash
thingsboardAccessToken='kG..........Lj'
while :
do
cpuUsage=$(top -bn1 | awk '/Cpu/ { print $2}')
memUsage=$(free -m | awk '/Mem/{print $3}')
curl -v -X POST -d "{\"Memory\": $memUsage}" https://thingsboard.cloud/api/v1/$thingsboardAccessToken/telemetry --header "Content-Type:application/json"
curl -v -X POST -d "{\"CPU\": $cpuUsage}" https://thingsboard.cloud/api/v1/$thingsboardAccessToken/telemetry --header "Content-Type:application/json"
sleep 10
done
Telegrambot erstellen
/start/newbotThingsboard Instance reset
Vor einem geplantem Serverneustart oder wiederherstellen eines Servers aus einem Backup, immer den Thingsboard Docker Container herunterfahren. Dann spart man sich die Instanzprobleme und damit diesen Artikel
https://github.com/thingsboard/thingsboard/issues/2221#issuecomment-560313339
https://github.com/thingsboard/thingsboard/issues/3008#issuecomment-650076578
Bei folgender Thingsboard Fehlermeldung...
Terminating application due to critical License Error ACTIVE_INSTANCES_CAPACITY_EXCEEDED(104)
oder (siehe unten bei Hilfe zu Fehlercode 107)
License Error: INVALID_LICENSE_CHECK_SECRET(107) - Invalid secret request sequence number!
oder oder (siehe unten bei Hilfe zu Fehlercode 105)
License Error: INSTANCE_NOT_FOUND(105) - Instance not found!
... hat das Lizenzportal von Thingsboard erkannt, dass mehrere Instanzen versuchen, ein und die selbe Thingsboard Lizenz zu verwenden. Das kann zB passieren wenn Docker sich verschluckt hat und ein neuer Thingsboard Container gestartet wurde, obwohl der andere noch lief, oder wenn der Hostserver von einem Backup wiederhergestellt wurde.
- TB docker container stoppen
- im License portal https://license.thingsboard.io unter Subscriptions den Subscription Plan finden > 'Manage instances':
- Instanz aus der aktuellen Lizenz deaktivieren:
in einigen Fällen reicht es bereits aus, die Instanz du deaktivieren. Falls nicht, weitermachen:
- in tb docker container mit bash gehen und /usr/share/thingsboard/bin/instance-license.data löschen:
rm -f /usr/share/thingsboard/bin/instance-license.data - tb docker container wieder starten
Danach legt TB eine neue Instanz an:
Bei Fehlercode 107 bzw. 105
Offizielles Thingsboard Video zu dem Thema:
https://www.youtube.com/watch?v=2khu3RP0TGE&t=73s
Wenn Fehlercode 107 kommt, kann es sein, dass die instance-license.data nicht im vorgesehenen Ordner auffindbar ist. In diesem Fall müssen die Instanzen im Thingsboard Lizenzportal nicht nur deaktiviert, sondern ganz gelöscht werden. Das ist nicht weiter tragisch, weil die Instanzen bei jeder neuen Instanz automatisch angelegt werden, solange genügend 'instance counts', also Anzahl erlaubter gleichzeiter Instanzen, zur Verfügung stehen (in meinem Fall 1).
Wenn keine /usr/share/thingsboard/bin/instance-license.data aufzufinden ist, könnte es an folgender Zeile in der docker-compose.yaml liegen:
TB_LICENSE_INSTANCE_DATA_FILE: /data/license.data
Diese Zeile gibt einen alternativen Speicherort für die instance-license.data an. In dem Fall heißt das Kommando, um die hinterlegte Lizenz zu 'vergessen' im Docker Container also
rm -f /data/license.data
Man kann auch das TB_LICENSE_SECRET in ein absichtlich falsches ändern und dann wieder zurück in's richtige. Dann wird auch die license.data neu angelegt, allerdings ist license.data löschen viel einfacher und richtiger.
Speicherplatz in Treesize Form mit ncdu
https://www.cyberciti.biz/open-source/install-ncdu-on-linux-unix-ncurses-disk-usage/
Wenn die Festplatte voll ist, hilft eine Untersuchung mit ncdu, um herauszufinden, wo der Haken ist.
sudo apt update
sudo apt install ncdu
Beispiele um ncdu zu nutzen:
ncdu /etc/
ncdu /tmp/
ncdu /nfs
ncdu $HOME
ncdu /
^ sucht überall, von Eike empfohlen
mit q beenden, mit Pfeiltasten tiefer in die Ordner reingehen. Rechte Pfeiltaste = eine Ebene weiter
Thingsboard upgrade in Portainer
Um Thingsboard zu upgraden, muss das Start-CMD von start-tb.sh zu upgrade-tb.sh geändert werden. Mit einer 'normalen' docker-compose.yaml gibt man folgende Befehle ein:
docker pull thingsboard/tb-postgres
docker compose stop
docker run -it -v ~/.mytb-data:/data --rm thingsboard/tb-postgres upgrade-tb.sh
docker compose rm mytb
docker compose up
In Portainer hingegen ist das docker run Kommando so an sich nicht möglich. Daher muss der existierende Container dupliziert werden, um dann den CMD Wert des Containers ändern zu können.
- Auf den existierende Container gehen (zb Stacks>thingsboard>thingsboard-mytbpe-1) und auf 'duplicate/edit':
- Den neuen Container umbenennen, das Image auf die nächst aktuellere Version ändern und den CMD Wert anpassen:
- Container deployen:
- Falls Request failed with status code 500 oder Request failed with status code 400, muss der alte Container oder sogar das ganze Stack erst gestoppt werden, weil auf das gleiche Volume und Network zugegriffen wird:
- Jetzt sollte der neue modifizierte Container deployt werden können. In den Logs kann man den Progress sehen:
- Zum Schluss einfach wieder den Container stoppen und entfernen und wieder das reguläre Stack starten, das dann den ursprünglichen Container startet. Vorher noch in der docker-compose.yaml die neue Imageversion anpassen:
Bitwarden Subdomain URI
https://community.bitwarden.com/t/subdomain-uri-matching/33906
^https://[a-zA-Z0-9]+\.appname\.company\.com
Windows Aero-Shake deaktivieren
- Gruppenrichtlinien starten
- Benutzerkonfiguration
- Desktop
- Richtlinie "Aero Shake-Mausbewegung zum Minimieren von Fenstern deaktivieren" öffnen und aktivieren
keywords
alle fenster minimieren minimiert schütteln
tmux
TMUX Cheatsheet & conf
https://mutelight.org/practical-tmux
~/.tmux.conf
# Ändere Präfix von STRG+B zu STRG+A
set-option -g prefix C-a
bind-key C-a last-window
set -g mouse on
setw -g aggressive-resize on
| Shortcut | Beschreibung |
| STRG+A, " | Split vertikal |
| STRG+A, % | Split horizontal |
| STRG+A, ; | letztes Pane |
| STRG+A, c | Neues Fenster |
| STRG+A, p/n | Previous/Next Fenster |
| STRG+A, & | Schließe Fenster |
WLED Error connecting SerialPort
failed to execute 'open' on 'serialport': failed to open serial port.
sudo setfacl -m u:eix:rw /dev/ttyUSB0
https://github.com/esphome/issues/issues/4525#issuecomment-2676978792
