Christians Tagebuch

The latest posts in full-text for feed readers.


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


DSGVO: Automatische Kontolöschung

Am 20.03.2025 bekam ich von 2 Onlineshops E-Mails mit ähnlichem Inhalt. Sowohl Alternate als auch Sportscheck haben gemerkt, daß ich lange nichts bei ihnen eingekauft habe und möchten aus Datenschutzgründen die Konten löschen.

Beide boten an, den Kontostatus durch Klick auf einen Link in der Mail auf "jetzt doch nicht löschen" zu setzen.

Betreff: Ihr Onlinekundenkonto bei Alternate

Hallo Christian Weiske,

Ihr Alternate Onlinekundenkonto wurde bereits seit längerer Zeit nicht mehr aktiv genutzt. Um personenbezogene Daten nicht länger als notwendig vorzuhalten, werden inaktive Onlinekonten regelmäßig gelöscht.

Die Löschung Ihres Onlinekundenkontos erfolgt in zwei Wochen ab dieser Benachrichtigung. Sie können die automatische Löschung verhindern, indem Sie sich innerhalb dieser zwei Wochen in Ihr Onlinekundenkonto einloggen. Der Login kann über Ihre hinterlegte E-Mail-Adresse oder Ihre Kundennummer erfolgen. Sofern Ihnen das Passwort nicht mehr bekannt sein sollte, können Sie über die Funktion "Passwort vergessen" ein neues Passwort setzen.

Auch nach Löschung kann jederzeit ein neues Onlinekundenkonto erstellt werden. Bitte beachten Sie jedoch, dass eine Wiederherstellung der Daten aus Ihrem alten Onlinekundenkonto nicht möglich ist.

und

Betreff: Info: Dein Benutzerkonto wird gelöscht

Hallo Christian,

uns ist aufgefallen, dass dein Nutzerkonto [...]@cweiske.de seit längerer Zeit inaktiv ist.

Wichtige Information zur Datenspeicherung

Um den Datenschutzrichtlinien (DSGVO) zu entsprechen, werden inaktive Konten nach einer bestimmten Zeit automatisch gelöscht. In deinem Fall ist dies für den 10.04.2025 vorgesehen – also in 21 Tagen.

Möchtest du dein Konto behalten?

Falls du dein Konto weiterhin nutzen möchtest, kannst du es ganz einfach reaktivieren:

1. Klicke auf diesen Link, bleibe Teil der SportScheck Community und profitiere von zusätzlichen Benefits

2. Melde dich in deinem Konto an

Wir würden uns freuen, dich weiterhin zu unserer Community zählen zu dürfen. Bei uns findest du alles für deinen aktiven Lebensstil – ob in einer unserer 26 Filialen oder bequem im Onlineshop.

Eine sehr schöne Entwicklung!

Published on 2025-03-29 in


Slidge: XMPP-telegram gateway

I mainly use XMPP for chats, but can reach some people via Telegram only. Unfortunately, Telegram on Android eats too much battery and I wanted to get rid of it - but still be able to communicate with the people there.

This week I finally setup a Telegram bridge for my Prosody XMPP server, and used slidgram for that.

With it, Telegram accounts appear in my XMPP contacts list (roster) like normal people - they only have special JID like 123456789@xmpp-slidgram.cweiske.de.

There is an in-built help system that I can talk to by messaging xmpp-slidgram.cweiske.de for registration, searching people and groups.

Up to now it works flawlessly, and the phone runs longer. Slidge supports avatar images, unencrypted messages and images. Stickers are transferred as .webm files.

But I heard that every now and then I will have to re-authenticate on a desktop Telegram installation.

Dino showing the Slidge brigde chat commands

Published on 2025-03-29 in


Unberechtigte Bankabbuchung von Digital River Operations Limited

Heute fiel mir beim Durchscrollen der Kontobewegungen eine Abbuchung auf, die zu keinem unserer Einkäufe passt:

Name
Digital River Operations Limited
IBAN
FR61 1634 8000 0186 4260 0006 S05
BIC
SLMPFRP1XXX (SlimPay)
Art der Buchung
Einzug m. Ermaecht.
Verwendungszweck
DRIbitdefender.de
EREF: 15128346961
MREF: 25118824804
CRED: GB88DRISDDCHAS00000032761104
IBAN: FR6116348000018642600006S05
BIC: SLMPFRP1XXX
Betrag
-199,99 €

Der Betrag sieht so aus, als möchte jemand unter der Grenze von 200€ bleiben um bei halbautomatischen Prüfungen nicht aufzufallen.

bitdefender scheint eine Antivirenbude zu sein, und Antivirenprogramme helfen nicht sondern reißen selbst Sicherheitslücken ins System (siehe auch) - deshalb werde ich da definitiv nichts gekauft haben. Hauptsitz scheint Rumänien zu sein, was auch nicht gerade dem Vertrauen förderlich ist.

Ich habe die Lastschrift per Onlinebanking sofort zurückbuchen lassen. Die Bezeichnung dafür ist komischerweise "Lastschriftrückgabe", obwohl ich ja nichts zurückgeben möchte.

Update 2025-03

Digital River ist insolvent.

Published on 2024-06-22 in