Rules in Tasmota – Kompressor automatisch nach einer Zeit abschalten

Wir haben zuhause einen Druckluftkompressor, der weiter weg von der Werkstatt steht, damit der Lärm nicht nervt. Der Nachteil davon ist halt, dass zum Ein- und Ausschalten immer zum Kompressor gegangen werden muss, weil kein Schalter damals mit gebaut worden ist. Deshalb will ich dieses Problem nun nachträglich mit einem Shelly 1 mit Tasmota und einem davon angesteuerten Schütz lösen. Das ermöglicht auch neue Anwendungen wie zB das automatische Füllen bei genug Überstrom von der PV oder das automatische Ausschalten in der Nacht (es ist schon des öfteren vorgekommen, dass um 1 in der Nacht der Kompressor angesprungen ist).

Für den Schalter am anderen Ende wird wahrscheinlich in Zukunft ein ESP-01 herhalten, sobald dieser aus-programmiert ist, werde ich hier wieder berichten. Die Idee ist aber, das ganze über die HTTP-Schnittstelle von Tasmota zu realisieren, zB mit einem solchen Befehl: http://IP.OF.DEV.ICE/cm?cmnd=Backlog%20Power%20on%3B%20RuleTimer1%2010

Den Shelly für die Schütz-Ansteuerung habe ich einfach mit einer Rule programmiert:

Rule1 
  ON Switch1#state=0 DO ENDON 
  ON Switch1#state=2 DO Backlog Power ON; RuleTimer1 1200 ENDON 
  ON Switch1#state=3 DO Backlog Power ON; RuleTimer1 7200 ENDON  
  ON Rules#Timer=1 DO Power1 off ENDON

Damit lässt sich mit einem dort angeschlossenen Taster mit einem Tasten der Kompressor für 20 Minuten und mit einem Halten für mehr als 5 Sekunden für 2h einschalten.

Links und Credit

Danke an die Tamota Discord-Community, besonders an Nutzer sfromis, fürs Weiterhelfen
https://tasmota.github.io/docs/

PHP-Version unter Debian ändern

Hat man unter Debian mehrere PHP-Versionen gleichzeitig laufen, kann man folgendermaßen die „Standardversion“ einstellen:

update-alternatives --set php /usr/bin/php7.4
update-alternatives --set phar /usr/bin/phar7.4
update-alternatives --set phar.phar /usr/bin/phar.phar7.4
update-alternatives --set phpize /usr/bin/phpize7.4
update-alternatives --set php-config /usr/bin/php-config7.4
Links und Credit

https://tecadmin.net/switch-between-multiple-php-version-on-debian/

Timeout in Nextcloud richtigsetzen (Online-Updater 504 Gateway Timeout)

Ich hatte schon länger das Problem, dass bei mir der Nextcloud-Online-Updater nicht einwandfrei durchgelaufen ist. Jetzt habe ich das ganze mal gelöst:

In der nginx-config von der Nextcloud direkt habe ich beim php-location-block folgendes eingetragen:

fastcgi_read_timeout 300;

Damit dauert es 5 Minuten, bevor PHP ein Timeout schießt (da geht sich das Update dann meistens aus). Durch die angegebene Direktive dauert es 5 Minuten, bevor nginx aufhört, auf eine Antwort vom FastCGI-Socket zu warten. (Danke an einen aufmerksamen Leser für die Info!)

Da ich das ganze noch hinter einem weitern nginx-Reverse-Proxy betreibe (nur eine IP, weil Business-Vertrag nicht leistbar), habe ich in dessen Config noch folgendes eingetragen:

proxy_read_timeout 300s;

Danach ist das Update problemlos durchgelaufen.

Links und Credit

https://distinctplace.com/2017/04/22/nginx-upstream-timed-out/

Nextcloud-Online-Updater hängen geblieben – Lösung

Heute ist mir der Nextcloud Online-Updater hängengeblieben. Dies macht sich dadurch bemerkbar, dass zB vom Webinterface behauptet wird, dass Step 4 currently in Progress ist, und er eigentlich herunterladen sollte, aber man keine Netzwerkaktivität feststellen kann.

Das Problem lässt sich ziemlich einfach beheben: Einfach im data-Ordner der Nextcloud den Ordner updater-IRGENDWAS suchen und diesen löschen. Danach kann man im Webinterface wieder von vorne anfangen

Links und Credit

https://help.nextcloud.com/t/stuck-on-update-process-step-5-is-currently-in-process-please-reload-this-page-later/58371/9

miniDV-Kasetten mittels FireWire (i.Link) digitalisieren

Sollen miniDV-Kasetten digitalisiert werden, ist es nicht ratsam, das über einen USB-Grabber zu machen, da das Signal so zuerst von Digital auf Analog, und dann wieder auf Digital umgewandelt wird (im Unterschied zu zB VHS). Bei miniDV handelt es sich nämlich um ein Digitales Videoformat (daher das DV in miniDV). Unsere Kamera hat einen 4-poligen FireWire-Anschluss (von Sony damals i.Link genannt), weshalb ich mich auf die Suche nach einer Möglichkeit begeben habe, diese Schnittstelle zu nutzen und so die miniDV-Kasetten ohne Qualitätsverluste auf den Computer zu übertragen.

Ich habe mir zunächst eine FireWire-Karte auf Amazon bestellt (siehe hier). Ich habe eine alte PCI-FireWire-Karte bereits einmal erfolgreich getestet mit dem Camcoder, deshalb wusste ich, dass das ganze unter Linux möglich ist.

Ich habe also die neue FireWire-Karte in meinem Stand-PC eingebaut, das mitgelieferte Kabel angeschlossen, Ubuntu 20.04 installiert, dvgrab installiert, gestartet und siehe da: Die erste Ernüchterung. Es wird keine Kamera gefunden. Also los mit dem Troubleshooting

Zuerst also einmal mit lspci nachgesehen, ob die Karte denn auftaucht: Ja, tut sie.
Als nächstes mittels ls -lah /dev/fw* ermittelt, ob eine Kamera auftaucht. Leider nein, nur ein Device mit fw0 wird erkannt, das ist jedoch nicht meine Kamera.
dmesg zeigt die ganze Zeit folgende Errors (Einträge waren mehrmals vorhanden):

giving up on node ffc0: reading config rom failed: bus reset
rediscovering fw0

Um es kurz zu machen: Alte PCI-Karte probiert, altes Linux (Ubuntu 16.04) probiert, anderes FireWire-Kabel probiert, das ich seperat mitbestellt hatte, Windows probiert, alles zeigte kein Erfolg.

Dann dachte ich mir: Es ist alles wie beim letzten Mal, nur das FireWire-Kabel nicht. Habe also das Kabel gesucht, gefunden, auf dem neuen Rechner mit der neuen Karte unter Kubuntu 20.04 angesteckt, und siehe da, ohne Probleme, Plug&Play, Kamera wird erkannt, dvgrab kann gestartet werden.

Leider weiß ich noch nicht, wo genau die Unterschiede liegen zwischen dem Kabel das funktioniert und denen die nicht funktionieren. Auf dem funktionierenden steht nur oben IEEE 1394 6P/M 6P/M und dann ist noch ein mitgelieferter Adapter von 6-Pin auf 4-Pin angesteckt.

Ich werde in den nächsten Tagen ein anderes Kabel bei Amazon bestellen und schauen ob ich damit mehr Erfolg habe. Ich halte den Eintrag hier auf dem laufenden.

UPDATE: Das neue Kabel, das ich bestellt habe (siehe hier), funktioniert tatsächlich auf Anhieb. Kann ich also weiterempfehlen.

Auf alle Fälle kann nun mittels dvgrab eine Aufnahme angefertigt werden. Ich verwende immer den folgenden Befehl:

dvgrab -autosplit -timestamp -size 0 -rewind -showstatus Name-

Dieser bewirkt, dass automatisch nach Zeitstempel die Aufnahme in Name-TIMESTAMP gesplitet wird. Außerdem wird automatisch das Band komplett zurückgespult. Ich muss bei meiner Kamera dann manuell auf Play drücken, der Rest geht automatisch.

Nachdem das durchgelaufen ist, hat man eine ziemlich große .dv-Datei. Diese wandle ich dann mit folgendem ffmpeg-Befehl in eine kleinere mp4 um:

ffmpeg -i input.dv -vf yadif=0:-1:0,hqdn3d -crf 23 output.mp4

Wenn man mit ffmpeg noch schnell den Anfang oder das Ende wegschneiden will, kann man sich mit folgendem Befehl aushelfen:

ffmpeg -ss 00:00:02.00 -i quelle.mp4 -to 03:32:00.00 -c copy ziel.mp4

Dabei ist mit -ss angegeben, wie viel vom Anfang weggeschnitten wird, und -to gibt die endgültige Zeit des Videos an (hier muss man also Subtrahieren).

Links Und Credit

https://debianforum.de/forum/viewtopic.php?t=139647
https://wiki.ubuntuusers.de/FireWire/
https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P8hiSAC
https://askubuntu.com/questions/956934/on-ubuntu-17-04-how-do-i-get-firewire-ieee1394-working
https://bergs.biz/blog/2017/01/26/capture-minidv-tapes-via-firewire/
https://www.galfe.de/video-capture-via-firewire-unter-linux-mit-kino-notebook-mieten/
https://blog.devilatwork.de/windows-10-und-eine-minidv-kamera-per-firewire-nutzen/
https://www.studio1productions.com/Articles/Firewire-1.htm
https://www.slashcam.de/info/video-uebertragung-auf-PC–vom-PanasonicNV-DS8-48871.html
https://www.slashcam.de/forum/viewtopic.php?p=103530

Yubikey für KDE-Lockscreen als U2F (2. Faktor) verwenden

Ich möchte an dieser Stelle einfach auf den Artikel von Yubico hier verweisen, und folgenden Tipp für KDE-Nutzer hinzufügen:

Ich habe anstelle der einzelnen Dateien im /etc/pam.d/ Ordner einfach den Befehl auth required pam_u2f.so in die /etc/pam.d/common-auth geschrieben. Damit habe ich auch am KDE-Lockscreen die 2FA-Authentication. Falls jemand von euch Tipps hat, wie man das selektiver lösen kann, gerne her mit Vorschlägen. Ich habe einfach die Datei für den kscreenlocker nicht gefunden.

LINKS und Credit

https://support.yubico.com/hc/en-us/articles/360013708900-Using-Your-U2F-YubiKey-with-Linux

Bootbaren Windows-Stick auf Linux erstellen

Als Linux-User ist man normalerweise verwöhnt, dass man Images, die man auf einem USB-Stick bootbar aufspielen will, einfach mit dd raufschreibt. Leider funktioniert das bei Windows meist nicht so einfach, weil man einen Master Boot Record braucht. Hier nun eine mögliche Lösung, wie man es trotzdem schaffen kann.

Hinweis: solltet ihr leicht wo Zugriff auf einen Windows-Rechner haben, nehmt diesen und installiert euch einfach Rufus. Geht meistens schneller.

Ansonsten hier die Anleitung unter Linux:

Zuerst lädt man sich ms-sys von Sourceforge herunter und kompiliert sich dieses (notwendig dafür sind die build-essential). Das Kompilieren selbst geht ganz einfach mit make && sudo make install.

Danach legt man auf dem USB-Stick eine NTFS-Partition an, z.B. mit fdisk:

sudo fdisk /dev/sdb
n
p
ENTER
ENTER
ENTER
t
7
w
sudo mkfs.ntfs -f /dev/sdb1

Wenn das erledigt ist mountet man sich das ISO-File und die neue Partition und kopiert den Inhalt der ISO-Datei auf die Platte:

sudo mount -t udf -o loop,ro,unhide WIN10.iso
sudo copy -avr /ISO_MOUNTPOINT /USB_MOUNTPOINT

Wenn das erledigt ist, kann man mit folgendem Befehl und dem Tool ms-sys den Master Boot Record anlegen:

sudo ms-sys -7 /dev/sdb
sudo sync
sudo unmount /USB_MOUNTPOINT

Jetzt kann man auch schon von dem Stick booten.

Links Und CreDit

https://www.cyberciti.biz/faq/create-a-bootable-windows-10-usb-in-linux/
https://sourceforge.net/projects/ms-sys/

ZVOL in Promox verkleinern – Was es zu beachten gibt

Hier ein paar kurze Eckpunkte, was es zu beachten gibt, wenn man ein ZVOL in Proxmox verkleinern will (in meinem Fall eine Windows-Partition):

  • NTFS verkleinern -> am besten mit EaseUS Partition Master Free
  • Alle Partitionen verschieben, sodass der freie Platz ganz hinten ist.
  • zfs set volsize=200G rpool/vm-100-disk-0 (ACHTUNG, 3x kontrollieren ob das auch stimmt!)(Kann sehr lange dauern)

Raspberry Pi als 3G/4G WLAN-Router mit OpenVPN-Verbindung

Vor einiger Zeit habe ich einmal versucht, einen Raspberry Pi 3 als 3G/4G WLAN-Router mit OpenVPN zu konfigurieren. Da ich damals keinen Artikel ausformuliert habe, hier meine nützlichen Links und mein damaliges Resümee:

  • Default-Routen können die Geduld auf die Probe stellen
  • wvdial funktioniert mit einem ZTE MF180 nicht so wirklich, NetworkManager funktioniert hier besser
  • NetworkManager kann auch ohne GUI konfiguriert werden, das funktioniert dann auch
  • Wenn man die Ethernet-Schnittstelle nicht verwenden möchte, sollte man sie auch nicht konfiguieren, (Default Routen sind eine Geduldsprobe).
  • Ein OpenVPN-Client mit der Option redirect-gateway def1 führt dazu, dass der gesamte Traffic über das VPN läuft.
Links und Credit

https://vpn-anbieter-vergleich-test.de/anleitung-raspberrypi-vpn-router/
https://hamy.io/post/0003/optimizing-openvpn-throughput/
https://thepi.io/how-to-use-your-raspberry-pi-as-a-vpn-router/
https://gist.github.com/superjamie/ac55b6d2c080582a3e64
https://stackoverflow.com/questions/43001223/how-to-ensure-that-there-is-a-delay-before-a-service-is-started-in-systemd
https://raspberrypi.stackexchange.com/questions/69866/wlan0-could-not-connect-to-kernel-driver
https://www.raspberrypi.org/documentation/configuration/wireless/access-point.md
https://www.raspberrypi.org/forums/viewtopic.php?t=247225
https://filippobuletto.github.io/home-router-lte/#internet-connection
https://unix.stackexchange.com/questions/113975/configure-gsm-connection-using-nmcli/114006#114006
https://fedoraproject.org/wiki/Networking/CLI
https://askubuntu.com/questions/537406/configure-gsm-connection-using-shell-nmcli
https://www.tecmint.com/setup-linux-as-router/
https://unix.stackexchange.com/questions/365380/how-to-persist-ip-rule-and-route-whenever-server-rebooted
https://www.cyberciti.biz/faq/howto-linux-configuring-default-route-with-ipcommand/
https://www.digitalocean.com/community/tutorials/how-to-use-iproute2-tools-to-manage-network-configuration-on-a-linux-vpshttps://www.digitalocean.com/community/tutorials/how-to-use-iproute2-tools-to-manage-network-configuration-on-a-linux-vps
https://wiki.linuxfoundation.org/networking/iproute2
https://unix.stackexchange.com/questions/198554/3g-connection-with-wvdial-gets-no-ip-exits-with-code-16
https://www.raspberry-pi-geek.de/ausgaben/rpg/2015/06/der-raspberry-pi-als-3g-hotspot/2/

Zammad auf Debian mit externem NGINX Reverse-Proxy aufsetzen

Die Installation ist ziemlich einfach: Elasticsearch installieren, Zammad installieren, Elasticsearch konfigurieren, fertig (siehe Link unten).

Bei mir ist dann noch ein Problem mit HTTPS (Token-Error) aufgetreten, das ließ sich folgendermaßen lösen:

Bei jedem X-Forwarded-Proto statt $scheme https reinschreiben:

server {
        listen 80;
        server_name zammad.example.com;
        return 301 https://$server_name$request_uri;
}
server {
        listen 443 ssl;

        server_name zammad.example.com;

        # SSL
        ssl_certificate /etc/letsencrypt/live/zammad.example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/zammad.example.com/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/zammad.example.com/fullchain.pem;

    access_log /var/log/nginx/zammad.access.log;
    error_log  /var/log/nginx/zammad.error.log;

    client_max_body_size 50M;

    location ^~ / {
        proxy_http_version 1.1;
        proxy_set_header Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header CLIENT_IP $remote_addr;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https; 
# siehe https://community.zammad.org/t/fresh-install-3-2-x-csrf-token-verification-failed/3080/32v
        proxy_read_timeout 300;
        proxy_pass http://IP.OF.ZAMMAD.MACHINE/;

    }
        include _general.conf;
}
Links und Credit

https://docs.zammad.org/en/latest/install/debian.html