Ich wollte euch mein Zweites Modul vorstellen.
Dieses basiert auf dem Wochenplan.
Man kann sich über das Konfigurationsformular den Wochenplan zusammenstellen und erzeugen lassen.
Außerdem können die Aktionen und die dazugehörigen Offset Zeiten eingestellt werden.
Hi
Wollte das Modul für die Bewässerung zweckentfremden… aber ich bekomm beim erstellen vom Skript die Fehlermeldung:
IDent may contain only letters… on line 193
Wäre toll, wenn man auch die Aktionen gleich mitdefinieren könnte. Ich werde wohl eine zweite Schaltuhr -Instranz nutzen, um das Problem mit doppelten Wochentagen zu umgehen (Ich habe Bewässerungszyklen am Morgen und am Abend)
kann es sein das du im Namen der Wochenschaltuhr Umlaute hast?
Ich nutze den Namen gleichzeitig als Ident, damit jeder die Objekte nach seinen Vorstellungen umbenennen kann.
Laut der IPS Doku sind aber im Ident nur folgende Zeichen gültig.
„a…z“,„A…Z“,„0…9“,"_
Und warum nutzt du keinen statischen Text als Ident um deine Óbjekte zu finden ?
Also nur ‚ActionScript‘ und dann ‚ActionSchedule‘ oder so ?
Das hat doch mit dem Namen gar nix zu tun
Also z.B.
//alt
$Ident = $this->ReadPropertyString("Alarmname"); //Wochenplan Name
$ParentID = @IPS_GetObjectIDByIdent($Ident,$this->InstanceID );
$EreignisID = @IPS_GetObjectIDByIdent($Ident, $ParentID); //Wochenplan ID
// neu
$ScriptID = @IPS_GetObjectIDByIdent('ActionScript',$this->InstanceID );
$EreignisID = @IPS_GetObjectIDByIdent('Schedule', $ScriptID ); //Wochenplan ID
Genauso ist das automatisch angelegte Script nicht unter RPi bzw. ohne Kompatibilitätsfunktionen lauffähig.
Da ist noch $IPS_SENDER statt $_IPS[‚SENDER‘]
ich nutze dieses Modul und würde gerne folgendes realisieren. Leider reichen meine PHP-Kenntnisse dafür noch nicht aus.
Wochenplan ist angelegt: Mo - Fr von 06:00 - 8:00 Uhr
Bedingungen die zu prüfen sind: „Wochenschaltuhr Ein“ und „TV Aus“
Auslöser soll ein Bewegungsmelder sein, welcher als Ereignis das Script ausführen soll
Dann „Sonos Play“
<?
#This script was created automatically by the module.
#If the script is updated through the module configurator,
#will be overwritten !!
#Please backup the contents before
if($_IPS["SENDER"] == "TimerEvent"){
switch ($_IPS["ACTION"]) {
case 1: #Radio Wecker An
if ((34903 /*[Programme\Wochenschaltuhr\Radio Wecker\Weekly timer On / Off]*/ == true) and (13419 /*[Hardware\Ping\TV]*/ == false))
{
SNS_Play(22465 /*[Hardware\Sonos]*/);
}
break;
case 2: #Radio Wecker Aus
{
}
break;}
}
?>
Leider funktioniert das Script nicht. Vielleicht kann mir jemand erklären was ich falsch mache.
probiere es mal hiermit. Damit sollte morgens um 6:00 Uhr dein Sonos angehen, wenn dein TV Aus ist.
Ob der Wochenplan an ist brauchst du nicht abfragen. Das Skript wird vom Wochenplan getriggert. Wenn der Wochenplan aus ist passiert auch nichts.
<?
#This script was created automatically by the module.
#If the script is updated through the module configurator,
#will be overwritten !!
#Please backup the contents before
if($_IPS["SENDER"] == "TimerEvent"){
switch ($_IPS["ACTION"]) {
case 1: #Radio Wecker An
if (GetValueBoolean(13419) == false)
{
SNS_Play(22465 /*[Hardware\Sonos]*/);
}
break;
case 2: #Radio Wecker Aus
{
}
break;}
}
?>
Dein Skript funkioniert, nur leider startet die Sonos damit immer um 6:00 Uhr. Sie soll aber erst ausgeführt werden, wenn eine Bewegung zw. 6:00 und 8:00 Uhr erkannt wird.
Ich habe den Bewegungsmelder als Ereignis auf das Skript gelegt. Leider passiert damit nichts.
Deine Spracheinstellungen des IPS-Host sind ungültig.
Stell mal von xxx@euro auf de.utf-8 dann sollte es funktionieren.
Ist ein bekannter IPS Fehler.
Michael
Jupp. Du hast scheinbar auf dem Pi die Sprache gar nicht gesetzt. Ich werde zum nächsten Update (4.4) einbauen, dass zumindest die Fehlermeldung nicht kommt und das Modul nutzbar ist.
So wie ich es verstehe dürfte die Variable ID 13941 (Radio Wecker Ein / Aus) doch nur auf True gesetzt werden, wenn die Variable 34903 (Weekly Timer On / Off) auf On steht.
Es wird aber, egal in welchem Zustand sich der Weekly Timer befindet, die Variable 13941 auf True gesetzt.