Rainmeter

Moin,

ich habe für mich gerade Rainmeter entdeckt, besonders angetan hat mich die leichte Kopplung mit IPS. Mit Rainmeter lassen sich auf Windows 10 kleine Widgets auf dem Desktop anzeigen und so z.B. direkt Inhalte von IPS Variablen oder Mediainformationen auf dem Desktophintergrund einblenden.

Auch das Starten von Skripten oder Setzen von Variablen ist möglich, da der in Rainmeter integrierte Webparser allerdings keine POST requests akzeptiert, habe ich das über Eventghost gemacht.

So siehts bei mir nach wenig Mühe aus:

Das Metar&Taf sind IPS Stringinhalte, das bunte Deutschland (beides Sichtflugwetterinfos, etwas speziell, aber es sollen ja auch nur die Möglichkeiten demonstriert werden) sowie die 10-Tage Wetteransicht aus IPS Mediainhalten.

Oben „Vol+ Vol- Sonos“ sind Aktionen, die in IPS getriggert werden (hier, um meinen Marantz im Arbeistzimmer zu steuern)

Ich weiß, dass das alles auch übers Webfront geht - aber ich finde es für alltägliche IPS-Sachen eine netter Ergänzung zur Bedienung,

Ich weiß nicht, ob das jetzt alles zu speziell ist und jemanden interessiert - wenn dem so ist poste ich hier gerne Zusatzinfos wie Skripte und Rainmeter-Definitionen.

Hallo TomW,

finde ich hoch interessant, da ich Symcon auf nem Pi habe und nicht immer das Webfront öffnen will. Momentan läuft bei mir auf nem zweiten Monitor immer IPSView. Allerdings wäre Deine Integration in Win10 wesentlich netter, um den Desktop nicht immer mit dem Viewer verdeckt zu haben.

Wäre also für Tipps zur Umsetzung sehr dankbar.

Viele Grüße,

Burkhard

Okay, ich versuche es mal. Es ist nur eine rudimentäre Anleitung, da ich selbst nur die Hälfte verstehe.

  1. Rainmeter installieren, zusätzlich die Glasses Skin - die habe ich als Vorlage teilweise übernommen. https://vclouds.deviantart.com/art/Glasses-313182310

  2. Im Webfront/user einen Ordner erstellen für die php-Skripte.Für einen String z.B.:

<?
echo "<html><head><title>Current IP Check</title></head><body>METAR: ".GetValue(27777)."

".GetValue(31839)."</body></html>";
?>

Beim Aufruf dieses Skripts im Browser sollte dann der Stringinhalt nackig da stehen. Sicherheit nach Geschmack einstellen.

  1. Im Rainmeter Skin Verzeichnis liegen viele der Glasses-Skin. Ich habe einfach einen Ordner kopiert (von einem Meter, dessen Größe einem etwa gefällt) und die ini-Datei umbenannt. Man sieht das ja noch im Titel :wink:

Anschließend den Inhalt anpassen, z.B.:

;[BEGIN CONFIG FILE]==============================

[Rainmeter]
Author=VClouds
Version=1.0
AppVersion=100100
Update=1000
Blur=#Blur#
BlurRegion=2,17,18,211,114,0

[Metadata]
Name=Glasses-Drives
Description=
Instructions=

Version=1.0
Tags=Glasses|VClouds
License=Creative Commons Attribution-Non-Commercial-Share Alike 3.0
Variant=
Preview=

[Variables]
@include=\UserVariables.inc
@include2=#@#Language\#Language#.inc

; MEASURES--------------------

[metar]
Measure=Plugin
Plugin=WebParser.dll
Url=http://chekow/user/Rainmeter/metar.php
UpdateRate=300
RegExp="(?siU)METAR: (.*)</body>"
StringIndex=1
Substitute="":"N/A"

; METERS--------------

; STYLES==============

[styleTitle]
StringAlign=Left
StringCase=UPPER
StringStyle=Normal
StringEffect=BORDER
FontEffectColor=255,255,255,60
FontColor=#colorTitleText#,255
FontFace=#fontName#
FontSize=#textSize#
AntiAlias=1

[styleLeftText]
StringAlign=LEFT
StringCase=NONE
StringStyle=Normal
StringEffect=SHADOW
FontEffectColor=0,0,0,50
FontColor=#colorText#
FontFace=#fontName#
FontSize=#textSize2#
AntiAlias=1

[styleRightText]
StringAlign=RIGHT
StringCase=NONE
StringStyle=Normal
StringEffect=SHADOW
FontEffectColor=0,0,0,50
FontColor=#colorText#
FontFace=#fontName#
FontSize=#textSize2#
AntiAlias=1

[styleBar]
BarColor=#colorBar#
BarOrientation=HORIZONTAL
SolidColor=255,255,255,20
SolidColor2=255,255,255,0

; Background=============

[MeterBackground]
Meter=IMAGE
ImageName=#@#Images\Back2H.png
Hidden=#Background#
ImageTint=#BackgroundColor#,#BackgroundTransparency#

[MeterBoxTop]
Meter=image
BackgroundMode=2
SolidColor=0,0,0,150
SolidColor2=0,0,0,0
X=19
Y=20
W=255
H=22
Hidden=#Shade#

[MeterBoxBottom]
Meter=image
BackgroundMode=2
SolidColor=0,0,0,150
SolidColor2=0,0,0,20
X=12
Y=42
W=370
H=158
Hidden=#Shade#

[MeterBoxLineR]
Meter=image
BackgroundMode=2
SolidColor=0,0,0,0
SolidColor2=255,255,255,70
X=98
Y=40
W=290
H=2
Hidden=#Shade#

[MeterBoxLineR2]
Meter=image
BackgroundMode=2
SolidColor=0,0,0,0
SolidColor2=0,0,0,50
X=98
Y=42
W=290
H=1
Hidden=#Shade#

;---------------------------

[MeterNetTitle]
Meter=STRING
MeterStyle=styleTitle
X=12
Y=12
W=285
Text=METAR & TAF

[METARString]
Meter=STRING
MeterStyle=styleLeftText
MeasureName=metar
X=20
Y=30r
W=360
H=400
Text="%1"
ClipString=2

; Reflection=========

[MeterReflect]
Meter=IMAGE
ImageName=#@#Images\ReflectionGmail.png
Hidden=#Reflection#

Im Measure Abschnitt sieht man beim Parser die Ankopplung an IPS. Natürlich kann man da mit Regex im Parser auch Stringteile rauskopieren, aber ich mache diese Vorarbeit direkt in IPS. In dieser Einstellung wird das Webfront etwa alle 10min aufgerufen, falls man nicht direkt manuell auf dem Meter aktualisiert.

  1. Für Buttons habe ich das so relaisiert (hier ohne diese Glass-Effekte, die fand ich bei Buttons unschön):
[Rainmeter]
Update=1000

[Variables]

[MeterVolUp]
Meter=String
X=5R
Y=5
FontSize=11
FontColor=255,255,255,255
SolidColor=47,47,47,255
Padding=5,5,5,5
LeftMouseDownAction=["C:\Program Files (x86)\EventGhost\Eventghost.exe" -event RainMeter.IPSButtons.Vol+]
Text=Vol +
AntiAlias=1

[MeterVolDown]
Meter=String
x=5R
Y=5
FontSize=11
FontColor=255,255,255,255
SolidColor=47,47,47,255
Padding=5,5,5,5
LeftMouseDownAction=["C:\Program Files (x86)\EventGhost\Eventghost.exe" -event RainMeter.IPSButtons.Vol-]
Text=Vol -
AntiAlias=1

[MeterSonos]
Meter=String
x=5R
Y=5
FontSize=11
FontColor=255,255,255,255
SolidColor=47,47,47,255
Padding=5,5,5,5
LeftMouseDownAction=["C:\Program Files (x86)\EventGhost\Eventghost.exe" -event RainMeter.IPSButtons.Sonos]
Text=Sonos
AntiAlias=1

Die Buttonaktion läuft über diesen „LeftMouseDownAction“, der bei mir einfach eine Eventghost-Aktion aufruft. Das ist ein Thema für sich, aber leider kann Rainmeter wohl keine POST requests ohne zusätzlichen Firlefanz, den ich nicht kapiert hatte. In Eventghost ist das nicht das Problem, also setze ich dort die POST requests an die json-rpc von IPS ab.

  1. Bilder anzeigen:
    eigentlich genauso wie Strings, nur andere Skripte mit passendem Header:

<?
Header ("Content-type: image/png");
readfile("//chekow/c/IP-Symcon/media/weather_Bremen.png");
?>

also nur eine Datei aus dem Mediaordner auslesen. Sollte im im Vorfeld natürlich auch im Browser erstmal testen. Dann eine mögliche ini-Datei:

[Rainmeter]
Author=VClouds
AppVersion=2001000
Update=1000

[Metadata]
Name=Gafor
Description=
Instructions=
Version=1.0.0
License=Creative Commons BY-NC-SA 3.0

[Variables]
@Include=Variables.inc
@include2=#@#Language\#Language#.inc

; MEASURES ====================================

[mImage]
Measure=Plugin
Plugin=WebParser
Url=http://chekow/user/Rainmeter/weather_Bremen.php
Download=1
DownloadFile=FileName.png

; METERS ======================================


[Image]
Meter=IMAGE
MeasureName=mImage
X=0
Y=11
W=665
H=260
PreserveAspectRatio=#PreserveAspectRatio#


Bei mir läuft alles nur intern - also ohne Passwörter. Da muss man u.U. noch etwas nacharbeiten.

Nächster Teil: Die Sache mit Eventghost…

Ich nutze Eventghost eh, um damit in IPS Aktionen zu triggern und z.B. Variablen zu setzen. Das notwendige EG Plugin habe ich eben an anderer Stelle gepostet (hier im Forum unter Zusatzsoftware https://www.symcon.de/forum/threads/35768-Eventghost-Plugin-f%C3%BCr-IPS-JSON-Schnittstelle)

Die Kopplung ist dann relativ einfach:
Unbenannt2.PNG

In der IPS Methode dort dann:
Unbenannt.PNG