Hy, mach mal die „“ bei 18 weg. Aber die Data Variable abfragen ist aber net so toll oder?
Da fehlt wohl ein ; bei dir. Deshalb die Fehlermeldung.
Hallo dieda,
im „else“-Zweig ist eine geschweifte Klammer zu viel enthalten.
Gruß
HJH
Hallo bmwm3,
stimmt, den Status abfragen ist einfacher:
<?
if (GetValueBoolean(34921 /[StckTvSatWozi\Status]/) !=$IPS_VALUE){FS20_SwitchMode(34039 /[StckTvSatWozi]/ ,$IPS_VALUE);
}
?>
So ist eleganter. BTW, damit kann man ja gleich sog. Bedingungen schaffen, wie ich wollte. Ist der Client an, schalte den Mediaserver an. So jetzt muss ich mir „oder“ und „and“ anschauen.
@ HJH, stimmt zählen muss man können. Sind 5!
<?
$sender_zustand = GetValue(23371 /[FS20FB20\Device Data (1111)]/);
if($sender_zustand == „18“)
{
FS20_SwitchMode (28293 /[Steckdose Mediaserver]/, true);
}
else
$sender_zustand = GetValue(ID-Data);
if($sender_zustand == „18“)
{
FS20_SwitchMode (Objekt-ID/, true);
}
else
{
FS20_SwitchMode (Objekt-ID/, true);
}
?>
Richtig so?
Kenn das eigenlich eher so:
if(Wert=x;y;else(wert=y;z;else(…)))
Hallo Leute,
habe die Steckdosen fertig, war ja einfacher als ich dachte, habe mir nochmals den Button Befehl einfügen angesehen. Aber jetzt tauchen noch ein paar Fragen auf:
Habe gerade gestöbert, wg. der Rolladenschaltung. Dabei bin ich auf den Unterschied zwischen Sonnenuntergang und Dämmerungsende gestoßen.
Bin ich mit Dämmerungsende nicht besser dran?
$lat = Wert ; // North
$long = Wert; // East
$offset = 1; // difference between GMT and local time in hours
$zenith=96;
echo "<br>Civilian Twilight end: ".date_sunset(time(), SUNFUNCS_RET_STRING, $lat, $long, $zenith, $offset);
Kann das ganze ja dann noch eingrenzen mit einer IF-Funktion. Abgesehen davon, dass der Ausgabewert MEZ ist.
LG
Dieda
Offset kannst Du auch automatisch aus der Systemzeit mit date(„O“)/100 auslesen lassen. Dann sparst Du Dir auch das Umstellen bei Sommer-/Winterzeit.
Wann Du Deine Rolladen gerne unten haben willst musst Du schon selber wissen. Ich kurbel bei mir zur Zeit nachmittags runter, da ich sonst meinen Monitor nicht mehr sehen kann. Wenn die Sonne dann weit genug unten ist werden die, bis ich mich schlafen lege, wieder hochgedreht.
Hallo Horst,
machst du das nachmittags mit einem Sonnensensor?
Überlege noch, ob ich mir einen einbaue, ist schließlich noch ein Teil, welches ich für den Fall, dass die TFK offen/aus sind schalten muss. Bei den Rolläden per Sunset, Sundown breche ich mir ziemlich einen ab. Keine Ahnung wie ich an den Timer komme und wie ich das Script einbaue, modizfizieren krieg ich hin. Brauche da wohl eine Anleitung für Dummies. Wollte, dass ganze mit Ende Dämmerung machen. Schließlich ist’s im Sommer noch ein weilchen länger hell als im Winter, wenn die Sonne untergeht.
LG
Dieda
Ich habe vorne am Kopf zwei Lichtsensoren. Nennen sich Augen. Und mit Kurbeln meine ich per Hand kurbeln. Wobei mein Rollo eh so leichtgängig ist, dass ich das einfach per Hand runterziehen kann ;).
Du kannst ein Skript laufen lassen, dass automatisch den nächsten Start einstellt. Hier mal ein ungeprüftes Beispiel. Der Timer ist auf 10 Sekunden nach dem astronomischen Ereignis gestellt, damit beim nächsten Aufruf auch wirklich der Zeitpunkt am nächsten Tag berechnet wird. Zum Einrichten des Timers einfach den gewünschten Zeitpunkt einsetzen (habe mal alles mit reinkopiert, was ich im Angebot hatte) und einmal das Skript ausführen. Es wird auch nur beim TimerEvent runtergefahren.
<?php
$Latitude = 53.123456789;
$Longitude = 10.123456789;
//$SunRise = date_sunrise(time(), SUNFUNCS_RET_TIMESTAMP, $Latitude, $Longitude, 90+5/6, date("O")/100);
//$SunSet = date_sunset(time(), SUNFUNCS_RET_TIMESTAMP, $Latitude, $Longitude, 90+5/6, date("O")/100);
//$CivilTwilightStart = date_sunrise(time(), SUNFUNCS_RET_TIMESTAMP, $Latitude, $Longitude, 96, date("O")/100);
$CivilTwilightEnd = date_sunset(time(), SUNFUNCS_RET_TIMESTAMP, $Latitude, $Longitude, 96, date("O")/100);
//$NauticTwilightStart = date_sunrise(time(), SUNFUNCS_RET_TIMESTAMP, $Latitude, $Longitude, 102, date("O")/100);
//$NauticTwilightEnd = date_sunset(time(), SUNFUNCS_RET_TIMESTAMP, $Latitude, $Longitude, 102, date("O")/100);
//$AstronomicTwilightStart = date_sunrise(time(), SUNFUNCS_RET_TIMESTAMP, $Latitude, $Longitude, 108, date("O")/100);
//$AstronomicTwilightEnd = date_sunset(time(), SUNFUNCS_RET_TIMESTAMP, $Latitude, $Longitude, 108, date("O")/100);
IPS_SetScriptTimer($IPS_SELF, $CivilTwilightEnd + 60);
if($IPS_SENDER == "TimerEvent")
{
// Rolladen runterfahren
}
?>
Hallo Horst,
werd’s mir nach dem Mittag mal Anschauen… Habe aber noch einige Verständnisprobs.
LG
Dieda
Hallo Horst, hallo Forumsgemeinde,
so habe da noch ein paar Verständnisprobs.
if($IPS_SENDER == „TimerEvent“)
wo finde ich den? Habe alles schon durchsucht. Den einzigen den ich finde, finde ich bei den Instanzen selbst.
Zudem ist mir das Zusammenspiel der ausgelagerten Scripte noch nicht klar. Bislang habe ich jedem Rolladen ein Shutter Control als Instanz zugeordnet. Das Shutter Control Script aus dem Forum 1 x eingefügt.
So zu meinem Verständnis, Shutter Control Instanz ist zum def. der Zeiten für auf - ab halb. Richtig?
Shutter Control-Modul-Script ist für ?
Brauche ich den Timer für: Auslösen der Ereignisse? Muss ich hier die Variablen für Dämmerungsende eingeben?
LG
Dieda
Der $IPS_SENDER ist immer da, wenn Du ein Skript ausführst. Siehe Systemvariablen - IP-Symcon :: Automatisierungssoftware.
Das Shutter-Control-Modul-Skript brauchst Du nur 1x, damit das Shutter-Control-Modul weiß, wie es welche Geräte ansprechen muss.
Der Timer in meinem Skript stellt sich selber immer auf das nächste Abenddämmerungsende ein. Den Befehl zum Runterfahren der Rolladen per Shuttercontrol findest Du in der Doku.
Hallo Horst,
habe gerade das ganze mal so gemacht:
auf Instanz anlegen, Script ausgewählt, auf ShutterControl gegangen unterhalb der Instanz des Rolladens, ein Ereignis angelegt, da nun die Variable angegeben in diesem Fall Sunset (habs erst mal bei Sunset gelassen) und natürlich bei Variable den Punkt vor bei Aktualisierung gemacht. Nun hoffe ich erst mal, dass es richtig ist.
LG
Dieda
P.S.:Timer; finde ich immer noch nicht, nur im Objetbaum oder wenn ich ein Ereignis anlege.
Der Timer erstellt sich automatisch, wenn Du das Skript das erste Mal ausführst. Sollte er zumindest.