Code Snippets & Notes

Kleine Codeschnipsel, Kommandozeilenbefehle und andere Notizen

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

Startmenue>Windows-Features aktivieren oder deaktivieren>Unterstuetzung fuer die SMB 1.0/CIFS-Dateifreigaben
> Alle drei ankreuzen:

image.png

danach

NICHT AUF NETZLAUFWERK VERBINDEN

drawing-3-1678117727.png

sondern 

Netzwerkadresse hinzufuegen

drawing-3-1678121971.png

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:

image.png

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)

image.png



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

BotFather bei Telegram suchen und 
/start
schreiben
/newbot
schreiben und Namen vergeben
ChatID rausfinden:
https://api.telegram.org/bot<token>/getUpdates
https://api.telegram.org/bot62157:AAH[....................]q8-O6-3Bk/getUpdates

Testnachricht per URL senden:
https://api.telegram.org/bot<token>/sendMessage?chat_id=<chatId>&text=testing

Thingsboard 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.

  1. TB docker container stoppen
  2. im License portal https://license.thingsboard.io unter Subscriptions den Subscription Plan finden > 'Manage instances':image.png
  3. Instanz aus der aktuellen Lizenz deaktivieren:

    image.png

    in einigen Fällen reicht es bereits aus, die Instanz du deaktivieren. Falls nicht, weitermachen:

  4. 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
  5. tb docker container wieder starten

Danach legt TB eine neue Instanz an:

image.png

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

image.png

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/

image.png

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.

  1. Auf den existierende Container gehen (zb Stacks>thingsboard>thingsboard-mytbpe-1) und auf 'duplicate/edit':
    drawing-4-1715626896.png

  2. Den neuen Container umbenennen, das Image auf die nächst aktuellere Version ändern und den CMD Wert anpassen:
    drawing-4-1715627017.png

     

    drawing-4-1715627145.png
  3. Container deployen:
    drawing-4-1715627228.png

  4. 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:
    drawing-4-1715627743.png

  5. Jetzt sollte der neue modifizierte Container deployt werden können. In den Logs kann man den Progress sehen:
    drawing-4-1715627491.png

  6. 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:
    drawing-4-1715627578.png

Bitwarden Subdomain URI

https://community.bitwarden.com/t/subdomain-uri-matching/33906

 

^https://[a-zA-Z0-9]+\.appname\.company\.com

Windows Aero-Shake deaktivieren

  1. Gruppenrichtlinien starten
  2. Benutzerkonfiguration
  3. Desktop
  4. Richtlinie "Aero Shake-Mausbewegung zum Minimieren von Fenstern deaktivieren" öffnen und aktivieren

image.png

 

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