a) ein Prozess der die anzuzeigenden Infos aus der CCU ausliest und zB als TXT-Datei für BGInfo bereitstellt
b) eine BGInfo-Konfiguration, die den Inhalt des txt-files aus (a) auf dem Wallpaper-Bitmap plaziert
c) einen regelmäßigen Task (bei mir zB alle 10min) der diese Schritte automatisch im Hintergrund ausführt
zu a) per curl wird ein homematic-Skript ausgeführt, welches die gewünschten Informationen zusammen sucht, zB
Code: Alles auswählen
curl -s --data @myHM_BGInfo-demo.hms http://ccu3:8183/run.exemyHM_BGInfo-demo.hms:
Code: Alles auswählen
string o; string e;
system.Exec( 'echo -e \# hostname: \\\\t$( uname -n )\\\\n\# uptime..: \\\\t$(( $( cat /proc/uptime|cut -d "." -f 1 ) / 86400 )) d\\\\n\# firmware: \\\\t$( cat /boot/VERSION | cut -d"=" -f2 )', &o, &e );
if( dom.GetObject("Alarmmeldungen") ) {
var Alarmmeldungen = dom.GetObject("Alarmmeldungen" ).Value();
} elseif( dom.GetObject(40) ) {
var Alarmmeldungen = dom.GetObject(40).Value();
} else { var Alarmmeldungen = "-"; }
if( dom.GetObject("Servicemeldungen") ) {
var Servicemeldungen = dom.GetObject("Servicemeldungen").Value();
} elseif( dom.GetObject(41) ) {
var Servicemeldungen = dom.GetObject(41).Value();
} else { var Servicemeldungen = "-"; }
if( datapoints.Get('HmIP-RF.001F9D89979D30:0.DUTY_CYCLE_LEVEL') ) {
var DC_CCU3 = datapoints.Get('HmIP-RF.001F9D89979D30:0.DUTY_CYCLE_LEVEL').Value().ToString(0);
} else {
var DC_CCU3 = "-";
}
if( datapoints.Get('HmIP-RF.001F9D89979D30:0.CARRIER_SENSE_LEVEL') ) {
var CS_CCU3 = datapoints.Get('HmIP-RF.001F9D89979D30:0.CARRIER_SENSE_LEVEL').Value().ToString(0);
} else {
var CS_CCU3 = "-";
}
var Aussen_Temp = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Aussen_Temp").Value().ToString(0);
var WZ_Temp = dom.GetObject(ID_SYSTEM_VARIABLES).Get("WZ_Temp" ).Value().ToString(0);
var _Alarm_Mode = dom.GetObject(ID_SYSTEM_VARIABLES).Get("_Alarm_Mode").Value();
var SecKey_Haustuer_DLD = dom.GetObject(ID_SYSTEM_VARIABLES).Get("SecKey_Haustuer_DLD").Value().StrValueByIndex( "(", 1 ).StrValueByIndex( ")", 0 );
var SunriseTime = system.SunriseTime( "%H:%M" );
var SunsetTime = system.SunsetTime( "%H:%M" );
Write( o ); o="";
WriteLine( "#\n# Alarmmeldungen: \t" # Alarmmeldungen );
WriteLine( "# Servicemeldungen: \t" # Servicemeldungen );
WriteLine( "# DC: \t" # DC_CCU3 # " %" );
WriteLine( "# CS: \t" # CS_CCU3 # " %" );
WriteLine( "#\n# Sonnenaufgang: \t" # SunriseTime # " Uhr" );
WriteLine( "# Sonnenuntergang: \t" # SunsetTime # " Uhr" );
WriteLine( "# Aussen-Temp.: \t" # Aussen_Temp # " C" );
WriteLine( "# Wohnzimmer-Temp.: \t" # WZ_Temp # " C" );
WriteLine( "#\n# Haustür-Schloss: \t" # SecKey_Haustuer_DLD );
WriteLine( "# Alarm-Modus: \t" # _Alarm_Mode );
WriteLine( "#\n# (Stand: " # system.Date( "%H:%M" ) # " Uhr)" );
zu b) in BGInfo (Quelle: https://learn.microsoft.com/de-de/sysin ... ads/bginfo) ein "custom"/user defined field anlegen und als Inhalt die TXT-Datei angeben, die in (a) erzeugt wird, ggf Farbe/Position und Desktops anpassen - mit Preview prüfen..., s. Screenshots - und als myHM_BGInfo-demo.bgi speichern!
zu c) eine CMD-Datei zusammenstellen, die diese Schritte (das txt-file (a) erstellen und bginfo.exe mit der bgi-Konfiguration (b) aufrufen) nacheinander ausführt
myHM_BGInfo-demo.cmd:
Code: Alles auswählen
@echo off
chcp 1252 >NUL
del %~dpn0.txt 2>NUL
echo.&echo # download Systeminfos ...
curl -s --data @%~dpn0.hms http://ccu3:8183/run.exe | %~dp0..\SwissFileKnife\sfk.exe utoa -i | findstr /B "#" > %~dpn0.txt
find "hostname:" %~dpn0.txt >NUL 2>NUL
if errorlevel 1 (
echo ^(ccu3-%~n0.hms failed / Stand: %TIME:~,-6% Uhr^)> %~dpn0.txt
rem exit /B
)
echo.&type %~dpn0.txt
rem ---
echo.&echo # BGInfo ...
%~dp0BGInfo\BGInfo.exe %~dp0myHM_BGInfo-demo.bgi /TIMER:0 /LOG:%~dp0BGInfo.log /SILENT /NOLICPROMPT
und diese CMD in der Computerverwaltung/Aufgabenplanung regelmäßig ausführen lassen:
Ergänzung/Heinweis:
- bei mir liegen myHM_BGInfo-demo.cmd, myHM_BGInfo-demo.hms und myHM_BGInfo-demo.bgi gemeinsam in einem Ordner (\myHM_BGInfo)
- in einem Unterordner BGInfo (\myHM_BGInfo\BGInfo) liegen die bginfo(64).exe aus dem sysinternals-zip-Download
- in einem zu \myHM_BGInfo parallelem Ordner \SwissFileKnife liegt sfk.exe von dem SourceForge.net-Download
--> so sind auch die in der cmd verwendeten Aufrufe ausgelegt, wer seine Daten anderst organisiert muss das natürlich anpassen