IPSSchaltuhr

Hallo,

habe gerade ein neues Modul Fertig.

Wie der Name schon sagt eine Zeitschaltuhr.

Mit folgenden Features:

  • max. 99 Zeitschaltuhren.
  • Tage und Zeit für Ein und Ausschalt getrennt einstellbar
  • Bedingung für Ein-/Auschalten durch max. 10 Sensoren möglich
  • Bedingung während der Laufzeit durch max. 10 Sensoren möglich
  • Jeder Sensor kann über Webfront (de)aktiviert werden.
  • Alle Bedingungen sind UND Verknüpft
  • Jede Bedingung kann >, = oder < verglichen werden.
  • Dadurch ist eine Hystherese parametrierbar.
  • Aufruf eigener Funktionen durch CallBack Methode
  • Übersichtsseite.
  • Aktuelle Bedingung jedes Sensors in der Übersichtseite sichtbar
  • Aktuellen Wert jedes einzelnen Sensors in der Übersicht sichtbar

Load des Moduls:


IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
$moduleManager = new IPSModuleManager('IPSSchaltuhr','https://raw.githubusercontent.com/mcs-51/IPSLibrary/Development/');
$moduleManager->LoadModule();

Konfiguration wie überlich.

  1. IPSSchaltuhr.ini
  2. IPSSchaltuhr_Configuration
  3. IPSSchaltuhr_Custom

Installation


IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
$moduleManager = new IPSModuleManager('IPSSchaltuhr','https://raw.githubusercontent.com/mcs-51/IPSLibrary/Development/');
$moduleManager->InstallModule();

Hi,

Du bist schon eine Rakete!
Erfüllst Du die Wünsche deiner Frau/Freundin auch so schnell?

werd es morgen installieren und Info geben.

Hallo,
bekomme nachfolgende Fehlermeldung im Installationsscript

/*IPSModuleManager-Log-IPSFileVersionHandle2012-04-30 12:28:42.23  Set Version IPSSchaltuhr=2.50.0..Loading
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:42.23  Create Directory D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\install\DownloadListFiles
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:42.25  Copy D:\IP-Symcon\scripts\IPSLibrary\install\DownloadListFiles\IPSSchaltuhr_FileList.ini --> D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\install\DownloadListFiles\IPSSchaltuhr_FileList.ini
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:42.26  Copy https://raw.github.com/MCS-51/IPSLibrary/Development/IPSLibrary/install/DownloadListFiles/IPSSchaltuhr_FileList.ini --> D:\IP-Symcon\scripts\IPSLibrary\install\DownloadListFiles\IPSSchaltuhr_FileList.ini
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:42.86  Create Directory D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\install\InstallationScripts
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:42.87  Copy D:\IP-Symcon\scripts\IPSLibrary\install\InstallationScripts\IPSSchaltuhr_Installation.ips.php --> D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\install\InstallationScripts\IPSSchaltuhr_Installation.ips.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:42.87  Copy https://raw.github.com/MCS-51/IPSLibrary/Development/IPSLibrary/install/InstallationScripts/IPSSchaltuhr_Installation.ips.php --> D:\IP-Symcon\scripts\IPSLibrary\install\InstallationScripts\IPSSchaltuhr_Installation.ips.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:43.91  Create Directory D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\install\InitializationFiles\Default
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:43.91  Copy D:\IP-Symcon\scripts\IPSLibrary\install\InitializationFiles\Default\IPSSchaltuhr.ini --> D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\install\InitializationFiles\Default\IPSSchaltuhr.ini
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:43.92  Copy https://raw.github.com/MCS-51/IPSLibrary/Development/IPSLibrary/install/InitializationFiles/Default/IPSSchaltuhr.ini --> D:\IP-Symcon\scripts\IPSLibrary\install\InitializationFiles\Default\IPSSchaltuhr.ini
IPSModuleManager-Log-IPSScriptHandler    2012-04-30 12:28:44.52  Register Script IPSSchaltuhr.ini in Program.IPSLibrary.install.InitializationFiles (File=D:\IP-Symcon\scripts\IPSLibrary\install\InitializationFiles\IPSSchaltuhr.ini)
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:44.52  Create Directory D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\app\modules\IPSSchaltuhr
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:44.52  Copy D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr.inc.php --> D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr.inc.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:44.53  Copy D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_Constants.inc.php --> D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_Constants.inc.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:44.53  Copy D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_IDs.inc.php --> D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_IDs.inc.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:44.53  Copy D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_Logging.inc.php --> D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_Logging.inc.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:44.53  Copy D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_ChangeSettings.ips.php --> D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_ChangeSettings.ips.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:44.53  Copy D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_Timer.ips.php --> D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_Timer.ips.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:44.53  Copy D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_Event.ips.php --> D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_Event.ips.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:44.53  Copy https://raw.github.com/MCS-51/IPSLibrary/Development/IPSLibrary/app/modules/IPSSchaltuhr/IPSSchaltuhr.inc.php --> D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr.inc.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:45.37  Copy https://raw.github.com/MCS-51/IPSLibrary/Development/IPSLibrary/app/modules/IPSSchaltuhr/IPSSchaltuhr_Constants.inc.php --> D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_Constants.inc.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:45.98  Copy https://raw.github.com/MCS-51/IPSLibrary/Development/IPSLibrary/app/modules/IPSSchaltuhr/IPSSchaltuhr_IDs.inc.php --> D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_IDs.inc.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:46.58  Copy https://raw.github.com/MCS-51/IPSLibrary/Development/IPSLibrary/app/modules/IPSSchaltuhr/IPSSchaltuhr_Logging.inc.php --> D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_Logging.inc.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:47.18  Copy https://raw.github.com/MCS-51/IPSLibrary/Development/IPSLibrary/app/modules/IPSSchaltuhr/IPSSchaltuhr_ChangeSettings.ips.php --> D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_ChangeSettings.ips.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:47.80  Copy https://raw.github.com/MCS-51/IPSLibrary/Development/IPSLibrary/app/modules/IPSSchaltuhr/IPSSchaltuhr_Timer.ips.php --> D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_Timer.ips.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:48.62  Copy https://raw.github.com/MCS-51/IPSLibrary/Development/IPSLibrary/app/modules/IPSSchaltuhr/IPSSchaltuhr_Event.ips.php --> D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_Event.ips.php
IPSModuleManager-Log-IPSScriptHandler    2012-04-30 12:28:49.23  Register Script IPSSchaltuhr in Program.IPSLibrary.app.modules.IPSSchaltuhr (File=D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr.inc.php)
IPSModuleManager-Log-IPSScriptHandler    2012-04-30 12:28:49.23  Register Script IPSSchaltuhr_Constants in Program.IPSLibrary.app.modules.IPSSchaltuhr (File=D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_Constants.inc.php)
IPSModuleManager-Log-IPSScriptHandler    2012-04-30 12:28:49.23  Register Script IPSSchaltuhr_IDs in Program.IPSLibrary.app.modules.IPSSchaltuhr (File=D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_IDs.inc.php)
IPSModuleManager-Log-IPSScriptHandler    2012-04-30 12:28:49.24  Register Script IPSSchaltuhr_Logging in Program.IPSLibrary.app.modules.IPSSchaltuhr (File=D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_Logging.inc.php)
IPSModuleManager-Log-IPSScriptHandler    2012-04-30 12:28:49.24  Register Script IPSSchaltuhr_ChangeSettings in Program.IPSLibrary.app.modules.IPSSchaltuhr (File=D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_ChangeSettings.ips.php)
IPSModuleManager-Log-IPSScriptHandler    2012-04-30 12:28:49.25  Register Script IPSSchaltuhr_Timer in Program.IPSLibrary.app.modules.IPSSchaltuhr (File=D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_Timer.ips.php)
IPSModuleManager-Log-IPSScriptHandler    2012-04-30 12:28:49.26  Register Script IPSSchaltuhr_Event in Program.IPSLibrary.app.modules.IPSSchaltuhr (File=D:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSchaltuhr\IPSSchaltuhr_Event.ips.php)
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:49.26  Create Directory D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\config\modules\IPSSchaltuhr\Default
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:49.26  Copy D:\IP-Symcon\scripts\IPSLibrary\config\modules\IPSSchaltuhr\Default\IPSSchaltuhr_Configuration.inc.php --> D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\config\modules\IPSSchaltuhr\Default\IPSSchaltuhr_Configuration.inc.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:49.26  Copy D:\IP-Symcon\scripts\IPSLibrary\config\modules\IPSSchaltuhr\Default\IPSSchaltuhr_Custom.inc.php --> D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\config\modules\IPSSchaltuhr\Default\IPSSchaltuhr_Custom.inc.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:49.26  Copy https://raw.github.com/MCS-51/IPSLibrary/Development/IPSLibrary/config/modules/IPSSchaltuhr/Default/IPSSchaltuhr_Configuration.inc.php --> D:\IP-Symcon\scripts\IPSLibrary\config\modules\IPSSchaltuhr\Default\IPSSchaltuhr_Configuration.inc.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:49.89  Copy https://raw.github.com/MCS-51/IPSLibrary/Development/IPSLibrary/config/modules/IPSSchaltuhr/Default/IPSSchaltuhr_Custom.inc.php --> D:\IP-Symcon\scripts\IPSLibrary\config\modules\IPSSchaltuhr\Default\IPSSchaltuhr_Custom.inc.php
IPSModuleManager-Log-IPSScriptHandler    2012-04-30 12:28:50.51  Register Script IPSSchaltuhr_Configuration in Program.IPSLibrary.config.modules.IPSSchaltuhr (File=D:\IP-Symcon\scripts\IPSLibrary\config\modules\IPSSchaltuhr\IPSSchaltuhr_Configuration.inc.php)
IPSModuleManager-Log-IPSScriptHandler    2012-04-30 12:28:50.51  Register Script IPSSchaltuhr_Custom in Program.IPSLibrary.config.modules.IPSSchaltuhr (File=D:\IP-Symcon\scripts\IPSLibrary\config\modules\IPSSchaltuhr\IPSSchaltuhr_Custom.inc.php)
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:50.51  Create Directory D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\config\modules\IPSSchaltuhr\Examples
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:50.51  Copy D:\IP-Symcon\scripts\IPSLibrary\config\modules\IPSSchaltuhr\Examples\IPSSchaltuhr_Configuration.inc.php --> D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\config\modules\IPSSchaltuhr\Examples\IPSSchaltuhr_Configuration.inc.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:50.51  Copy D:\IP-Symcon\scripts\IPSLibrary\config\modules\IPSSchaltuhr\Examples\IPSSchaltuhr_Custom.inc.php --> D:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-04-30_1228\IPSLibrary\config\modules\IPSSchaltuhr\Examples\IPSSchaltuhr_Custom.inc.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:50.51  Copy https://raw.github.com/MCS-51/IPSLibrary/Development/IPSLibrary/config/modules/IPSSchaltuhr/Examples/IPSSchaltuhr_Configuration.inc.php --> D:\IP-Symcon\scripts\IPSLibrary\config\modules\IPSSchaltuhr\Examples\IPSSchaltuhr_Configuration.inc.php
IPSModuleManager-Log-IPSFileHandler      2012-04-30 12:28:51.32  Copy https://raw.github.com/MCS-51/IPSLibrary/Development/IPSLibrary/config/modules/IPSSchaltuhr/Examples/IPSSchaltuhr_Custom.inc.php --> D:\IP-Symcon\scripts\IPSLibrary\config\modules\IPSSchaltuhr\Examples\IPSSchaltuhr_Custom.inc.php
IPSModuleManager-Log-IPSFileVersionHandle2012-04-30 12:28:52.14  Set Version IPSSchaltuhr=2.50.0..Loaded
IPSModuleManager-Log-IPSFileVersionHandle2012-04-30 12:28:52.14  Set Version IPSSchaltuhr=2.50.0..Installing

Parse error:  syntax error, unexpected ',' in D:\IP-Symcon\scripts\IPSLibrary\install\InstallationScripts\IPSSchaltuhr_Installation.ips.php on line 330

Hi,

jetzt sollte es gehen. Irgendwie waren die Daten auf Github niicht synchron.

GA

Hi,

Installation ist ohne Fehlermeldung durchgelaufen.
Alles im Webfront usw. angelegt.

Teste die nächsten Tage und gebe info.

Hallo,

habe mal wieder ein paar Zeile Code eingebaut.
Neue Version 1.0.2.

Wer hat sie denn eigentlich schon alles in Betrieb?
Gibt es irgend welche Probleme?
Bitte Feedback, da ich selbst IPSSchaltuhr nicht nutze. (Keine Verwendung).

Sceenshots siehe ersten Post.

Wesentliches neuen Feature ist, die Übersichtsseite.
Man sieht jetzt den Status jeden Sensors mit aktuellem Wert.
Ebenso ob die Bedingung jedes einzelnen Sensors.
Es ist auch in der Übersicht sichtbar, ob die CallBack Methode ausgeführt werden soll und wie die letzte Aktion war.

Gruß Andre

Hallo!

Ich würde die schönen Module ja alle einsetzen, aber bis jetzt habe ich noch kein einziges Teil zum Laufen bekommen.
Ist ein bisschen wie die alten Bricks-Bausteine.

Die ganzen Versionen und Änderungen-blicke da nicht mehr durch.:o
Baseloader, Logger, INI, Install, Konfig was-wo? Update wie-alles vorher löschen oder was?

Die Forenbeiträge dazu sind zu lang geworden. Auch das Step by Step.
Könnte da mal ein Expärde kurz und knapp das Step by Step aufräumen?:slight_smile:

Was konfiguriere ich bei FS20, EIB, Homematic Geräten wo?

Selbst mit Step für Step ging nichts.
Immer fehlt irgendwas oder ist fehlerhaft.

Ich habe jetzt einiges im Objectbaum drinne, aber wie krieg ich das ins Webfrront.:confused:

Ich harre mal der Dinge. :smiley:

Schönen Gruß
Egon

Hallo Andre,

nutze deine Schlatuhr, installation und Einrichtung Problemlos.
Ist ein tolles Ding.

z.Zt.
Beleuchtung in Abhängigkeit von Sonnenstand etc.
Kaffemaschien zu unterschiedlichen Zeiten und Abhänig von Feiertag usw.
Zu mehr hatte ich noch keine Zeit.
Werde mit Sicherheit noch einige Steuerungen damit realisieren.

Nochmals Danke für das Script. Neue Versionspiele ich heute ein.

Hi,

Kaffemaschiene in abhängig von Feiertag?
IPSSchaltuhr unterstützt keine Feiertage.
Hast Du das über einen ‚Sensor‘ gelöst?

GA

Hallo zusammen,

für die die meine Module einsetzen wollen und die IPSLibrary noch nicht installiert (bekommen) haben, eine kurze Anleitung.

Ich beschreibe jetzt meine Version wie ich die Library installiert habe und Pflege.
Schritt für Schritt.
Die Namen die ich vorgebe können prinzipiell geändert werden.
Empfehle sie jedoch zu übernehmen, was spricht denn auch dagegen?

Das sicherste ist, falls es garnicht bei euch läuft alles zu löschen und bei Null anzufangen.

Step - 0:
Falls Ihr löschen wollt bitte folgendes:
In IPS die Category „Program, Hardware, Visualization“ löschen.
Im Program Verzeichnis von IP-Symcon\scripts den komplettem Ordner ‚IPSLibrary‘ löschen.

Step - 1:
In IPS eine Category ‚Program‘ anlegen.
In dieser Category wird ein Script mit Namen ‚Step 1 - Baseloader‘ erstellt.
In dieses Script diesen Code eintragen:


<?
    // Repository
    $remoteRepository = 'https://raw.github.com/brownson/IPSLibrary/master/';

    // Download BaseLoader Script and Installation
    $remoteFile = $remoteRepository.'IPSLibrary/install/BaseLoader/IPSLibrary_BaseLoader.ips.php';
    $localFile  = IPS_GetKernelDir().'scripts\\IPSLibrary_BaseLoader.ips.php';

    $curl_handle=curl_init();
    curl_setopt($curl_handle, CURLOPT_URL,$remoteFile);
    curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT,5);
    curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER,true);
    curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl_handle, CURLOPT_FAILONERROR, true);
    $fileContent = curl_exec($curl_handle);
    curl_close($curl_handle);
    if ($fileContent===false) {
        throw new Exception('Download of File '.$sourceFile.' failed !!!');
    }

   if (!file_put_contents($localFile, $fileContent)) {
        throw new Exception('Create File '.$localFile.' failed!');
   }

    include $localFile;
?> 

Das Script dann ausführen. Es sollte keine Fehlermeldungen erscheinen.
Dieses Script installiert nur den Baseloader, dieser installiert dann die IPSLibrary.

Step - 2:
Core Module installieren.
Wieder ein Script in Program anlegen mit Namen 'Step 2 - Core Install’
Inhalt:


<?

    $component = 'IPSLogger';
    install($component);
    $component = 'IPSComponent';
    install($component);
    $component = 'IPSMessageHandler';
    install($component);


function install($component)
    {
    IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
    $moduleManager = new IPSModuleManager($component);
    $moduleManager->LoadModule('', true);
    $moduleManager->InstallModule();
    }
?>

Dieses Script dann ausführen. Es wurde berichtet, das es u. U. 3x ausgeführt werden muß. Es dauert auch eine ganze weile also Gedult.
Dieses Script installiert Schlußendlich die IPSLibrary und Module.
Ohne diesen Funktioniert nichts. Bis hier muß auch nichts konfiguriert werden.
Damit ist die IPSLibrary vollständig installiert.

Im Webfront müsste jetzt der IPSLogger sichtbar sein. In der obersten Zeile sollte ein Doppel-Quadrat aufgetaucht sein.
Dort können dann auch Einstellungen zum IPSLogger vorgenommen werden. Was geloggt werden soll und was gemailt werden soll. Für den Email Versandt muß jetzt zum ersten mal konfiguriert werden.

Konfiguratione IPSLogger:
Das folgende Script öffnen:

Program.IPSLibrary.config.core.IPSLogger.IPSLogger_Configuration

Hier könne jetzt einige anpassungen durch geführt werden. Wir konzentieren jetzt uns an den E-Mail Versand.
Dazu suchen Sie die Zeile:

define ("c_ID_SmtpDevice",      XXXX /*[E-Mail senden (SMTP)]*/ );

Das XXXXX ist durch die Instanz-ID Ihres SMTP-Moduls (Standard Modul aus IPS) zu ersetzen.

Die E-Mail Adresse an die die Fehler gemeldet werden sollen tragen Sie hier ein:

define ("c_EMail_Address1",     "meine-email@zuhause.de");

Der Text der in der Betreffzeile angezeigt werden soll kann hier eingetragen werden.

define ("c_EMail_Subject",      "IP-Symcon Fehler sind aufgetreten!");

Wenn Sie jetzt im Webfront beim ‚IPSLogger‘ ‚Log Settings‘ ‚Output Email‘ einschalten, bekommen Sie alle Fehler sie in IPS auftreten gemailt.

Step - 3:
Core Module updaten.
Für das updaten der Core Module wird wieder ein Script angelegt.
Wie die letzten auch. Name ‚Step -3 Core update
In dieses Script kommt folgender Code:

<?

    $component = 'IPSLogger';
    install($component);
    $component = 'IPSComponent';
    install($component);
    $component = 'IPSMessageHandler';
    install($component);


function install($component)
    {
    IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
    $moduleManager = new IPSModuleManager($component);
    $moduleManager->UpdateModule();
    }
?>

Immer wenn neue Features der Core Module erscheinen muß dieses Script nur ausgeführt werden. Mehr nicht.

Step - 4:
Script anlegen. Name ‚Step 5 - Modul
Was wir mit dem Script machen kommt später.

Code:


<?
IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");

$Modul = 'IPSSchaltuhr';
$Pfad = 'https://raw.github.com/MCS-51/IPSLibrary/Development/';

//Load	($Modul,$Pfad);         // Laden des Moduls
//Install	($Modul,$Pfad);         // Installieren des Moduls
//Update	($Modul,$Pfad);         // Updaten des Moduls



// ########### AB HIER NICHTS MEHR ÄNDERN! ##############
function Load($Modul, $Quelle) {
	$moduleManager = new IPSModuleManager($Modul,$Quelle);
	$moduleManager->LoadModule();
}


function Install($Modul, $Quelle) {
	$moduleManager = new IPSModuleManager($Modul,$Quelle);
	$moduleManager->InstallModule();
}


function Update($Modul, $Quelle) {
	$moduleManager = new IPSModuleManager($Modul,$Quelle);
	$moduleManager->UpdateModule();
}
?>

In der Zeile $Modul gehört der Modulname des Moduls. Hier IPSSchaltuhr.
In der Zeile $Pfad gehört die URL von wo das Modul geladen wird.

Durch löschen der ‚//‘ kann das Modul dann geladen (Load), installiert (Install) oder upgedatet (Update) werden.
Es darf nur eins von Load, Update oder Install aktiv sein.

Step - 5:
Um ein Modul in die IPSLibrary zu bekommen geht man immer gleich vor.
Laden - Konfigurieren - Installieren.

Laden eines Moduls.
(Kopieren der Dateien aus dem Internet und anlegen der Scripte).
In diesem Fall die IPSSchaltuhr von mir.
Script aus Step - 4 öffnen.
Die beiden ‚//‘ vor Load entfernen.
Script ausführen. Das kann einige Zeit dauern, je nach Internet Geschwindigkeit und Rechenleistung. Kann auch mal einige Minuten betragen.
Wenn er Fertig ist sollte unten in der Scriptausgabe viel drin stehen.
Relevant ist nur die letzte Zeile in der Ausgabe.
Wenn alles richtig installiert wurde ersteint.

IPSModuleManager-Log-IPSFileVersionHandle2012-05-06 12:53:52.58  Set Version IPSSchaltuhr=2.50.0..Loaded

Die Versionsnummer ist noch unwichtig und falsch, da das Moduls noch nicht installiert ist.

Step - 6:
Konfiguration des Moduls.
Die Konfigurationspfad ist für alle Module identisch.
Alle Konfigurationen befinden sich unter:
Program.IPSLibrary.config.modules.<>.<>_Configuration.
In unserem Fall ist das Program.IPSLibrary.config.modules.IPSSchaltuhr.IPSSchaltuhr_Configuration
Dieses Script öffnen Sie.
In diesem Script wird jetzt die Konfiguration des Moduls vorgenommen. Dazu gibt es in dem Script eine entsprechende Hilfe.
Dann wird das Script gespeichert und geschlossen.

Step - 7:
Manche Module arbeiten mit CallBack Funktionen. Das heißt das die Module keine Funktionen oder Aktoren direkt schalten, sondern ein sog. CallBack durchführen.
Sie starten einfach nur ein Script Abschnitt. In diesem ist dann die tatsächliche Funktion die passieren soll gespeichert.
Die CallBack Methoden sind in dem Pfad der Konfiguration zufinden.
Das Sript heißt <>_Custom.
In unserem Fall IPSSchaltuhr_Custom.
Eine Erklärung der Funktion befindet sich in der Datei.

Step - 8:
Vorbereitung für das Webfront.
Dazu wird die INI Datei benötigt.
Zu finden ist diese in Program.IPSLibrary.install.InitializationFiles.<>.ini.
In unserem Fall Program.IPSLibrary.install.InitializationFiles.IPSSchaltuhr.ini
Dort muß die ID der Webfronts eingetragen werden.
Nach ‚TabIcon1=Clock‘ eine neue Zeile einfügen mit ‚ID=xxxxx‘. xxxxx ist durch die InstanceID Ihres Webfront Configurators zu ersetzen. Befindet sich in Konfigurator Instanzen.

Step - 9:
Damit sind die Konfigurationen abgeschlossen.
Erst JETZT darf das Modul installiert werden!
Wenn Änderungen in der Konfiguration vorgenommen werden (Nicht bei Custom) muß eventuell neu installiert werden. Wenn Sie z.B. nach der installation eine neue Schaltuhr anlegen müssen sie neu installieren (Nur installieren, kein Laden des Moduls).

Die Installation ist ganz einfach.
Sie öffnen wieder das Script aus Step - 4.
Vor Load tragen sie wieder ‚//‘ ein.
Bei Install entfernen sie die ‚//‘ und führen das Script aus.
Auch das dauert wieder eine weile.
In der letzten Zeile der Scriptausgabe muß aber folgendes stehen:

IPSModuleManager-Log-IPSFileVersionHandle2012-05-06 13:17:26.88  Set Version IPSSchaltuhr=1.0.2

Jetzt muß auch die Versionsnummer korrekt sein.

Step - 10:
Updaten eines Moduls.
In diesem Fall das Modul IPSSchaltuhr.
Dazu nehmen Sie wieder das Script aus Step - 4.
Vor Load und Install muß ein ‚//‘ stehen.
Die Zeichen ‚//‘ vor Update entfernen Sie und starten das Script.
In der erste Zeile der Scriptausgabe steht die aktuelle Versionsnummer des Moduls.
In der letzten Zeile der Scriptausgabe steht die neue Versionsnummer.

Ich hoffe Ihr kommt mit der Beschreibung klar.

Gruß
André

Hallo André,

vielen Dank, genau so bin ich gestern vorgangen nachdem ich zig Beiträge durchforstet habe.

Vielleicht kann Andreas (brownson) diesen Beitrag in seinem Forum pinnen.

Hallo!

Vielen Dank für die gute Beschreibung, das sieht mal gut aus.:slight_smile:
Kanns leider erst morgen testen.

Schönen Gruß
Egon

Danke. Werd ich auch noch ausprobieren. Und bitte diese Anleitung pinnen. Die ist Super…

Danke Andrè,

bei dieser Erklärung habe ich mich auch getraut meinen alten IPSLogger zu löschen und die IPSLibary zu installieren.

Hab das mit dem Script hier aus dem forum gelöst.
Frage die Bool Variable ab ob Feiertag.

<?

SetValueString(CreateVariableByName($IPS_SELF, "1. Advent",                  3, "~String"),date("d.m.Y", Feiertag(date("Y"), '1. Advent')));
SetValueString(CreateVariableByName($IPS_SELF, "2. Advent",                  3, "~String"),date("d.m.Y", Feiertag(date("Y"), '2. Advent')));
SetValueString(CreateVariableByName($IPS_SELF, "3. Advent",                  3, "~String"),date("d.m.Y", Feiertag(date("Y"), '3. Advent')));
SetValueString(CreateVariableByName($IPS_SELF, "4. Advent",                  3, "~String"),date("d.m.Y", Feiertag(date("Y"), '4. Advent')));
SetValueString(CreateVariableByName($IPS_SELF, "Heilige drei Könige",        3, "~String"),date("d.m.Y", Feiertag(date("Y"), 'Heilige drei Könige')));
SetValueString(CreateVariableByName($IPS_SELF, "Heilige drei Könige plus 1", 3, "~String"),date("d.m.Y", Feiertag(date("Y")+1, 'Heilige drei Könige')));
SetValueString(CreateVariableByName($IPS_SELF, "Rosenmontag",                3, "~String"),date("d.m.Y", Feiertag(date("Y"), 'Rosenmontag')));
SetValueString(CreateVariableByName($IPS_SELF, "Fastnacht",                  3, "~String"),date("d.m.Y", Feiertag(date("Y"), 'Fastnacht')));
SetValueString(CreateVariableByName($IPS_SELF, "Karfreitag",                 3, "~String"),date("d.m.Y", Feiertag(date("Y"), 'Karfreitag')));
SetValueString(CreateVariableByName($IPS_SELF, "Ostersonntag",               3, "~String"),date("d.m.Y", Feiertag(date("Y"), 'Ostersonntag')));
SetValueString(CreateVariableByName($IPS_SELF, "Ostermontag",                3, "~String"),date("d.m.Y", Feiertag(date("Y"), 'Ostermontag')));
SetValueString(CreateVariableByName($IPS_SELF, "Tag der Arbeit",             3, "~String"),date("d.m.Y", Feiertag(date("Y"), 'Tag der Arbeit')));
SetValueString(CreateVariableByName($IPS_SELF, "Christi Himmelfahrt",        3, "~String"),date("d.m.Y", Feiertag(date("Y"), 'Christi Himmelfahrt')));
SetValueString(CreateVariableByName($IPS_SELF, "Pfingstsonntag",             3, "~String"),date("d.m.Y", Feiertag(date("Y"), 'Pfingstsonntag')));
SetValueString(CreateVariableByName($IPS_SELF, "Pfingstmontag",              3, "~String"),date("d.m.Y", Feiertag(date("Y"), 'Pfingstmontag')));
SetValueString(CreateVariableByName($IPS_SELF, "Fronleichnam",               3, "~String"),date("d.m.Y", Feiertag(date("Y"), 'Fronleichnam')));
SetValueString(CreateVariableByName($IPS_SELF, "Mariä Himmelfahrt",          3, "~String"),date("d.m.Y", Feiertag(date("Y"), 'Mariä Himmelfahrt')));
SetValueString(CreateVariableByName($IPS_SELF, "Tag der deutschen Einheit",  3, "~String"),date("d.m.Y", Feiertag(date("Y"), 'Tag der deutschen Einheit')));
SetValueString(CreateVariableByName($IPS_SELF, "Reformationstag",            3, "~String"),date("d.m.Y", Feiertag(date("Y"), 'Reformationstag')));
SetValueString(CreateVariableByName($IPS_SELF, "Allerheiligen",              3, "~String"),date("d.m.Y", Feiertag(date("Y"), 'Allerheiligen')));
SetValueString(CreateVariableByName($IPS_SELF, "Buß- und Bettag",            3, "~String"),date("d.m.Y", Feiertag(date("Y"), 'Buß- und Bettag')));
SetValueString(CreateVariableByName($IPS_SELF, "Heiligabend",                3, "~String"),date("d.m.Y", Feiertag(date("Y"), 'Heiligabend')));
SetValueString(CreateVariableByName($IPS_SELF, "1. Weihnachtsfeiertag",      3, "~String"),date("d.m.Y", Feiertag(date("Y"), '1. Weihnachtsfeiertag')));
SetValueString(CreateVariableByName($IPS_SELF, "2. Weihnachtsfeiertag",      3, "~String"),date("d.m.Y", Feiertag(date("Y"), '2. Weihnachtsfeiertag')));
SetValueString(CreateVariableByName($IPS_SELF, "Silvester",                  3, "~String"),date("d.m.Y", Feiertag(date("Y"), 'Silvester')));

// Heute Feiertag?

$feiertage = array(
                "Neujahr",
                "Heilige Drei Könige",
                "Rosenmontag",
                "Fastnacht",
                "Aschermittwoch",
                "Karfreitag",
                "Ostersonntag",
                "Ostermontag",
                "Tag der Arbeit",
                "Christi Himmelfahrt",
                "Pfingstsonntag",
                "Pfingstmontag",
                "Fronleichnam",
                "Mariä Himmelfahrt",
                "Tag der deutschen Einheit",
                "Reformationstag",
                "Allerheiligen",
                "Buß- und Bettag",
                "1. Advent",
                "Heiligabend",
                "1. Weihnachtsfeiertag",
                "2. Weihnachtsfeiertag",
                "Silvester",
                );
    $count = 0;
    while ($count < count($feiertage))
        {
        if (date("d.m.Y", time()) == date("d.m.Y", (Feiertag(date("Y"), $feiertage[$count]))))
           {
            SetValueBoolean(CreateVariableByName($IPS_SELF, "Feiertag", 0, "Schalter"), true);
            $count = count($feiertage);
            }
            else
            {
            SetValueBoolean(CreateVariableByName($IPS_SELF, "Feiertag", 0, "Schalter"), false);
            }
        $count ++;
        }

// Adventsszeit ?
$AdvStart = mktime(0,0,1,date("m", Feiertag(date("Y"), '1. Advent')),date("d", Feiertag(date("Y"), '1. Advent')),date("Y", Feiertag(date("Y"), '1. Advent')));
$AdvStop  = mktime(23,59,59,1,6,date("Y")+1);

if (time() > $AdvStart and time() < $AdvStop)
    {
    SetValueString(CreateVariableByName($IPS_SELF, "Advent", 3, "~String"),"Adventszeit");
    }
    else
    {
    SetValueString(CreateVariableByName($IPS_SELF, "Advent", 3, "~String"),"keine Adventszeit");
   }

// Errechnet das Datum des Ostersonntags für ein gegebenes Jahr
function easter($year) {
    if($year > 2038 || $year < 1970) {
        return false;
    } else {
        $a = $year % 19;
        $b = $year % 4;
        $c = $year % 7;
        $m = ((8 * ($year / 100) + 13) / 25) - 2;
        $s = ($year / 100) - ($year / 400) - 2;
        $M = (15 + $s - $m) % 30;
        $N = (6 + $s) % 7;
        $d = ($M + 19 * $a) % 30;
        if ($d == 29) {
            $D = 28;
        } elseif ($d == 28 && $a >= 11) {
            $D = 27;
        } else {
            $D = $d;
        }
        $e = (2 * $b + 4 * $c + 6 * $D + $N) % 7;
        $delta = $D + $e + 1;
        $easter = gmmktime(0, 0, 0, 3, 21, $year) + $delta * (24 * 3600);
        return $easter;
    }
}

// Berechnet alle festen und variablen Feiertage eines gegebenen Jahrs.
// Die Feiertage werden als Array zurückgeliefert, wobei der Key dem
// Feiertagsnamen entspricht und der Wert dem entsprechenden Zeitstempel.
function Feiertage($year) {
    $OneDay = 24 * 60 * 60;
    $easter = easter($year);
    if(!$easter) {
        return false;
    } else {
        $advday = date('w', gmmktime(0, 0, 0, 11, 26, $year));
        $advent = gmmktime(0, 0, 0, 11, 26, $year) + (($advday == 0 ? 0 : 7 - $advday) * $OneDay);
        $holidays['Neujahr']                   = gmmktime(0, 0, 0,  1,  1, $year);
        $holidays['Heilige Drei Könige']       = gmmktime(0, 0, 0,  1,  6, $year);
        $holidays['Rosenmontag']               = $easter - (48 * $OneDay);
        $holidays['Fastnacht']                 = $easter - (47 * $OneDay);
        $holidays['Aschermittwoch']            = $easter - (46 * $OneDay);
        $holidays['Karfreitag']                = $easter - (2 * $OneDay);
        $holidays['Ostersonntag']              = $easter;
        $holidays['Ostermontag']               = $easter + (1 * $OneDay);
        $holidays['Tag der Arbeit']            = gmmktime(0, 0, 0,  5,  1, $year);
        $holidays['Christi Himmelfahrt']       = $easter + (39 * $OneDay);
        $holidays['Pfingstsonntag']            = $easter + (49 * $OneDay);
        $holidays['Pfingstmontag']             = $easter + (50 * $OneDay);
        $holidays['Fronleichnam']              = $easter + (60 * $OneDay);
        $holidays['Mariä Himmelfahrt']         = gmmktime(0, 0, 0,  8, 15, $year);
        $holidays['Tag der deutschen Einheit'] = gmmktime(0, 0, 0, 10,  3, $year);
        $holidays['Reformationstag']           = gmmktime(0, 0, 0, 10, 31, $year);
        $holidays['Allerheiligen']             = gmmktime(0, 0, 0, 11,  1, $year);
        $holidays['Buß- und Bettag']           = $advent - (11 * $OneDay);
        $holidays['1. Advent']                 = $advent;
        $holidays['2. Advent']                 = $advent + (7 * $OneDay);
        $holidays['3. Advent']                 = $advent + (14 * $OneDay);
        $holidays['4. Advent']                 = $advent + (21 * $OneDay);
        $holidays['Heiligabend']               = gmmktime(0, 0, 0, 12, 24, $year);
        $holidays['1. Weihnachtsfeiertag']     = gmmktime(0, 0, 0, 12, 25, $year);
        $holidays['2. Weihnachtsfeiertag']     = gmmktime(0, 0, 0, 12, 26, $year);
        $holidays['Silvester']                 = gmmktime(0, 0, 0, 12, 31, $year);
        array_walk($holidays, 'ResetHours');
        return $holidays;
    }
}

// Berechnet das Datum eines bestimmten Feiertags im gegebenen Jahr.
// Liefert als Ergebnis den Zeitstempel des Feiertags bzw. false wenn das Jahr
// ungültig oder der Feiertag unbekannt ist.
function Feiertag($year, $name) {
    $OneDay = 24 * 60 * 60;
    $easter = easter($year);
    if(!$easter) {
        return false;
    } else {
        $advday = date('w', gmmktime(0, 0, 0, 11, 26, $year));
        $advent = gmmktime(0, 0, 0, 11, 26, $year) + (($advday == 0 ? 0 : 7 - $advday) * $OneDay);

        switch (strtolower($name)) {
            case 'neujahr':                   return ResetHour(gmmktime(0, 0, 0,  1,  1, $year));
            case 'heilige drei könige':       return ResetHour(gmmktime(0, 0, 0,  1,  6, $year));
            case 'rosenmontag':               return ResetHour($easter - (48 * $OneDay));
            case 'fastnacht':                 return ResetHour($easter - (47 * $OneDay));
            case 'aschermittwoch':            return ResetHour($easter - (46 * $OneDay));
            case 'karfreitag':                return ResetHour($easter - (2 * $OneDay));
            case 'ostersonntag':              return ResetHour($easter);
            case 'ostermontag':               return ResetHour($easter + (1 * $OneDay));
            case 'tag der arbeit':            return ResetHour(gmmktime(0, 0, 0,  5,  1, $year));
            case 'christi himmelfahrt':       return ResetHour($easter + (39 * $OneDay));
            case 'pfingstsonntag':            return ResetHour($easter + (49 * $OneDay));
            case 'pfingstmontag':             return ResetHour($easter + (50 * $OneDay));
            case 'fronleichnam':              return ResetHour($easter + (60 * $OneDay));
            case 'mariä himmelfahrt':         return ResetHour(gmmktime(0, 0, 0,  8, 15, $year));
            case 'tag der deutschen einheit': return ResetHour(gmmktime(0, 0, 0, 10,  3, $year));
            case 'reformationstag':           return ResetHour(gmmktime(0, 0, 0, 10, 31, $year));
            case 'allerheiligen':             return ResetHour(gmmktime(0, 0, 0, 11,  1, $year));
            case 'buß- und bettag':           return ResetHour($advent - (11 * $OneDay));
            case '1. advent':                 return ResetHour($advent);
            case '2. advent':                 return ResetHour($advent + (7 * $OneDay));
            case '3. advent':                 return ResetHour($advent + (14 * $OneDay));
            case '4. advent':                 return ResetHour($advent + (21 * $OneDay));
            case 'heiligabend':               return ResetHour(gmmktime(0, 0, 0, 12, 24, $year));
            case '1. weihnachtsfeiertag':     return ResetHour(gmmktime(0, 0, 0, 12, 25, $year));
            case '2. weihnachtsfeiertag':     return ResetHour(gmmktime(0, 0, 0, 12, 26, $year));
            case 'silvester':                 return ResetHour(gmmktime(0, 0, 0, 12, 31, $year));
            default:                          return false;
        }
    }
}

// Beseitigt Stundenanteile in einem UNIX-Zeitstempel

function ResetHours(&$timestamp) {
    $hour = date('G', $timestamp);
    $timestamp -= ($hour * 3600);
}
function ResetHour($timestamp) {
    $hour = date('G', $timestamp);
    $timestamp -= ($hour * 3600);
    return $timestamp;
}

    function CreateVariableByName($id, $name, $type, $profile = "")
    {
        global $IPS_SELF;
        $vid = @IPS_GetVariableIDByName($name, $id);
        if($vid === false)
        {
            $vid = IPS_CreateVariable($type);
            IPS_SetParent($vid, $id);
            IPS_SetName($vid, $name);
            IPS_SetInfo($vid, "this variable was created by script #$IPS_SELF");
            if($profile !== "") { IPS_SetVariableCustomProfile($vid, $profile); }
        }
        return $vid;
    }

?>

Hallo Andrè,

hab Deine Zeitschaltuhr installiert und 2 Start Sensoren aktiviert.
Im WF wird alles angezeigt und reagiert auch auf Eingaben.

Wenn ich in der Schaltuhr mit Start Sensoren die Uhzeit oder den Sensorstatus verändere erscheint die Fehlermeldung Undefined variable.

Die Fehlermeldung Objektübersicht wurde nicht gefunden- habe ich
durch einfügen einer String Variable mit HTMLbox in Kategorie IPSSchaltuhr
ausschalten können.

Kannst Du mir weiterhelfen.

Gruss aus Kärnten

Stefan

Bitte updaten.

Sollte dann weg sein.

GA

Hallo Andre,
vielen Dank für Deine tolle Arbeit.
Bei mir läuft IPSSchaltuhr ohne Probleme.

Gruß fizzz

Hallo,

Sehtr gut - vielen Dank dafür, werde diese direkt mal testen und meine IPSLibrary komplett neu installieren.

EDIT: mit der Neuinstallation hab ich gerade meine Probleme, bereits bei Step-0 bringt das Script mit Fehlern ab, aber das schaue ich mir später an, bin aufs Backup zurückgefallen.

Ich habe mit der Schaltuhr aber ein kleines Verständnissproblem, mit den Start/Run/Stop-Sensoren ist alles klar, aber wo oder wie sage ich dem Teil, was es tun soll ?

Ich will eine einfache Schaltuhr bauen, die zu festen Uhrzeiten einen Steckdosen-Schaltaktor auslöst und Geräte damit einschaltet, aber mir ich nicht klar, wo/wie ich die Object-ID eintrage.

Kann mir das einer mal bitte erklären ?

Danke im Voraus

Installation hat super geklappt.
Ein paar Fragen sind geblieben. Ich verstehe die Callback Funktion nicht.
Ich hatte angenommen das in dem IPSSchaltuhr_Custom Skript, der
Auszufürende Befehl in die Switch Anweisung einzusetzen ist,
habe gemerkt das das falsch ist. Kann mir da jemand auf die Sprünge helfen.