ein positiver Nebeneffekt dieses Skriptes ist, dass wesentlich mehr Fenster (Variablentyp 1 - Integer - in das Script eintragen) und Türen (Variablentyp 0 - Boolean - eintragen) auf wesentlich weniger Raum und vor allen Dingen farbig angezeigt werden können.
Damit ist noch leichter und ohne Scrollen ein nicht gewollter Zustand bei einer hohen Anzahl von Fensteraktoren erkennbar.
…wie kann man in dem Script sicherstellen, dass Räume zusammen angezeigt werden ?
Mein Schlafzimmer ist bei dem Script Ergebnis zerrissen… kann man das via Sortierung anpassen ?
Und noch eine Frage an @ Horst oder @ Paresy: Welche HEX Farbe nutzt Ihr im Webfront für ROT und GRÜN ?
Und das es so schön ist hier noch eine Frage: Türkontakte und Rauchmelder haben beiden eine boolean STATE Variable und tauchen dann bei einer Boolean Abfrage in einer Tabelle auf. Sowas kann man nicht irgendwie trennen, oder ?
Das ist ganz einfach, das ist für Homematic und nicht für FS20. Wenn Du das für FS20 nutzen willst musst Du die InstanzModule ändern und eventuell noch ein paar Kleinigkeiten anpassen.
Hallo Rainer,
habe ich doch schon nach bestem Wissen gemacht…
Daher ja die Frage wo der Bug liegt…das Script muss doch universell verwendbar sein da ich keine HM spezifischen Befehle sehe oder bin ich blind.
Gruss
b71
Edit:
Habe den Denkfehler gefunden. Ich versuche auf die Positionsvariable des Shuttermoduls das Script laufen zu lassen.
Da FS20 keine Variable dieser Art hat ist dies also nicht von Erfolg gekrönt gewesen. Aber auch mit der ID vom Shuttercontrol lässt sich das Script nicht zur freundlichen Mitarbeit bewegen…nun gut…kurz: Es lebe Homematic
ich arbeite gerade in einer ähnlichen Richtung. Passt nicht direkt zu den Fensterkontakten, kann aber sicher auch dafür eingesetzt werden.
Analog dem Script von Rainer, mag ich es auch immer flexibel.
So hab ich mir eine Dummy Instanz als Übersicht für die Geschosse angelegt. Diese beinhaltet eine Statusvariable bzw. Links zu allen zu überwachenden Lampenvariablen. Ein zentrales Script derzeitig updated die Sichtbarkeit der Links. Denn in der Übersicht interessieren nur die eingeschalteten Lampen. Vorteil an dem Link ist, das man in der Übersicht noch steuern kann.
In dem Thread hier würden ja eigentlich auch nur die offenen Fenster von Interesse sein. Vielleicht wäre mein Script abgewandelt ja auch was für die Fensterkontakte.
Aufrufscript unter der Dummy Variable
<?
include "CheckLights.ips.php";
// aufruf der funktion
// liest aud dem ¸bergebenen aktor die untergeordneten links und wertet deren Status aus
// dazu muss unter einem dummy aktor eine vielzahl von links auf die Lampen Variable angelegt werden
// durch ein und ausblenden wird signalisiert welche lampen noch eingeschaltet werden
// in einer weiteren variable wird als text angezeigt wieviel lampen noch eingeschaltet sind
//
// Übergabe
// $PV_IPS_SELF -
// $PV_ALLE_VARIABLE
$PV_IPS_SELF=$IPS_SELF;
$PV_ALLE_VARIABLE=59700 /*[EG\Eingeschaltete Lampen im EG\Alle]*/;
updateCheckLights($PV_IPS_SELF, $PV_ALLE_VARIABLE)
?>
Zentrales Script „CheckLights.ips.php“
<?
// diese funktion liest aud dem übergebenen aktor die untergeordneten links und wertet deren Status aus
// dazu muss unter einem dummy aktor eine vielzahl von links auf die Lampen Variable angelegt werden
// durch ein und ausblenden wird signalisiert welche lampen noch eingeschaltet werden
// in einer weiteren variable wird als text angezeigt wieviel lampen noch eingeschaltet sind
//
// übergabe der function
// $PV_IPS_SELF -
// $PV_ALLE_VARIABLE
function updateCheckLights($PV_IPS_SELF, $PV_ALLE_VARIABLE)
{
//echo "start für Aktor ".$PV_IPS_SELF." und Variablenupdate in ".$PV_ALLE_VARIABLE;
$objectIDs = IPS_GetChildrenIDs(IPS_GetParent($PV_IPS_SELF));
$anzahlLampenEin=0;
foreach($objectIDs as $singleID)
{
if (IPS_LinkExists($singleID))
{
// ist ein Link
// original lampen variable suchen
$linkInfo = IPS_GetLink($singleID);
$originalID = $linkInfo["LinkChildID"];
// lampen prüfung ob eingeschaltet
//typ ist integer bei dimmer und geschalteten (boolean)
if (gettype($originalID)=="integer")
{ // dimmer oder geschaltet
// alles was nicht =0 ist, ist eingeschaltet
if (getValue($originalID)>0)
{ // eingeschaltet, dann sichtbar
IPS_SetHidden($singleID, false); //Objekt sichtbar
$anzahlLampenEin=$anzahlLampenEin+1; // zähler eingeschaltete lampen erhöhen
//echo ($singleID." einblenden mit wert=".getValue($originalID)."
");
}
else
{ // ausgeschaltet, dann ausblenden
IPS_SetHidden($singleID, true); //Objekt verstecken
//echo ($singleID." ausblenden mit wert=".getValue($originalID)."
");
}
}
}
// text für die variable (alle lampen setzen), leer lassen wenn keine lampe an
if ($anzahlLampenEin==0)
{
setValue($PV_ALLE_VARIABLE,"keine");
}
else
{
setValue($PV_ALLE_VARIABLE,$anzahlLampenEin." An");
}
// webfront aktualisieren
// das WF sollte eigentlich nur die aktive seite refeshen
// WFC_Reload(21641 /*[WebFront Configurator]*/);
}
}
?>
Skript einfach in eine Kategorie seiner Wahl ablegen und einmal starten.
Variable mit entsprechenden Profil wird automatisch angelegt und das Skript gleich versteckt, ansonsten ist es im Webfront sichtbar. Gleichzeitig wird noch das Standard-Window-Icon auf die Variable gelegt.
Gelb im Webfrontdesign…na wenn das mal nicht was geniales ist…
Ist schon cool was Ihr immer so herauszaubert…
Habe gerade die Anzeige auch noch für die Türkontakte (Variablentyp = 0) angepasst und auch das rennt sofort.
Jetzt müsste man nur noch die Rauchmelder AN/AUS schalten können wenn das Script die Türkontakte einliest. Die haben nämlich das gleiche Variablenprofil und tauchen in dieser Liste dann mit auf.
das Script zum Auslesen und Darstellen der Drehgriffkontakte ist echt eine gute Idee. Ich finde es nur etwas bedenklich auf Grund der Abfrage des Variablentypes zu entscheiden dass es sich um einen entsprechenden Kontakt handelt. Macht es da nicht langfristig mehr Sinn sich so einen Art „DeviceClass“ Variable einzuführen welche die Art des Gerätes kennzeichnet (z.B.: TF für Türfensterkontakt oder DGK für Drehgriffkontakt oder RM für Rauchmelder). Damit kann dann auch sicher abgefragt werden um welchen Typ von Gerät es sich handelt.
Das würde ich von der softwaretechnischen Betrachtung erheblich sauberer finden.
Ich finde eure Lösung sehr schick leider habe ich kein HM könntet ihr eine Version bauen die das mit Links macht?? oder ist das sehr aufwändig.
MFG Ken