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/

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

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/

Alte VHS-Kassetten digitalisieren

Ich habe viele Kindheitsvideos von mir auf VHS zuhause, welche ich gerne digitalisieren möchte. Mit einem günstigen „Video-Grabber“ und einem alten VHS-Player lässt sich das unter Linux problemlos durchführen.

Mein Videograbber hat einen STK1160-Chip, welcher schon einen Treiber im Linux-Kernel hat. Einfach den Stick anstecken, und das Videogerät wird als v4l2-Gerät erkannt und wird unter /dev/videoX gemountet (in meinem Fall als video4). Auch eine Sound-Karte stellt das Gerät zur Vefügung.

Nach zahlreichen Versuchen mit verschiedensten Software-Lösungen (VLC-Player unter Ubuntu ist eine einzige Katastrophe) bin ich schließlich bei OBS-Studio gelandet, welches die einfachste und rundste Möglichkeit ist, Video vom Grabber aufzuzeichnen. Ich kann euch dafür dieses Video sehr ans Herz legen.

Also einfach als Quelle ein V4L2-Device anlegen, ausprobieren welches Video-Device das richtige ist und schon sieht man am Bildschirm den Videoinhalt. Mit einem Rechtsklick auf die Quelle kann man die Option „Resize Output“ auswählen, damit hat man gleich die richtige Größe eingestellt. Ich verwende für das Audio-Routing PulseAudio, im Tab Recording kann man OBS einfach als Quelle den Video-Grabber angeben und fertig. Möchte man in die Audio-Quellen reinhören, öffnet man die Advanced Audio Propertier und stellt Audio Monitoring auf Monitor and Output. Mit einem Klick auf „Start Recording“ geht es dann auch schon los.

Weil mein Video-Grabber nur Composite-Video kann und mein VHS-Player Scart, hab ich mir mit 2 Krokodilklemmen kurzerhand selbst einen Adapter gebaut. (Mein VHS-Player hat extra Chinch-Audioausgänge, sonst muss man 6 Krokodilklemmen verwenden um Audio auch vom SCART-Signal zu extrahieren).

SCART-Pinout

In meinem Fall habe ich ein SCART-Kabel hergenommen, hier wird Composite Video Input und Output gekreuzt (irgendwo logisch). Hab also beim Kabelende einfach Pin 20 auf den mittleren Chinch-Pin und Pin 18 auf den Ground vom Chinch-Kabel gelegt, und schon war ein Bild im OBS zu sehen.

ThinkPad T495s – Probleme mit Linux Kernel 5.3

Vor kurzem habe ich ein System-Upgrade von Kubuntu 19.04 auf 19.10 gemacht. Danach gingen vor allem 2 Dinge nicht mehr: DNS und Standby bzw. Aufwachen vom Standby.

Für das DNS Problem gab es schnellen Fix, einfach den Dienst systemd-resolved neu gestartet bzw. wieder enabled, also:

sudo systemctl restart systemd-resolved
sudo systemctl enable systemd-resolved

Das 2. Problem war etwas schwieriger zu lösen. Viele Leute mit Lenovo Rechnern mit AMD-CPUs haben dieses Problem seit dem Kernel 5.1.16.

Was bei meinem ThinkPad T495s die Lösung brachte war die Kernel-Option amd_iommu=off, siehe hier

Kurz beschrieben:

sudo nano /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT= [BESTEHENDE PARAMETER] amd_iommu=off

Archer C7 von den Toten zurückholen

Heute hatten wir einen toten Archer C7 v1.1 vor uns, der nicht einmal mehr per TFTP-Recovery zurückzuholen war. Dies soll einen detaillierten Einblick geben, wie wir das Gerät wieder von den Toten zurückgeholt haben.

Verbindung zur seriellen Schnittstelle schaffen

Nachdem die integrierte Wiederherstellungsmöglichkeit von TP-Link, einen TFTP-Server aufzusetzen und damit das Image zu flashen, nicht mehr funktioniert hat, mussten wir zu einer anderen Lösung greifen: Der Wiederherstellung mittels serieller Schnittstelle.

Dazu mussten wir das Gerät aufschrauben, und mittels Hilfe aus dem OpenWRT-TableOfHardware-Eintrags für den Archer C7 konnten wir dann den UART-Header auf unserem Board ausmachen. Zuerst versuchten wir es mit einem USB auf RS-232 Adapter von Digitus, aber UART dürfte hier doch ein wenig anders funktionieren, deshalb mussten wir auf diesen USB-UART-TTL-Adapter[^6] zurückgreifen, den wir glücklicherweise zuhause hatten.

Als wir die Verbindung stehen hatten (Pinout siehe hier[^1]), konnten wir unter Linux mittels dem Tool „screen“ ein Terminal mit der BAUD-Rate von 115200 öffnen:

sudo screen /dev/ttyUSB0 115200

Damit hatten wir die Möglichkeit, die Fehlermeldungen des Gerätes auszulesen und dementsprechend darauf zu reagieren

TFTP-Server aufsetzen

Da wir in diesem Fall mit Arch-Linux arbeiteten, haben wir mittels Pacman das Paket „tftp-hpa“[^4] installiert und den TFTP-Server gleich gestartet.

sudo systemctl enable tftpd.service
sudo systemctl start tftpd.service
sudo systemctl status tftpd.service

Nachdem wir wussten, das das funktioniert, haben wir uns auf einem Netzwerk-Interface die Adresse 192.168.1.100 zugewiesen, weil sich von dieser Adresse der Router das Image über TFTP holt. Den Router haben wir mit dem Computer auf dem Port „LAN 1“ verbunden.

Nun stellten wir uns die Frage, von wo wir das Image herbekommen sollten. Da hat TP-Link gute Arbeit geleistet, jeder Image bekommt man auf deren Produktseite. Also haben wir das passende heruntergeladen, und in den Ordner „/srv/tftp/“ gepackt, wo der TFTP-Server dieses zum Download anbietet.

Erster Versuch, das Image zu flashen

In dem OpenWRT-Guide[^1] ist dann eine Befehlskette aufgeschrieben, mittels der man ein Image auf den entweder 8 oder 16MB großen Flash-Chip aufspielen kann. Bei dem Archer C7 v1.1 ist es ein 8MB Chip. Nachdem wir das Flashen mit dem offiziellen Image 5mal versucht hatten und immer wieder die Fehlermeldung

Uncompressing Kernel Image ... Too big uncompressed streamLZMA ERROR 1 - must    RESET board to recover 

bekommen haben, mussten wir wieder die Suchmaschine unseres Vertrauens besuchen, um den Fehler zu suchen.

Image mit und ohne Bootloader

Nach einigen Foren und Blogposts sind wir schlussendlich auf den Fehler draufgekommen: Die Images auf der Herstellerseite beinhalten den Bootloader. Wenn wir allerdings mittels der Befehlskette des OpenWRT-Eintrags flashen, darf der Bootloader nicht im Image dabei sein. Um das Problem zu beheben, gibt es einen einfachen Trick: Man öffne die .bin-Datei in einem Texteditor, nehme die ersten Quartete bis zu den vielen Nullen (die Nullen exklusive), und sucht nach diesen im Image. Bei uns kam diese Stelle 2mal vor, einmal am Beginn des Files (Dies ist die Einleitung zum Bootloader), und einmal bei Zeile 8225 (dies ist der Beginn des eigentlichen Images). Vor dieser Zeile war alles mit „FFFF“ ausgefüllt. Alles über den zweiten Header haben wir weggelöscht, und die Datei mit dem Namen „ArcherC7v1_tp_recovery.bin“ abgespeichert. Ob der Dateiname wirklich exakt so lauten muss wissen wir nicht, aber nachdem es so bei uns so geklappt hat, ist es durchaus denkbar, dass es genauso heißen muss.

Nun haben wir wieder die Befehlskette von der Open-WRT-Seite befolgt, und diesmal klappte alles ohne Probleme. Eines sei noch dazu gesagt: Die serielle Console des Routers ist ziemlich intolerant was das Weglöschen von Zeichen betrifft, also bitte tippt jedes Zeichen genau ein, ohne etwas löschen zu müssen, ansonsten kann es zu Fehlern kommen.

Erfolg

Nachdem das Gerät diesmal rebootet hat, funktionierte alles auf Anhieb. Man darf sich hier nicht zu sehr erschrecken, die Serielle Schnittstelle liefert so allerlei Fehler, die aber nicht relevant sind.

Nachdem wir unseren LAN-Port wieder auf DHCP gestellt hatten, konnten wir das Web-Interface unter der Standard-Adresse 192.168.0.1 normal aufrufen und uns ohne Probleme einloggen.

Der Router ist wieder unter den Lebenden!

Links und Credit

[^1]:https://openwrt.org/toh/tp-link/archer-c5-c7-wdr7500#recovery_using_serial_connection
[^2]:https://forum.archive.openwrt.org/viewtopic.php?id=44201&p=13
[^3]:https://openwrt.org/toh/hwdata/tp-link/tp-link_archer_c7_ac1750_v1
[^4]:https://wiki.archlinux.org/index.php/TFTP
[^5]:https://www.tp-link.com/at/download/Archer-C7_V1.html#Firmware
[^6]: https://www.amazon.de/dp/B00AFRXKFU/


Acer Aspire E17 blinkendes Display-Problem

Heute kam jemand zu mir mit einem Windows 8.1 Rechner, dessen Display bei der Berührung des Touchpads schwarz wurde und dann erst wieder hell wurde, wenn Input am Touchpad oder an der Tastatur erkannt wurde. Schrecklich, damit zu arbeiten, aber die Lösung war denkbar simpel: Windows Update dürfte hier den Touchpad-Treiber geschossen haben, eine Neuinstallation des Treibers, geladen von der Acer-Seite direkt, hat dem ganzen ein Ende bereitet.

Links und Credit

http://www.tomsguide.com/answers/id-3269553/acer-laptop-screen-blinking.html
https://www.acer.com/ac/de/AT/content/drivers

Epson EcoTank-Drucker unter Arch-Linux einrichten

Drucken

Update: Das AUR-Package epson-inkjet-printer-escpr2 installiert die Treiber für die meisten EcoTank-Drucker mit den jeweiligen Cups-Filtern automatisch.

Mit yay kann das Paket mit yay -S epson-inkjet-printer-escpr2 installiert werden.

Dies installiert die Treiber u.a. für folgende Geräte:

EP-50V Series, EP-879A Series, EP-880A Series, EP-881A Series, ET-3700 Series, ET-3750 Series, ET-4750 Series, ET-8700 Series, ET-M1140 Series, ET-M1180 Series, ET-M2140 Series, ET-M3140 Series, ET-M3170 Series, ET-M3180 Series, EW-M630T Series, EW-M670FT Series, L6160 Series, L6170 Series, L6190 Series, M1180 Series, M2140 Series, M3180 Series, PM-520 Series, PX-M380F, PX-M381FL, PX-M5080F Series, PX-M5081F Series, PX-M680F Series, PX-M7070FX, PX-M7110F, PX-M7110FP, PX-M780F Series, PX-M781F Series, PX-M880FX, PX-M884F, PX-M886FL, PX-S380, PX-S381L, PX-S5010 Series, PX-S5080 Series, PX-S7070X, PX-S7110, PX-S7110P, PX-S880X, PX-S884, WF-2860 Series, WF-3720 Series, WF-3730 Series, WF-4720 Series, WF-4730 Series, WF-4740 Series, WF-7210 Series, WF-7710 Series, WF-7720 Series, WF-C5210 Series, WF-C5290 Series, WF-C5290BA, WF-C529R Series, WF-C529RB, WF-C5710 Series, WF-C5790 Series, WF-C5790BA, WF-C579R Series, WF-C579RB, WF-C8190 Series, WF-C8190B, WF-C8610 Series, WF-C8690 Series, WF-C8690B, WF-C869R Series, WF-M5298 Series, WF-M5299 Series, WF-M5799 Series, XP-15000 Series, XP-5100 Series, XP-6000 Series, XP-6100 Series, XP-8500 Series

In den GNOME-Einstellungen konnte ich den Drucker nicht finden, in den Cups-Einstellungen unter http://localhost:631 aber sehr wohl. Hier muss dann nurmehr der richtige Treiber unter dem Hersteller Epson herausgesucht werden.

Auf der nächsten Seite können wir dann noch die Einstellungen für den Drucker setzen:

  • print quality: high
  • Duplex Tumble: 2-side long edge
  • Media-Size: A4 (freie Wahl möglich)

Mit „Set default options“ bestätigen, und das ganze läuft. Jetzt einfach einen Probe-Druck machen, um zu sehen, ob alles passt.

Scannen

Für das Scannen benötigt man SANE. Wenn das installiert ist, einfach ein Frontend dafür wählen (zB Simple Scan von Gnome). Unter Preferences sollte der Drucker auftauchen, wann nicht, kann über den Befehl

scanimage -L

im Terminal eruiert werden, ob der Scanner auch auftaucht. Bei mir hat das auf Anhieb ohne Treiber funktioniert.

Links und Credit

https://maggblogg.wordpress.com/2015/02/01/epson-workforce-wf-2650dwf-uber-netzwerk-unter-linux-einrichten/

https://bugzilla.redhat.com/show_bug.cgi?id=1409335#c6

http://download.ebz.epson.net/dsc/search/01/search/searchModule

APC USV mit USB ausrüsten

Heute ist mir auf einem Flohmarkt eine USV der Marke APC in die Hände gefallen. Leider war kein USB-Adapter von APC dabei, welcher auf der einen Seite einen USB-A Stecker, und auf der anderen Seite einen 10-poligen RJ-50 Stecker hat. Da das Kabel bei Amazon sage und schreibe 40€ kostet und ich keine RJ-50 Stecker zum Kabel selber machen zuhause habe, habe ich einfach nach der Anleitung von Reinhard Weiss ein USB-Kabel abgeschnitten und die 5 Adern auf den Socket der RJ-50 Dose gelötet. Tut was es soll, und 40€ sind gespart.

Links und Credit

https://www.reinhardweiss.de/german/backups.htm?sa=X&ved=2ahUKEwjl8PT09KPeAhUBY1AKHTy7AkwQ9QEwAHoECAAQAw