Christians Tagebuch

The latest posts in full-text for feed readers.


Ersatzohrpolster für Sennheiser HD 461

2015 oder 2016 wollte ich Kopfhörer kaufen und entschied mich für Sennheiser HD 461, weil sie von einer Marke mit gutem Leumund waren. Jetzt im Jahre 2025 löste sich das Wildlederimitat der Ohrpolster auf und fiel auseinander:

Kaputt

Der Sennheiser-Support meinte, daß ich die Köpfhörer wegwerfen muss:

Leider haben wir keine Ersatzpolster mehr für HD 461.

Auch Ohrpolster anderer Kopfhörer sind leider nicht kompatibel.

So einfach wollte ich mich aber nicht geschlagen geben und fand in einem Onlineshop folgenden Produkttitel:

Sennheiser HD461 / HD471 / HD429 / HD200 / HD201 / HD200Pro Official Replacement Ear Pads

Also sind die Ohrpolster der HD 200 Pro kompatibel bzw. die gleichen wie für die HD 461?

Ich bestellte die Ersatzohrmuschelpolster für insgesamt 23,39€ auf einer deutschen Onlineshopseite, bei der "Lieferung aus Schweden" stand. Auf der Rechnung stand dann eine Firma aus Großbritannien, und auf dem Kopfhörer "made in China".

.. aber die Ersatzpolster passten! Wieder etwas Elektroschrott vermieden.

Neue vs. alte Ohrmuschel Alles wieder fein

Published on 2025-05-28 in


Dunstabzugshauben-LEDs brummen

Wir haben über unserer Kochinsel eine Dunstabzugshaube ("Inselhaube") Bosch DIE 975 A, die Slots für 4 Lampen mit Fassung G4 hat. Seit ein paar Wochen geben die LEDs allerdings einen nervigen Ton ab:

Meine Vermutung war, daß der Trafo nach 18 Jahren langsam nicht mehr will. Auf der Bosch-Produktseite ist in der Ersatzteilliste der Transformator 00187450 zu finden, zu einem Preis von 131,95€.

Ein Freund kam auf die Idee, daß der Trafo vielleicht zu wenig arbeiten muss und sich deshalb komisch verhält. Ursprünglich ist der Transformator für 4x 20W Halogen-Lampen mit insgesamt 80W Leistung ausgelegt. Durch die inzwischen eingebauten LEDs werden aber nur noch ~6W benötigt.

Erst im 6. Geschäft - einem Obi - fand ich noch Halogen-Lampen; die anderen Läden hatten alle nur noch LEDs. Mit dem Einbau einer 20W-Halogenlampe war das Störgeräusch verschwunden.

Die durch die Halogenlampe erhöhten Energiekosten erreichen bei 1h Nutzung pro Tag erst in ~75 Jahren die 130€, die ein neuer Trafo gekostet hätte.

Foto Kochinselhaube

Published on 2025-05-26 in


Open Source Android collage creator

I finally found an open source Android application to create image collages (combining several images/photos into a single one): Image Toolbox. The source code is available on Github, the app is installable via F-Droid

Photo collage created with Image Toolbox

Image Toolbox's collage maker tool is available under Create -> Collage Maker. It lets you create collages from 2-10 images and has many layout options which can be switched on the fly.

You can zoom and rotate the single image's contents and move the visible image clip. Switching images with each other is no problem. The final image's aspect ratio can be changed, as well as the border radius, border color and output format.

Screenshot #1: Place and zoom images Screenshot #2: Collage settings

Published on 2025-05-18 in


Dreambox RC10 blau vs. rot

Die Fernbedienung RC10 meines Satellitenreceivers Dreambox 7080HD von 2014 hatte ich 2019 schon ersetzen müssen, weil die Tasten nicht mehr richtig wollten. Jetzt in 2025 hatte ich wieder das gleiche Problem und habe mir nochmal Ersatz gekauft.

Bei der Programmierung des TV-Modus der Fernbedienung fiel mir auf, daß a) die Tasten-LED jetzt blau leuchtet und b) die 3-stelligen Codes nicht mehr funktionieren.

Das ganze ist eine neue Revision der Fernbedienung, die seit spätestens 2023-02 im Umlauf ist: 2023-03-01: Dreambox RC-10 leuchtet nicht Logo Dreambox! und 2023-02-23: Dreambox Ersatz Fernsteuerung.

Die alte RC-10 hat rote LEDs und versteht 3-stellige Programmiercodes.
Die neue RC-10 hat blaue LEDs, versteht die 4-stelligen Programiercodes der RC-20 und hat keinen beleuchteten Dreambox-Schriftzug mehr. Außerdem ist die Rückseite nicht mehr glatt, sondern wie die Vorderseite leicht rauh.

Vergleich RC-10-Revisionen: Links neu mit blauen LEDs, rechts alt mit roten LEDs Vergleich Rückseiten: Vorn die alte, hinten die neue RC-10

Published on 2025-04-29 in


Bankkontosaldoüberwachung

Schon seit vielen Jahren nutze ich den Hibiscus-Server um die Kontoauszugsinformationen unserer Bankkonten automatisiert per HBCI/Fin-TS abzurufen und lokal zu speichern. Dadurch kann ich leicht in den Daten suchen um sie z.B. für die Steuererklärung zusammensammeln.

Mit dem Setup hatte ich 2 Probleme:

  1. Nach 90 Tagen ist der automatische Abruf nicht mehr möglich, denn man muss manuell eine TAN eingeben.

    Ich habe es nicht geschafft, mich vom Server über dieses Problem informieren zu lassen und merke es immer nur, wenn ich ab und zu mal auf dem Fernseher den Kontostand anschaue und das Aktualisierungsdatum nicht passt.

  2. Es gibt keine Warnung, wenn der Kontostand unter z.B. 1000€ fällt.

    In dem Fall kann Geld von einem anderen Konto verschoben werden - wenn einem das Problem bekannt ist.

Als Lösung für die Probleme habe ich 2 Plugins für Munin gebaut, die direkt auf einer MariaDB-Hibiscus-Datenbank arbeiten. Sie sind im munin-contrib-Repository verfügbar.

hibiscus/hibiscus_last_account_update

Gibt das Alter der letzten Kontoaktualisierung aus. Es kann eine Warnzeit angegeben werden, ab der Munin E-Mailbenachrichtigungen rausschickt.

Letzte Kontoaktualisierung

hibiscus/hibiscus_account_balances

Listet die Kontostände von allen oder nur einigen Konten auf. Warnungslevel für alle oder einzelne Konten können definiert werden, und Munin schickt dann Warnmails raus:

Subject: Munin dojo WARNING: home.cweiske.de::homebanking::hibiscus_account_balances

home.cweiske.de :: homebanking :: a Konten Jana + Christian
	WARNINGs: J+C: Giro Christian #2 is 807.57 (outside range [1000:]).

In der Konfiguration gruppiere ich mehrere Konten thematisch auf einzelne Graphen:

/etc/munin/plugin-conf.d/hibiscus
[hibiscus_*]
env.user hibiscus
env.password reallysecret
env.host_name homebanking

[hibiscus_account_balances]
env.warning 1000:
env.acct_3_warning 2500:
env.include 1,2,3
env.graph_title a Konten Jana + Christian

[hibiscus_account_balances_tagegeld]
env.include 10
env.graph_title b Tagegeld

[hibiscus_account_balances_kinder]
env.include 7,8
env.graph_title c Kinderkonten

[hibiscus_account_balances_kreditkarte]
env.include 11
env.acct_11_warning -2000:
env.graph_title d Kreditkarte

Kontostand im Verlauf

Published on 2025-04-21 in ,


Monitoring backup runs with Munin

My backup server boots up at 3 every night, runs the backup script and shuts down. This did not work for some time and I was not warned about it.

The solution for this problem:

  1. Let the backup server touch a file on the home server before shutting down
  2. Have Munin monitor the file change date and warn if it is too old.

I use the disk/file_age plugin available in the munin-contrib repository. To put it into a separate section, I added support for the host_name configuration to the plugin.

Configuration

/etc/munin/plugin-conf.d/backup_file_age
[backup_file_age]
env.host_name               backup
env.file1_path              /var/lib/munin/last-touch/baup-backup
env.file1_label             Last baup backup
env.file1_warning           172800
env.file1_critical          604800

Screenshots

Munin overview File age by day

Published on 2025-04-21 in


Docker and ufw: Block IP addresses

At work I had to block some very annoying spammers from POSTing to the contact form on the website. I ssh'ed into the Ubuntu server and blocked their IP addresses with ufw:

$ ufw insert 1 deny from 203.17.245.205

Unfortunately, this did not work. The spammers were still able to access the nginx webserver in the Docker container:

203.17.245.205 - - [17/Apr/2025:11:58:28 +0200] "POST /contact HTTP/1.1" 200 24111 "https://example.org/contact" "Mozilla/5.0 (Macintosh; Intel Mac OS X 12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 OPR/89.0.4447.51"

It turns out that Docker heavily uses iptables for its container networking, and that the rules in the default INPUT chain of the filter table that are generated by ufw are too late in the game - earlier rules already route the packets into the containers.

The iptables section in the Docker documentation tells us that rules need to be put into the DOCKER-USER chain:

$ iptables -I DOCKER 1 -j DROP -s 203.17.245.205

In the end, the chain looked like this:

$ iptables -L DOCKER-USER --numeric --line-numbers
Chain DOCKER-USER (1 references)
num  target     prot opt source               destination
1    DROP       0    --  103.106.241.170      0.0.0.0/0
2    DROP       0    --  113.176.64.56        0.0.0.0/0
3    DROP       0    --  176.102.128.140      0.0.0.0/0
4    DROP       0    --  193.163.116.88       0.0.0.0/0
5    DROP       0    --  103.255.9.53         0.0.0.0/0
6    DROP       0    --  116.212.106.162      0.0.0.0/0
7    DROP       0    --  5.254.26.39          0.0.0.0/0
8    DROP       0    --  5.254.26.37          0.0.0.0/0
9    DROP       0    --  203.17.245.205       0.0.0.0/0
10   DROP       0    --  172.111.204.6        0.0.0.0/0
11   DROP       0    --  94.43.48.194         0.0.0.0/0
12   DROP       0    --  188.169.38.71        0.0.0.0/0
13   DROP       0    --  181.204.9.178        0.0.0.0/0
14   DROP       0    --  103.246.84.78        0.0.0.0/0
15   DROP       0    --  122.175.12.83        0.0.0.0/0
16   DROP       0    --  92.255.57.64         0.0.0.0/0
17   DROP       0    --  185.208.8.200        0.0.0.0/0
18   RETURN     0    --  0.0.0.0/0            0.0.0.0/0

Published on 2025-04-18 in


PlayJam GameStick timeline

A collection of links regarding the history of the PlayJam GameStick microconsole.

Short version
Age Date Event
2013-01-02 Kickstarter funding campaign started
1 month 2013-02-01 Kickstarter funding campaign ended, 5691 supporters, 647.658$
10 months 2013-10-24 First Review at golem.de
11 months 2013-11-20 German backers receive Gamesticks: GameStick ist da!
1y 5m 2014-05-08 Last firmware update 0.9.2071
1y 5m 2014-05-31 Kickstarter docks were shipped
1y 8m 2014-08-15 Inventory sell-off begins: GameStick for 19.99$
3 years 2016-01-05 PlayJam says GameStick will be running in the forseeable future
3y 2m 2016-03-09 Last Facebook post by PlayJam
4 years 2017-01-09 Official server shutdown

Detailed timeline

Date Category Event
2012-12-10 PlayJam First PlayJam tweet: We are live with our pre-launch campaign. Follow us! Visit http://GameStick.tv or like us on http://facebook.com/GameStickNews
2013-01-02 Kickstarter Kickstarter funding campaign started
2013-01-03 Kickstarter Update #1: GameStick Day 1 - Wow.
2013-01-09 Kickstarter Update #4: 320.000$ reached: Stretch Goals Announced!
2013-01-11 Kickstarter Update #6: Stretch goal 1 reached: Stretch #1 Reached!
2013-01-18 Kickstarter Update #8: 400.000$ reached: You spoke and we listened..
2013-01-30 Kickstarter Update #13: Miracast support: Working with Miracast
2013-02-01 Kickstarter Kickstarter funding campaign ended, 5691 supporters, 647.658$: Wow! What a result! Incredible! Blown Away!
2013-03-19 Kickstarter Update #17: Developer unit in production: Dev Kits, Partnerships and Further Updates
2013-04-19 Kickstarter Update #23: GameStick DEV kit Unboxing Video
2013-05-27 Kickstarter Update #29: GameStick Features on the BBC.
2013-06-13 Kickstarter Update #34: Companion app: Demo showing PlayJam's Companion App working the GameStick UI
2013-10-23 Kickstarter Update #45: Shipping stalled: Shipping update.
2013-10-24 Review Golem.de: Playjams Gamestick im Test: Die Android-Konsole für zwischendurch
2013-10-30 Review Eurogamer: GameStick review: Stick it.
2013-11-05 Review Techradar: PlayJam GameStick review: The latest Android console doesn't get the formula right
2013-11-07 Kickstarter Update #46: Sticks are shipping, Dock shipping delayed: Update - Feedback.
2013-11-11 Review Engadget: GameStick review: Android console gaming still awaits its king
2013-11-11 Store 45 games available: Engadget review
2013-11-15 Store Over 50 games available: GameStick: Aktuelle Spieleliste
2013-11-20 Kickstarter Germans backers receive Gamesticks: GameStick ist da! Die Verpackung…
2013-12-04 GameStick Firmware update 0.9.2049: (source)
2013-12-12 GameStick Firmware update 0.9.2049 report: GameStick Software-Update 0.9.2049
2014-01-19 Store 68 games available (source)
2014-02-03 GameStick Firmware update 0.9.2058: (source)
2014-02-06 Kickstarter E-Mail: Docks are still not shipping: Dear Backers, Let me start by apologizing for the lack of news and or updates on the GameStick project over recent months - in particular on the status of the docks.[...]
2014-04-04 Kickstarter Last Kickstarter page update #47: Dock situation: Update. (archived copy)
2014-05-01 Store 84 games available (source)
2014-05-08 GameStick Firmware update 0.9.2071 (source)
2014-05-21 Kickstarter E-Mail to Backers: Dock will be shipped next week Update: GameStick Dock
2014-05-30 Store 90 games available (source)
2014-05-31 Kickstarter TopFree got its kickstarter dock: GameStick Dock im Praxistest
2014-07-12 Review Telegraph PlayJam article, 35000 units at GameStop: Get ready for TV gaming to move up a gear
2014-08-15 Sell-off Price at GameStop: GameStick 19.99$ (source)
2014-08-21 Sell-off Price at GameStop: Dock 15$ (source)
2014-09-01 Sell-off Price at GameStop.com: GameStick 19.99$ (GameStick für $19.99, source 2)
2014-09-18 Sell-off PlayJam sells off inventory on ebay Gamestick Sell off?
2014-09-23 GameStick Custom Firmware CFW 1.4 (source)
2014-12-05 Sell-off Price in GameStop store: GameStick 17$, Dock 5$ (source)
2015-01-05 Sell-off Price at Gamestop: Controller 9$ (source)
2015-10-20 PlayJam GameStick website redirects to flareplay.com, only zone.gamestick.tv still available: Neue PlayJam-Konsole FlarePlay und kostenlose AGameAWeek Collection für GameStick
2015-11-23 PlayJam Playjam Titan prototype device sent to shanti: PlayJam Titan, (Gen 2 Gamestick?)
2016-01-05 PlayJam PlayJam says GameStick will be running in the forseeable future: Tweet
2016-02-26 PlayJam Last Tweet by @PlayJam
2016-03-09 PlayJam Last Facebook post by PlayJam
2016-05-15 Store 177 games available (source)
2016-10-09 Store Game download not possible since months: GameStick ist „tot“
2017-01-09 PlayJam Server shutdown (taken from topfree screenshot)
2017-01-11 Store Topfree blog post about server shutdown with screenshot of Gamestick homepage: GameStick: Das offizielle Ende
2017-01-12 Store 177 games available (source)
2017-11-09 Store Shutdown: "Store closed earlier this year": Comment: No - they closed the store earlier in the year. As far as I know you can't download anything from the GameStick servers any more.

Published on 2025-04-11 in


Running TYPO3 in a subdirectory

At work we're running a couple of composer-based TYPO3 v11 instances in a subdirectory instead of the root path of domains, e.g. https://example.org/info/ instead of https://example.org/. We do this because the main web application runs on /, while /info/ serves editor-editable content.

The setup consists of 2 servers/containers. One serves the main web application on https://example.org/ and proxies all /info/ requests to the second web server. The second web server delivers a TYPO3 instance.

It's more complicated than the average reverse proxy setup. In production, the initial proxying is done by AWS Cloudfront - and that does not support stripping paths when proxying.

Main webserver

Relevant Apache 2.4 site configuration:


    ServerName example.org
    [...]
    ProxyPass        "/info/" "http://typo3.example.org/info/"
    ProxyPassReverse "/info/" "http://typo3.example.org/info/"

]]>

TYPO3 webserver

Apache site configuration:


    ServerName example.org
    ServerAlias typo3.example.org
    UseCanonicalName On

    [standard typo3 configuration follows]

    
        # Reverse Proxy configuration in Terraform does not allow to
        # proxy "/info/" to "/" - it maps "/info/" to "/info/"
        # So we need to remove that.
        # Also requires REQUEST_URI modification in AdditionalConfiguration.php
        RewriteRule "^info/(.*)" "$1"
    

]]>

TYPO3's site configuration is configured to have /info/ in the base path:

config/sites/example/config.yaml
base: 'https://example.org/info/'

TYPO3 also needs to know that it's running in a reverse proxy setup:

public/typo3conf/LocalConfiguration.php
 [
        //[...]
        'reverseProxyHeaderMultiValue' => 'first',
        'reverseProxyIP' => '172.17.190.*,127.0.0.1',
        'reverseProxyPrefix' => '/info',
        'reverseProxySSL' => '172.17.190.',
    ]
];
]]>

And at last, we rewrite the request URI variable used by TYPO3:

public/typo3conf/AdditionalConfiguration.php

Local setup

The setup above requires two servers/containers, which is fine for production. Local development setup is a bit simpler; we use one container with two different domains:

example-proxy.test

Used for the main webserver.

We access TYPO3 frontend at http://example-proxy.test/info/, and the backend at http://example-proxy.test/info/typo3/.

It proxies to http://example.test/info/.

example.test

Runs TYPO3

Published on 2025-04-10 in ,


Waschmaschine: Türverriegelung defekt

Unsere Waschmaschine vom Typ Blomberg WNF 74461 wollte nicht mehr: Programm einstellen, Start/Pause drücken und .. nichts passiert. Sie geht einfach nicht an.

Das Handbuch sagt dazu:

Problem: Die Maschine arbeitet nicht, nachdem das Programm gewählt und die Start/Pause/Abbrechen-Taste gedrückt wurde.

Lösung: Die Waschmaschinentür ist möglicherweise nicht ganz geschlossen.

Die Waschmaschine verriegelt beim Programmstart normalerweise die Tür. Dabei wird dann auf dem Display ein Schloß angezeigt, und der Waschvorgang startet. Bei uns wurde kein Schloß mehr angezeigt, und ich vermutete, daß die Türsicherung defekt ist.

Türsicherung ausbauen

Zuerst den Waschmaschinenstecker aus der Steckdose.

Wenn man die Fronttür öffnet, sieht man einen runden grauen Gummi. Der Gummi wird mit einem Draht mit Spannfeder in Position gehalten. Mit einer Zange kann man den Draht an der Feder abziehen, und dann kann die Gummidichtung nach innen in die Trommel geklappt werden.

Gummidichtung Feder am Draht

Die Verriegelung ist mit zwei Schrauben gesichert und kann jetzt abgeschraubt werden. Mit der Hand kann man in den Spalt zwischen Gehäuse und Trommel greifen, die Türverriegelung festhalten und rausziehen.

Verschluss mit Schrauben

Es stellt sich raus, daß die Verriegelung vom Typ Metalflex ZV-446 ist und ca. 10€ + Versand kostet:

Türverschluss ZV 446

Reparatur?

Bei ifixit gibt es eine Anleitung Türschalter Metalflex ZV-446 reparieren, die leider etwas unvollständig ist. Das Säubern des Kontakts hat bei mir auch nicht geholfen.

Am Ende habe ich mich dazu entschieden, die Sicherung zu überbrücken. Die Waschmaschine denkt jetzt, daß die Tür immer gesichert ist, aber das stört nicht weiter. (Die Kinder sind groß genug, daß sie die Tür nicht während des Waschgangs öffnen.)

Gehäuse öffnen

Beim Gehäuse muss zuerst der braune Aufsatz an den Kontakten entfernt werden - es gibt zwei weiße Nasen, die unter ihm verborgen sind und die man abbricht, wenn man den Aufsatz drauflässt:

Nasen - die rechte ist schon abgebrochen

Ich habe den Aufsatz entfernt, indem ich einen Haken aus meinem Lock-Picking-Set in den kleinen Spalt geschoben und die Halterung nach außen gedrückt habe:

Kontaktabdeckung lösen

Die Schraube auf der Rückseite muss nicht angefasst werden!

Unnötige Teile ausbauen

Als der Deckel des Schalters offen war, habe ich die rot markierten Teile entfernt - auch den runden Heizstein, der vermutlich den Bimetallstreifen erhitzt. (Das war bei mir das Problem: sobald der heiß wurde, gab es keine elektrische Verbindung zwischen zweiten und dritten Kontakt mehr)

Teile

Dann die Spitze des Bimetallstreifens runterdrücken, damit die Verbindung mit dem drunterliegenden Kontaktpunkt hergestellt ist. Mit dem Multimeter prüfen, ob zwischen Kontakt 2 und 3 Strom fließen kann, und dann alles wieder zusammenbauen.

Fertig

Die Waschmaschine läuft wieder und zeigt auf dem Display das Schloß:

Display zeigt wieder das Schloß an

Published on 2025-04-05 in