Leistungsreduktion beim hydraulischen Durchlauferhitzer

Wer einen hydraulischen Durchlauferhitzer benutzen muss, kann leider nicht gradgenau die Auslauftemperatur wählen, so wie das bei modernen elektronisch geregelten Geräten geht. Zum Energiesparen angesichts Strompreisen ist es nicht so toll, wenn das Wasser also höher erhitzt werden muss als nötig und aus Komfortgründen mies, wenn dann kaltes Wasser zum Duschen zugemischt werden muss und damit ggf. die Gegendrucksteuerung aus dem Tritt gebracht wird (Ergebnis: schlagartige Abschaltung weil der DLE seine Hitze nicht los wird – eiskalter Duschmoment folgt…).

Manche alte Durchlauferhitzer haben eine simple Leistungseinstellung in Form von zwei Stufen. Das läuft dann so, dass einer der drei im Gerät verbauten Heizdrähte abgeschaltet wird. Wenn der DLE 24kW hat, läuft er dann auf 18kW. Bei uns ist das im Sommer zum Duschen immer noch etwas viel.

Was auch geht: eine der drei Sicherungen in der Unterverteilung ausschalten! Folge ist eine Leistungsreduktion um 2/3, weil ja eine Phase weggenommen wird (Heizdrähte zwischen den Außenleitern L1-L2, L2-L3, L1-L3 – nehme ich z.B. L1 weg, arbeitet nur noch der Heizdraht zwischen L2 und L3), also im Beispiel auf 8kW.

Zu beachten: wenn verfügbar, Innenschaltung des DLE aus den evtl. im Internet verfügbaren Unterlagen (je nach Alter des Gerätes…) in Augenschein nehmen oder alternativ durch Ausprobieren ermitteln, auf welcher Phase die Sicherheitsabschaltung (Temperatur+Druck) des Gerätes liegt. Wenn diese Phase ausgeschaltet wird, wird das Gerät nämlich nicht arbeiten.

Was bringt das Ganze? Man könnte ja argumentieren, dass für die Erwärmung einer gewissen Menge Wasser auf eine bestimmte Temperatur (ob nun direkt oder durch Mischen mit Kaltwasser) immer die gleiche Menge Energie benötigt wird. Einsparungen ergeben sich aber durch die Leistungsreduktion trotzdem, denn a) die Verluste an Rohrleitungsnetz und Umgebung werden durch eine geringere Temperaturdifferenz kleiner und b) reduziert sich effektiv durch Einstellung auf die gewünschte Temperatur zum Duschen auch die Wassermenge, damit wiederum auch die aufzuwendende Energie. Außerdem ist es komfortabler so zu duschen, weil der DLE kaum auf Temperaturen kommt, bei denen er sich deaktiviert weil er die Hitze nicht los wird.

Kann nur empfehlen, das im Sommer mal auszuprobieren! Hängt ja alles von der Medientemperatur des zulaufenden Wassers ab, ich denke mal ab Herbst wird wieder mehr Leistung als 8kW gebraucht…

Beispielschaltbild eines AEG DDLT Durchlauferhitzers, (c) AEG

moode audio watchdog

Maybe you want to make sure that your moode audio player is nearly always outputting a signal. Moode does not handle this by itself, at least not predictable. So I hacked together the following shell script which I execute by cron every minute:

#!/bin/sh
#
# simple-moode-watchdog.sh
# checks if other media renderer stuck in paused state, if so, unblock that
# checks if radio stream still playing, would otherwise restart playback

if [ -n "$(cat /proc/asound/card0/pcm0p/sub0/hw_params | grep closed)" ]
then
        if [ -n "$(cat /var/local/www/currentsong.txt | grep Spotify)" ]
        then
                /usr/local/bin/moodeutl -R --spotify
        elif [ -n "$(cat /var/local/www/currentsong.txt | grep Airplay)" ]
        then
                /usr/local/bin/moodeutl -R --airplay
        elif [ -n "$(cat /var/local/www/currentsong.txt | grep Bluetooth)" ]
        then
                /usr/local/bin/moodeutl -R --bluetooth
        fi
fi

if [ -n "$(cat /var/local/www/currentsong.txt | grep state\=play)" ] && [ -n "$(mpc | grep play)" ]
then
        timestamp1=$(mpc status | awk 'NR==2 { split($3, a, "/"); print a[1]}')
        sleep 10
        timestamp2=$(mpc status | awk 'NR==2 { split($3, a, "/"); print a[1]}')
        if [ "$timestamp1" = "$timestamp2" ]; then
                mpc -q stop
                mpc -q play
        fi
fi

if [ -n "$(cat /var/local/www/currentsong.txt | grep state\=stop)" ] || [ -n "$(cat /var/local/www/currentsong.txt | grep state\=pause)" ]
then
        mpc -q clear
        mpc -q load "Favorites"
        mpc -q play
fi

if ! pgrep -x "librespot" > /dev/null
then
        /usr/local/bin/moodeutl -R --spotify
fi

Home Assistant switch: per SSH auf anderem Host Sachen machen

Home Assistant auf Hassio auf einem Raspberry Pi ist ein wunderbares Stück Software und kann fast alles. Aber manchmal muss doch bisschen rumgefrickelt werden… hier mal ein Beispiel:

Ich möchte einen Rechner (A) in einem per VPN verbundenen Netz per wake-on-lan wecken und herunterfahren können. Wake-on-lan geht nicht über VPN (weil nicht IP), also folgender Gedanke: zum Wecken soll eine Verbindung mit Rechner (B) im gleichen Netz wie (A) hergestellt werden, der immer läuft. Dorthin SSH-login, um das Magic Packet an (A) abzusenden. Zum Herunterfahren von (A) dann dorthin direkt per SSH und Shutdown auslösen.

Problem: Home Assistant mit SSH-Keys versorgen damit der sich automatisch woanders einloggen und Sachen machen kann. Ich hab nach Blick auf https://community.home-assistant.io/t/protip-how-to-get-shell-in-actual-homeassistant-or-addon-container-when-using-hassio/48760 also erstmal SSH auf den Hassio-Host selbst auf dem beschriebenen Weg aktiviert.

Wenn das läuft, dort: docker exec -it $(docker ps -f name=homeassistant -q) bash

Von dort aus erst ssh-keygen benutzen und dann login zu den Rechnern A und B ermöglichen: ssh-copy-id commanduser@192.168.111.22_33 (bitte einen stark beschränkten Account nur für den jeweiligen Befehl auf den Zielsystemen anlegen, is klar oder?).

Wenn das soweit klappt, ist es nicht mehr weit… hier der Ausschnitt aus der Home Assistant configuration.yaml:

shell_command:
  wakeup_host: /usr/bin/ssh commanduser@192.168.111.22 'wakeonlan 10:1A:0C:41:42:A7'
  shutdown_host: /usr/bin/ssh commanduser@192.168.111.33 'sudo shutdown -h now'
  
binary_sensor:
  - platform: ping
    host: 192.168.111.22
    name: "host drueben"
    count: 1
    scan_interval: 10

switch:
  - platform: template
    switches:
      host_woanders:
        friendly_name: "Host da drüben"
        value_template: "{{ is_state('binary_sensor.host_drueben', 'on') }}"
        turn_on:
          service: shell_command.wakeup_host
        turn_off:
          service: shell_command.shutdown_host

Damit der Shutdown klappt, wird wahrscheinlich erforderlich sein, dem commanduser den Befehl sudo shutdown -h now auch ohne Passwort in der sudo-Konfiguration zu erlauben: commanduser ALL = NOPASSWD: /usr/sbin/shutdown

könnte dann so oder anders in Lovelace aussehen… Ein Schalter für an/aus, und der Rechner verhält sich so wie der Schalter es will <> der Schalter gibt den Zustand des Rechners wieder

kodi + alte XBOX-DVD-Kit Fernbedienung

Bei einem guten Freund von mir läuft im Wohnzimmer ein Rechner mit Ubuntu, auf dem wiederum zum Filme gucken Kodi.

Nun hatte ich von meiner alten XBOX 1 noch das originale XBOX DVD Playback Kit, was eine ziemlich gute Fernbedienung enthält sowie einen USB-IR-Empfänger dafür.

Schritt 1: USB-Empfänger an USB anschließen. Klingt trivial, aber die alte Xbox hatte so ein eigenes Steckerformat um zu kaschieren dass sie USB benutzt, weil das System ursprünglich (bis der Modchip reinkam :D) zugenagelt war. Geht ziemlich einfach, hier ist die Anleitung dazu: https://kodi.wiki/view/Archive:Wire_your_XBOX_DVD-Remote_for_USB

Schritt 2: Kodi läuft, Lirc läuft, aber die “BACK”- und die große grüne Taste ganz oben tun noch keinen Dienst? Das liegt an der originalen Lircmap.xml von Kodi, in der die Keycodes KEY_BACK und die KEY_ANGLE fehlen. Folgende Lircmap funktioniert hier ganz prächtig und sorgt dafür, dass alle Tasten sinnvoll gematcht sind (de facto sind nur die ersten beiden Zeilen der Tastendefinitionen gegenüber der originalen bei Kodi in Ubuntu mitgelieferten Lircmap an die Keycodes der XBOX Remote angepasst, daher auch bisschen noch Übeflüssiges dabei, aber Faulheit siegt):

<lircmap>
        <remote device="devinput-32">
                <back>KEY_BACK</back>
                <display>KEY_ANGLE</display>
                <left>KEY_LEFT</left>
                <right>KEY_RIGHT</right>
                <up>KEY_UP</up>
                <down>KEY_DOWN</down>
                <select>KEY_OK</select>
                <enter>KEY_ENTER</enter>
                <clear>KEY_DELETE</clear>
                <start>KEY_MEDIA</start>
                <record>KEY_RECORD</record>
                <play>KEY_PLAY</play>
                <pause>KEY_PAUSE</pause>
                <stop>KEY_STOP</stop>
                <forward>KEY_FASTFORWARD</forward>
                <reverse>KEY_REWIND</reverse>
                <volumeplus>KEY_VOLUMEUP</volumeplus>
                <volumeminus>KEY_VOLUMEDOWN</volumeminus>
                <pageplus>KEY_CHANNELUP</pageplus>
                <pageminus>KEY_CHANNELDOWN</pageminus>
                <skipplus>KEY_NEXT</skipplus>
                <skipminus>KEY_PREVIOUS</skipminus>
                <guide>KEY_EPG</guide>
                <title>KEY_TITLE</title>
                <subtitle>KEY_SUBTITLE</subtitle>
                <language>KEY_LANGUAGE</language>
                <info>KEY_INFO</info>
                <mute>KEY_MUTE</mute>
                <power>KEY_POWER</power>
                <eject>KEY_EJECTCD</eject>
                <eject>KEY_EJECTCLOSECD</eject>
                <menu>KEY_DVD</menu>
                <menu>KEY_MENU</menu>
                <myvideo>KEY_VIDEO</myvideo>
                <mymusic>KEY_AUDIO</mymusic>
                <mypictures>KEY_CAMERA</mypictures>
                <livetv>KEY_TUNER</livetv>
                <mytv>KEY_TV</mytv>
                <teletext>KEY_TEXT</teletext>
                <one>KEY_NUMERIC_1</one>
                <two>KEY_NUMERIC_2</two>
                <three>KEY_NUMERIC_3</three>
                <four>KEY_NUMERIC_4</four>
                <five>KEY_NUMERIC_5</five>
                <six>KEY_NUMERIC_6</six>
                <seven>KEY_NUMERIC_7</seven>
                <eight>KEY_NUMERIC_8</eight>
                <nine>KEY_NUMERIC_9</nine>
                <zero>KEY_NUMERIC_0</zero>
                <star>KEY_NUMERIC_STAR</star>
                <hash>KEY_NUMERIC_POUND</hash>
                <red>KEY_RED</red>
                <green>KEY_GREEN</green>
                <yellow>KEY_YELLOW</yellow>
                <blue>KEY_BLUE</blue>
                <recordedtv>KEY_PVR</recordedtv>
                <liveradio>KEY_RADIO</liveradio>
        </remote>
</lircmap>

Einfach in .kodi/userdata/Lircmap.xml abspeichern, Kodi neustarten, läuft.

WAZ-Plus-Artikel gratis lesen durch passenden User-Agent

Die Artikel der Funke-Mediengruppe (WAZ, NRZ, derwesten) stehen mittlerweile überwiegend hinter eine Paywall online. WAZ-Plus genannt und relativ teuer, dafür, dass die Qualität dieser Zeitungsgruppe und ihrer immer weiter runterreduzierten und ausgepressten Lokalredaktionen eh schon am unteren Limit rangiert.

Sagte ich Paywall? Stimmt technisch gesehen nicht. Wenn man die Seiten nämlich ganz normal mit dem Browser besucht und dabei als User-Agent den googlebot angibt, gibt es alles gratis im Klartext. Das ist ja offensichtlich keine Paywall, wenn ohne weiteren Auth auch Klartext ausgeliefert wird! 😀

Wer sich jetzt noch ein passendes Plugin in Firefox installiert, zum Beispiel den “User Agent Switcher and Manager” (https://add0n.com/useragent-switcher.html) und dort konfiguriert, dass die Domains waz.de/nrz.de/derwesten.de immer den googlebot-User-Agent bekommen, sonst aber niemand, kann künftig immer direkt alles frei lesen. Praktisch.

kaputte Taste auf der Tastatur unter Linux auf funktionierende Taste umlegen

Bei meinem Thinkpad X260 trat kürzlich folgender Tastaturdefekt auf: die “-” bzw. “_”-Taste hörte spontan auf zu funktionieren, während alle anderen Tasten völlig unbeeinträchtigt sind. Bis die Ersatztastatur geliefert und eingebaut ist, kann es noch was dauern. Das NERVT! Denn um sich mit der Tastatur effektiv auf der Kommandozeile zu bewegen ist die “-” bzw. “_”-Taste (rechts neben der “.” bzw. “:”-Taste) unabdingbar, z.B. für Argumente etc. Oder auch für Smileys!

Also musste erstmal was passieren, und glücklicherweise befindet sich bei dem Tastaturlayout des Thinkpads ganz in der Nähe der nun “verstummten” Taste eine andere, die ich eigentlich nicht brauche: die “Druck”-Taste in der untersten Tastenreihe, eigentlich da wo früher ContextMenu gewesen wäre, zwischen “Alt Gr” und “right Strg”. Damit bietet sich also an, die kaputte Taste hierdrauf zu legen, das geht ja noch fast als exotisches Layout durch. Manche Laptoptastaturen sind da schlimmer!

Was ist zu beachten? Damit es systemweit läuft trotz Wayland und so weiter, hab ich mich analog zur Beschreibung unter https://www.beatworm.co.uk/blog/keyboards/gnome-wayland-xkb für die Lösung entschieden, nur drei Dateien zu bearbeiten: ein neues “Unter-Layout” als Tastaturdefinition mit der entscheidenden Veränderung der”Druck”taste (oder eigentlich <PRSC> Print Screen) unter /usr/share/X11/xkb/symbols/fixdefect erstellen, und in udev-Rule und udev-sprechender Liste bekanntmachen. Dann im dconf-Editor die Änderung aktivieren.

1. Erstelle /usr/share/X11/xkb/symbols/fixdefect:

partial modifier_keys
xkb_symbols "swapminusprint" {
            replace key <PRSC> { type[Group1]="FOUR_LEVEL_PLUS_LOCK", symbols[Group1]=[ minus, underscore, endash, emdash, underscore ] };
};

2. Modifiziere /usr/share/X11/xkb/rules/evdev:

ergänze im Abschnitt “! option = symbols” folgende Zeile:

fixdefect:swapminusprint = +fixdefect(swapminusprint)

3. Modifiziere /usr/share/X11/xkb/rules/evdev.lst:

ergänze irgendwo/am Ende folgende Zeile:

fixdefect:swapminusprint Fix defective minus/underscorekey by swapping with printscreen

4. Starte dconf-Editor und ändere den Eintrag /org/gnome/desktop/input-sources/xkb-options:

Bei custom-value (das ist quasi eine Liste!) unseren neuen Eintrag ergänzen:

dconf-Editor zeigt den Pfad /org/gnome/desktop/input-sources/xkb-options

(obige Notizen beziehen sich auf die zum Zeitpunkt der Erstellung aktuelle stable-x64-Distribution von Debian GNU/Linux, 11.1 bullseye, mit Gnome3 und Wayland)

Evolution druckt nicht? Sandbox deaktivieren.

Wenn mein langjähriger eMail- und alles-Client EVOLUTION unter Debian nicht drucken will (“Printer not found”), hat das mit der Sandbox zu tun, in der Webkit ausgeführt wird.

Die Lösung fand ich unter https://forum.manjaro.org/t/evolution-3-38-mail-printing-failing/38021/4:

cp /usr/share/applications/org.gnome.Evolution.desktop ~/.local/share/applications/

sed -i 's/Exec=evolution/Exec=env WEBKIT_FORCE_SANDBOX=0 evolution/g' ~/.local/share/applications/org.gnome.Evolution.desktop

grep -i "exec" ~/.local/share/applications/org.gnome.Evolution.desktop

Wie schon im Originalbeitrag beschrieben, ist das natürlich kein echter Fix für das in Evolution vorhandene Problem, welches auch bereits Bugreports etc.pp. hat, die allerdings noch nicht bis ins Release in Form eines permanenten Fixes durchgesickert sind, sondern mehr ein Workaround damit man halt wieder schnell was drucken kann. Ymmv.

blog.reset()

Hatte schon öfter hier ein Blog laufen. Hab das mal gepflegt, mal nicht. Irgendwann gelöscht, neu eingerichtet, später wieder gelöscht…

Jetzt also mal wieder ein Anlauf. Von vornherein bisschen reduzierter (optisch und vom Anspruch her). Hauptsache, hier läuft was, wo ich ab und zu Infos ablegen kann, die auch für andere Menschen interessant sein könnten. Feedback welcome, aber wenn nicht, auch OK.