Im Mediola Forum hat ein User nach farblicher Darstellung von CCU Variablen / Geräte Werten, in Textfeldern von NEO abhängig vom wert der Variable gefragt.
http://answers.mediola.com/1903738/Farb ... ng-im-Text
Da Neo das noch nicht unterstützt, ist es nur möglich mit dem Umweg über eine Webseite, welche dann im NEO über einen Webseiten Element, darstellbar ist.
Also wer einen Webserver hat, lokal auf einem Server oder im Web, kann es auf folgender Weise machen:
Dort geht es um den Temperaturwert in Farbe anzuzeigen von einem CCU Thermostaten, abhängig von der Temperatur welche das Thermostat liefert.
Möglich ist das homematic Script auch auf für Variablen oder andere Geräte anzupassen:
Hier das script welches wir in einem Programm brauchen mit CUXD:
Da ich keinen aussentemperatur sensor habe, habe ich den wandthermostat HM-TC-IT-WM-W-EU zum testen...also unter <Sensor Name> gebe ich den namen für kanal 1, welcher in der ccu den namen
Wohnzimmertermtemp hat.
In dem script sind die zeilen var temp= mit ! davor für die, welche den Heizungsthermostat HM-CC-RT-DN benutzen oder die aussentemperatur in eine variable haben, z.b. wunderground wetter script
wo der name der temperatur variable Wetter_Temperatur lautet.
also einfach das zeichen ! wegnehmen in der zeile die für eigenes gerät zutrifft...
Code: Alles auswählen
!abfrage der temperatur mit seriennummer des Heizungsthermostats HM-CC-RT-DN und datenpunktes 4
!var temp = dom.GetObject("BidCos-RF.KEQ0654208:4.ACTUAL_TEMPERATURE").Value().ToString(2);
!abfrage der temperatur aus der system variable Wetter_Temperatur
var temp = dom.GetObject("Wetter_Temperatur").Value().ToString(2);
!abfrage der temperatur des Wandthermostates HM-TC-IT-WM-W-EU über den namen des sensors: bei mir Wohnzimmertermtemp und kanal 1 TEMPERATURE
!var temp = dom.GetObject("Wohnzimmertermtemp").DPByHssDP("TEMPERATURE").Value();.ToString(2);
WriteLine(temp);
!hier die ip adresse eueren servers/webseite ersetzen, z.b. meine-homepage.de
string url="wget -q -O - 'http://192.168.1.44/temp.php?temp="#temp#"'";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(url);
Code: Alles auswählen
var temp = dom.GetObject("Wohnzimmertermtemp").DPByHssDP("TEMPERATURE").Value().ToString(2);
string stdout;
string stderr;
system.Exec("wget -q -O /dev/null 'http://192.168.1.44/farbe/temp.php?temp="#temp#"'"
, &stdout, &stderr);
Jetzt brauchen wir eine php datei die wir temp.php nennen, wenn anderer name benutzt wird, muss es im script entsprechend angepasst werden:
Code: Alles auswählen
<?php
if (isset($_GET["temp"])){ $temp1 = $_GET["temp"]; } else { $temp1="x"; }
if ($temp1 != x){
file_put_contents("temperatur.dat", $temp1); // die temperatur aus homematic script wird in temperatur.dat geschrieben
if ($temp1 < 0){
$color="blue"; // textfarbe wenn temperatur < wie 0
} elseif ($temp1 >= 0 && $temp1 < 24) {
$color="green"; // textfarbe wenn temperatur >= wie 0 und < 24
} if ($temp1 >= 24){
$color="red"; // textfarbe wenn temperatur >= wie 24
}
}
// hier wird die temperatur aus der datei temperatur.dat ausgelesen, für einbindung in mediola
else {
$datei = fopen("temperatur.dat","r+");
$temp1 = fgets($datei);
if ($temp1 < 0) {
$color="blue"; // textfarbe wenn temperatur kleiner wie 0
} elseif ($temp1 >= 0 && $temp1 < 24) {
$color="green"; // textfarbe wenn temperatur >= wie 0 und <24
} if ($temp1 >= 24){
$color="red"; // textfarbe wenn temperatur >= wie 24
}
}
?>
<html>
<head>
<title>Temperatur</title>
<style>
body {
background-color: transparent;
}
</style>
</head>
<body>
<?php
echo "<div style=\"color: $color; font-family:Arial; font-size:20px\">$temp1 °C</div>";
?>
</body>
</html>
diese brauchen wir um mit neo, den wert mit nur einer php datei auszulesen temp.php
aus dem homematic script wird die temperatur an diese datei mit temp.php?temp=aktuelletemperatur übergeben...
dieses kann man mit einem browser testen
Code: Alles auswählen
http://webserverip/temp.php?temp=21
diese webseite dann im neo webseitenelement eingeben:
Code: Alles auswählen
http://webserverip/temp.php
Noch ein programm auf der ccu welches das homematic script von oben ausführt, wenn die temperatur des thermostates oder der wert eine variable aktualisiert wird. Das wars schon, vielleicht hilft es jemandem, bis NEO die texte farblich abhängig von einem wert darstellen kann.