Categories
Coding Home Automation Notes Server Thoughts Uncategorized

Openclaw – So richtig überzeugt es nicht

Openclaw. Grosser hype, aber so mega überzeugt hat es mich jetzt nicht. Und mit jedem zweiten Upgrade übrigens, ist er so “eingeschnappt”, dass man direkt die Konfiguration bearbeiten muss und ins Terminal abtauchen darf.

Nun, wofür ist er wirklich gut: Ich nutze Homeassistant um meinen Saugroboter (Roborock S7, liebevoll genannt: Rocki) zu steuern. Homeassistant (HASS) hatte vor einiger Zeit das Year of the Voice. Daraus entstanden ist das kleine weisse Gerät. Homeassistant Voice Preview. Die Integration von Rocki mit HASS ist relativ holprig! Sagen wir, auf einem Level, dass openclaw das sicher nicht konfigurieren könnte. Nun jedenfalls muss man zuerst die Räume aktivieren, und dann die Reinigung starten.

Nachdem ich openclaw am laufen habe, kann man relativ einfach einen Skill erstellen, mit dessen Hilfe Openclaw erfolgreich Rocki steuern kann. Es gelingt openclaw ausserdem, zuerst die Räume zu selektieren, und danach die Reinigung zu starten.

Für eine gelungene Integration mit hass voice preview bedarf es aber dem hass plugin: openclaw-homeassistant und einem mini-fix (siehe Grafik unten). Dann konfiguriert man die Stimmen über die Google API STT (welche ich irgendwie vor ewiger Zeit installiert hatte). Und man kann mittels: “Ok nabu, bitte saug die Küche und das Esszimmer” sehr zuverlässig die Reinigung starten.

Doch mei-oh-mei, ist das eine Architektur. Nabu => hass => google STT => openclaw => LLM => [1. openclaw tools, etc. => hass ] [2. response to hass about success] => google tts => nabu

Kurzer Einschub: Ähnlich, nur weniger klar konfiguriert ist es nur wenn ich meinen Signal channel verwende: Signal => openclaw => voxtral for stt => openclaw => [1. openclaw tools => hass] [2. message to signal] => tagged tts via openai => signal. Übrigens, diese Konfiguration ist aktuell nciht sehr zuverlässig. Neuerdings generiert openclaw wohl eine tagged message, um openclaw zu signalisieren, dass TTS verwendet werden soll: [[tts: dies ist die nachricht]]

  "tools": {
    "profile": "coding",
    "media": {
      "audio": {
        "enabled": true,
        "models": [
          {
            "provider": "mistral",
            "model": "voxtral-mini-2602"
          }
        ]
      }
    }
  },
  "messages": {
    "ackReactionScope": "group-mentions",
    "tts": {
      "auto": "tagged",
      "provider": "openai",
      "openai": {
        "apiKey": "sk-proj-lRxxxxxxxx",
        "model": "gpt-4o-mini-tts",
        "voice": "fable"
      }
    }
  },

Nun zum eigentlich lustigen, weshalb openclaw einfach nicht überzeugt. Es heisst ja immer, openclaw lerne, konfiguriere sich selbst usw, usw…: Mir ist aufgefallen, dass openclaw in slack immer mit einer audio nachricht antworte. Obwohl er nur antworten sollte, wenn ich anfänglich eine audio nachricht schicke. Also bitte, tomclaw merk dir das:

Neue session, neuer Verlauf:

(Funny, das slack transcript – die Nachricht ist aber 1 zu 1 der Text)

Nun, es sind die kleinen Dinge, aber wenn er quasi nicht mal das kann, hab ich nicht sehr viel Vertrauen darin, dass er das macht was ich ihm sage.

Nachtrag:

  • Hinzu kommt, standardmässig wird das API token für hass direkt in der TOOLS.md gespeichert und geht so bei jedem LLM request mit raus…, nicht sehr vertrauenserweckend. Ein versuch dies in eine .env-Datei zu verfrachten hat nur dazu geführt, dass er manchmal hass nicht erreichen kann. Je nach modell (sonnet-4.6) funktioniert es, mit dem günstigeren gemini-flash-3.1 eher nicht.

Notizen:

Categories
AI Answers Archive Desktop Home Automation Notes

Changing Screens in Windows via script

TL;DR: .bat scripts below to set video (via native DisplaySwitch.exe) and sound output (via nircmd). To avoid black PC monitor on startup, switch back before shutdown.


It has been a long time bugging me. I use my PC to drive a 34 inch Asus monitor, and sometimes, I use it to drive my TV. However, switching between the two is cumbersome. Sometimes, default audio is not switched and I have to do it manually. And on my TV, sitting on the couch, I have neither keyboard nor mouse. So what I do is, I use Unified Remote on my smartphone. There it’s quite easy to change display, and you have a good mouse, by using your smartphone as a touchpad.

Today I thought, i write two scripts, that make it even easier, and maybe, i can run one or the other after start, so that the correct output is set on startup (because when you forget it on TV, nothing is visible, once you start your PC, when you sit on your monitor).

Anyhow, the scripts require some 32bit/64bit windows quirks, and thanks to Google Gemini Pro 3.1, here they are.

Note: you need the nircmd tool: https://www.nirsoft.net/utils/nircmd.html

Note 2: If you’re using Unified Remote, activate the “Start Application” remote, and put the scripts in this folder:

  • cmd+r: shell:startup — then two folders up in “Start Menu”
  • This will be a folder like this: C:\Users\[youruser]\AppData\Roaming\Microsoft\Windows\Start Menu

Note 3: If you use your TV, and then shutdown, be aware, that you have still selected TV, and the next day you will stare in a black screen. To avoid that, Gemini’s idea, which I think makes sense, is to switch back to PC, and THEN shutdown.

tv.bat

@echo off
echo Switching video output to Second Screen Only...

:: Use Sysnative to bypass Unified Remote's 32-bit redirection
if exist "%windir%\Sysnative\DisplaySwitch.exe" (
    "%windir%\Sysnative\DisplaySwitch.exe" /external
) else (
    "%windir%\System32\DisplaySwitch.exe" /external
)

:: Wait 3 seconds for the TV to wake up and register its audio channel
timeout /t 3 /nobreak >nul

echo Switching audio output to Samsung TV...
:: Using absolute path for NirCmd to prevent PATH errors
C:\apps\nircmd.exe setdefaultsounddevice "SAMSUNG"

echo Done!

pc.bat

@echo off
echo Switching video output to PC Screen Only...

:: Use Sysnative to bypass Unified Remote's 32-bit redirection
if exist "%windir%\Sysnative\DisplaySwitch.exe" (
    "%windir%\Sysnative\DisplaySwitch.exe" /internal
) else (
    "%windir%\System32\DisplaySwitch.exe" /internal
)

:: Wait 3 seconds for the monitor to register its audio channel
timeout /t 3 /nobreak >nul

echo Switching audio output to Asus Monitor...
:: Using absolute path for NirCmd to prevent PATH errors
C:\apps\nircmd.exe setdefaultsounddevice "Asus"

echo Done!

shutdown-switchback.bat

@echo off
echo Switching video output to PC Screen Only...

:: Use Sysnative to bypass Unified Remote's 32-bit redirection
if exist "%windir%\Sysnative\DisplaySwitch.exe" (
    "%windir%\Sysnative\DisplaySwitch.exe" /internal
) else (
    "%windir%\System32\DisplaySwitch.exe" /internal
)

:: Wait 3 seconds for the monitor to register its audio channel
timeout /t 3 /nobreak >nul

echo Switching audio output to Asus Monitor...
:: Using absolute path for NirCmd to prevent PATH errors
C:\apps\nircmd.exe setdefaultsounddevice "Asus"

:: Wait 2 seconds to ensure the display switch registers
timeout /t 2 /nobreak >nul

echo Shutting down the PC...
:: /s = shutdown, /t 0 = wait 0 seconds
shutdown /s /t 0

Categories
run free Thoughts

Vorfuss, Mittelfuss, Ballen – Wie gehen beim Wandern?

Begriffsklärung:

  • Gehen: Spazieren gehen. In meinem Sprachgebrauch auch oft als “laufen” bezeichnen. “Wir sind nach Hause gelaufen” (alemannisch)
  • Laufen: Joggen, manchmal würde ich das auch als rennen bezeichnen. Im englischen eher “to run”. Eigentlich klar, einen Marathon laufen. Geschwindigkeit: Marathongeschwindigkeit.
  • Rennen: Schneller als laufen, aber vielleicht noch nicht ganz ein Sprint, oder doch?
  • Sprint: Maximalgeschwindigkeit
  • Schreiten: Tänzer, auf der Bühne, ein langsames Schreiten.

Wieso?

2022 (oder so), habe ich “Born to run” von Christoph McDougall gelesen. Ich war fasziniert von der Tatsache, dass erstens, der Mensch ein Ausdauerjäger war, und zweitens es möglich ist, mit Sandalen 40, 100 oder noch mehr Kilometer zu laufen. Nicht, dass ich ab diesem Zeitpunkt nur noch mit Sandalen rumgelaufen bin.

Nun ist 2025, ich habe das zweite Buch, “Born to Run 2 – Trainingsplan” beschafft. Einmal ganz durchgelesen, und nun möchte ich den Trainingsplan umsetzen (das allerdings ist eine Geschichte für einen anderen Beitrag).

Jedenfalls frage ich mich, wenn es für die Lauftechnik so wichtig ist mit dem Vorfuss aufzusetzen, bzw. die hohe Schrittfrequenz zu halten, wie wandere ich dann? Und soll ich in Zukunft überhaupt noch wandern?

Manch einer meint ja, dass Vorfuss, oder Vorfuss-Mittelfuss auch beim Gehen verwendet werden sollte. Grund sei, möglichst wenig Belastung auf die Ferse auszuüben.

Nach der Lektüre dieses Artikels, wo Vorfussgang und Fersengang (aka Ballengang) beschrieben werden, und diesen zwei Youtube Videos ist für mich der Groschen aber Gefallen. Beim Gehen (und somit auch beim Wandern) lässt man das Bein schlicht nach vorne pendeln, und kommt dadurch automatisch mit der Ferse auf. Dann verlagert man das Gewicht nach vorne, rollt automatisch über den Fuss ab, und lässt das nächste Bein nach vorne Pendeln. Für mich ist das am Natürlichsten.

Links:

Categories
Thoughts

Hello world!

So I always wanted my own blog. Here it is: Tada!

I intend to collect useful information that I searched tediously in the internet, so that it may be more easily accessible. For example, how to setup and secure a private linux server, how to run docker containers on it and setup a reverse proxy and use letsencrypt certificates.

Another part might be some interesting projects I am working on.

So this is it: Hello world!