IPSShadowing - eine Beschattungssteuerung

Hallo Leute,

Neue Version der Beschattungssteuerung liegt auf meinen Developer Repository.

Detailierte Erklärung zur Installation und Funktionalität gibt’s auf der neuen WIKIPage

New Features:

[ul]
[li]Support von Profilen zur Beschattung (Tages Beginn/Ende, Temperatur, Sonnenstand, Wetter), so ist es möglich die Parametrisierung für eine Gruppe von Beschattungselementen zu verändern
[/li][li]Support eines Innentemperatur Sensors für jedes Beschattungselement
[/li][li]Support eines Helligkeits Sensors, die Temperaturgesteuerte Beschattung kann nun auch von einem Helligkeitssensor abhängig gemacht werden.
[/li][li]Support von Wind und Regensensoren um zB die Markise bei Schlechtwetter automatisch einzufahren
[/li][li]Support von Sonnenstand (Angabe von Azimuth und Elevation), die Temperatur geführte Beschattung wird jetzt nur mehr aktiv, wenn sich auch der Sonnenstand in einer vorher definierten Position befindet. Alternativ kann auch über einzelne Kombinationen davon beschattet werden (Temperatur+Sonnenstand oder Helligkeit+Sonnenstand oder nur Sonnenstand).
[/li][li]Visualisierung des aktuellen Sonnenweges, bei der Definition der Sonnenstand Profile wird man durch eine kleine Visu mit der Lage des Hauses und des Sonnenweges unterstützt.
[/li][li]Support von Szenarien (man kann über das WebFront bzw. die Mobile GUI Szenarien definieren, die eine Gruppe von Beschattungselemente in eine definierte Position bringt).
[/li][li]Eigene Tages/Nacht Zeiten für Wochenenden und Feiertage
[/li][li]Support von Zeit Versatz (zB 15 Minuten vor Dämmerung)
[/li][li]Support von Beschattungstype Markise (Ausgefahren,Eingefahren)
[/li][li]Zusätzliche Programme 90% und 75% bei Beschattungstype „Shutter“,
[/li][li]Verbesserte Visualisierung der Sensorwerte die für die Beschattung verantwortlich sind (aktuelle Temperaturen, Helligkeit, Wind …) im WebFront bzw. Mobile Interface,.
[/li][li]Verbesserte Protokollierung der Programmsteuerung
[/li][li]Überarbeites WebFront
[/li][/ul]

Habe in dieser neuen Beschattungs-Version auch ein neues Konzept mit Szenarien und Profilen eingearbeitet. Diese erlauben es zur Laufzeit sehr viele Einstellungen über das WebFront bzw. das Mobile Interface vorzunehmen.

Es sollte auch nicht unerwähnt bleiben, dass ich erst selber anfange die Beschattungssteuerung in der Praxis zu testen und auch noch nicht alle Sensoren zur Verfügung habe.
Sollte also irgendetwas noch nicht so funktionieren wie erwartet oder beschrieben – einfach posten…

Eventuell beinhaltet die Berechnung des Sonnenstandes noch einen kleinen Fehler (als Grundlage für die Berechnung habe ich folgendes Scriptaus dem Forum verwendet, allerdings liefert mir diese Seite ein leicht unterschiedliches Ergebnis?) Falls wer eine Idee hat…

Wenn jemanden noch Ergänzungen zum WIKIArtikel einfallen oder Schreibfehler sind – einfach ausbessern, hab da kein Problem damit…

Für die Installation wird auch noch ein Update von IPSLogger und IPSComponent benötigt.

Hallo Brownson,

sehr fein, ich hab schon sehnsüchtig drauf gewartet :slight_smile:

Mir ist aber nicht ganz klar, wie ich meine Rolläden da einbinden kann.
Leider hab ich nirgends callback Methoden gefunden…

Ich steuer meine Somfy Rolläden über eigene scripts jeweils für rauf, runter und stop.
Das ganze funktioniert über einen RS485 Transmitter, der an einer virtuellen seriellen Schnittstelle hängt.

Die Scripts schauen so aus:

Küche rauf:

COMPort_SendText(15437 /*[Serial Port]*/, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF6).chr(0xFE).chr(0x05).chr(0xDA));

Küche stop:

COMPort_SendText(15437 /*[Serial Port]*/, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF6).chr(0xFC).chr(0x05).chr(0xD8));

Küche runter:

COMPort_SendText(15437 /*[Serial Port]*/, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF6).chr(0xFD).chr(0x05).chr(0xD9));

es gibt doch Callback Methoden für diesen Zweck - siehe WIKI ganz unten,

Alternativ kannst Du Dir auch eine eigene IPSComponent anlegen, einfach zB IPSComponentShutter_Homematic auf IPSComponentShutter_Somfy kopieren und Deinen Code in den entsprechenden Funktionen platzieren…

ok.
Ich gehs mal der reihe an…

momentan scheiter ich noch am notwendigen Update des IPSloggers…

IPSUtils_Include ("IPSModuleManager.class.php","IPSLibrary::install::IPSModuleManager");
   $moduleManager = new IPSModuleManager('IPSLogger');
   $moduleManager->UpdateModule();

wirft das aus:

IPSModuleManager-Log-IPSFileVersionHandle2012-05-17 23:30:34.10  Set Version IPSLogger=2.50.1.Beta.Loading
IPSModuleManager-Log-IPSFileHandler      2012-05-17 23:30:34.11  Create Directory C:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-05-17_2330\IPSLibrary\install\DownloadListFiles
IPSModuleManager-Log-IPSFileHandler      2012-05-17 23:30:34.17  Copy C:\IP-Symcon\scripts\IPSLibrary\install\DownloadListFiles\IPSLogger_FileList.ini --> C:\IP-Symcon\backup\IPSLibrary_Load\IPSLibrary_2012-05-17_2330\IPSLibrary\install\DownloadListFiles\IPSLogger_FileList.ini
IPSModuleManager-Log-IPSFileHandler      2012-05-17 23:30:34.19  Copy https://raw.github.com/brownson/IPSLibrary--Test-/master/IPSLibrary/install/DownloadListFiles/IPSLogger_FileList.ini --> C:\IP-Symcon\scripts\IPSLibrary\install\DownloadListFiles\IPSLogger_FileList.ini

Fatal error:  Uncaught exception 'IPSFileHandlerException' with message 'File C:\IP-Symcon\scripts\IPSLibrary\install\DownloadListFiles\IPSLogger_FileList.ini could NOT be found on the Server !!!' in C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSFileHandler\IPSFileHandler.class.php:151
Stack trace:
#0 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSFileHandler\IPSFileHandler.class.php(206): IPSFileHandler->CopyFile('https://raw.git...', 'C:\IP-Symcon\sc...')
#1 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSFileHandler\IPSFileHandler.class.php(220): IPSFileHandler->CopyFiles(Array, Array)
#2 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php(618): IPSFileHandler->LoadFiles(Array, Array)
#3 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php(641): IPSModuleManager->LoadModuleFiles('DownloadFiles', 'Install', 'https://raw.git...', false)
#4 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php in C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSFileHandler\IPSFileHandler.class.php on line 151
Abort Processing during Error: Uncaught exception 'IPSFileHandlerException' with message 'File C:\IP-Symcon\scripts\IPSLibrary\install\DownloadListFiles\IPSLogger_FileList.ini could NOT be found on the Server !!!' in C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSFileHandler\IPSFileHandler.class.php:151
Stack trace:
#0 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSFileHandler\IPSFileHandler.class.php(206): IPSFileHandler->CopyFile('https://raw.git...', 'C:\IP-Symcon\sc...')
#1 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSFileHandler\IPSFileHandler.class.php(220): IPSFileHandler->CopyFiles(Array, Array)
#2 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php(618): IPSFileHandler->LoadFiles(Array, Array)
#3 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php(641): IPSModuleManager->LoadModuleFiles('DownloadFiles', 'Install', 'https://raw.git...', false)
#4 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php
   Error in Script C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSFileHandler\IPSFileHandler.class.php on Line 151

Deine IPSModuleManager.ini verweist noch auf das Test Repostory, korrigiere das mal.

Außerdem ist es generell eine gute Vorgangsweise bei jedem Update das Repostory, von dem man das Update beziehen will, anzugeben.

also zB:


IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
$moduleManager = new IPSModuleManager('IPSLogger', 'https://raw.github.com/brownson/IPSLibrary/Development');
$moduleManager->UpdateModule();

Hallo Brownson,

super & herzlichen Dank für die neue Version - nur klappts jetzt mit der EIB / Custom-Ansteuerung nicht mehr…

Ich hab alles d.h. die komplette Library gelöscht und neu installiert.

Wie und wo muss ich das jetzt einbauen, konfigurieren, ansprechen ?

Poste doch noch mal die EIB Befehle für Rauf,Runter und Stop - ich werde für EIB eine eigene IPSComponent schreiben, damit man das wie alle anderen Systeme einbinden kann!

so hatte ich das über die alt „Custom“ eingebunden:


  function IPSShadowing_MoveByHardwareCustom($DeviceId, $DevicePath, $Command) {
       $DeviceName   = get_DeviceNameByDeviceId($DeviceId);
       $InstanceId   = get_InstanceIDByDevicePath($DevicePath);

       if ($Command==c_MovementId_Up) {
          EIB_Move($InstanceId, 0); //0 = Open, 2 = Stop, 4 = Close
       } elseif ($Command==c_MovementId_Down) {
          EIB_Move($InstanceId, 4); //0 = Open, 2 = Stop, 4 = Close
       } else {
          EIB_Move($InstanceId, 2); //0 = Open, 2 = Stop, 4 = Close
       }
 }

Und bei den Devices waren noch EIB_Shutter Instanzen dazu gebastelt welche angesprochen wurden…

Das hab ich nun gemacht, jetzt kommt diese Fehlermeldung :frowning:

Fatal error:  Uncaught exception 'IPSConfigurationException' with message 'Configuration Value with Key=TabPaneItem could NOT be found (Section="WFC10")' in C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSConfigHandler\IPSConfigHandler.class.php:70
Stack trace:
#0 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php(196): IPSConfigHandler->GetValue('TabPaneItem', 'WFC10')
#1 C:\IP-Symcon\scripts\IPSLibrary\install\InstallationScripts\IPSLogger_Installation.ips.php(45): IPSModuleManager->GetConfigValue('TabPaneItem', 'WFC10')
#2 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php(674): include('C:\IP-Symcon\sc...')
#3 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php(696): IPSModuleManager->InstallModule(false)
#4 C:\IP-Symcon\scripts\17881.ips.php(4): IPSModuleManager->UpdateModule()
#5 {main}
  thrown in C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSConfigHandler\IPSConfigHandler.class.php on line 70
Abort Processing during Error: Uncaught exception 'IPSConfigurationException' with message 'Configuration Value with Key=TabPaneItem could NOT be found (Section="WFC10")' in C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSConfigHandler\IPSConfigHandler.class.php:70
Stack trace:
#0 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php(196): IPSConfigHandler->GetValue('TabPaneItem', 'WFC10')
#1 C:\IP-Symcon\scripts\IPSLibrary\install\InstallationScripts\IPSLogger_Installation.ips.php(45): IPSModuleManager->GetConfigValue('TabPaneItem', 'WFC10')
#2 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php(674): include('C:\IP-Symcon\sc...')
#3 C:\IP-Symcon\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php(696): IPSModuleManager->InstallModule(false)
#4 C:\IP-Symcon\scripts\17881.ips.php(4): IPSModuleManager->UpdateModule()
#5 {main}
  thrown
   Error in Script C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSConfigHandler\IPSConfigHandler.class.php on Line 70

in Deinem Fall ist die IPSLogger.ini veraltet (stammt wohl noch aus der Beta IPSLibrary).

Entweder IPSLogger.ini aus dem Default Verzeichnis auf den User File kopieren

oder Installation mit folgendem Code ausführen:


IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
$moduleManager = new IPSModuleManager('IPSLogger', 'https://raw.github.com/brownson/IPSLibrary/Development');
$moduleManager->LoadModule('', true);
$moduleManager->InstallModule();

@djtark

hab mal eine Version für EIB commited - also Update von IPSComponent

Konfiguration dann wie bei allen anderen:


	c_Property_Component		=> 'IPSComponentShutter_EIB,12345',

konnte den Code natürlich noch nicht testen…

Andreas, das sieht gut aus und war echt easy.

3 Devices laufen problemlos, aber eine (ursprünglich mit „Büro“ benannt)
bringt auch als „Buero“ nen Fehler:

Was kann das sein ?

p.s. Neuinstall nach Namensänderung brachte nichts.

Nach der Fehlermeldung zu urteilen, hast Du Dich einfach im Komponent Namen verschrieben …

Wo geb ich dass den sonst an ?

   "Buero"  	=>	array(
	        c_Property_ShadowingType     => c_ShadowingType_Jalousie,
        c_Property_Name              => 'Buero',
        c_Property_Component         => 'IPSComponentShutter_EIB,27604',
        c_Property_TimeOpening       => 57,
        c_Property_TimeClosing       => 57,
        c_Property_TimeDimoutUp      => 1,
        c_Property_TimeDimoutDown    => 1,
        c_Property_TimePause         => 1,
        c_Property_TempSensorIndoor  => '',
				),

Der Installer kann auch alles schön zuordnen…

Soll ichs mit neuen Bezeichnungen neu installieren ? nachinstallieren ?

mhmm, bei mir brichts nach 120 sekunden mit dieser Meldung ab:

IPSModuleManager-Log-IPSModuleManager    2012-05-18 23:21:32.48  Created Link Tagesende Profil=16661

Fatal error:  Maximum execution time of 120 seconds exceeded in [Program\IPSLibrary\install\IPSInstaller\IPSInstaller] on line 547
Abort Processing during Error: Maximum execution time of 120 seconds exceeded
   Error in Script C:\IP-Symcon\scripts\IPSLibrary\install\IPSInstaller\IPSInstaller.inc.php on Line 547

Wie lange braucht das bei euch, bis das durch ist?

auch wenns nicht sauber ist:

zweimal in beiden Schreibweisen definiert (wenn nur eine da ist fehlt ihm jeweils die andre) gehts:

		      "Buero"  	=>	array(
	        c_Property_ShadowingType     => c_ShadowingType_Jalousie,
        c_Property_Name              => 'Buero',
        c_Property_Component         => 'IPSComponentShutter_EIB,27604',
        c_Property_TimeOpening       => 57,
        c_Property_TimeClosing       => 57,
        c_Property_TimeDimoutUp      => 1,
        c_Property_TimeDimoutDown    => 1,
        c_Property_TimePause         => 1,
        c_Property_TempSensorIndoor  => '',
				),

				"Büro"  	=>	array(
	        c_Property_ShadowingType     => c_ShadowingType_Jalousie,
        c_Property_Name              => 'Büro',
        c_Property_Component         => 'IPSComponentShutter_EIB,27604',
        c_Property_TimeOpening       => 57,
        c_Property_TimeClosing       => 57,
        c_Property_TimeDimoutUp      => 1,
        c_Property_TimeDimoutDown    => 1,
        c_Property_TimePause         => 1,
        c_Property_TempSensorIndoor  => '',
				),

@djtark

Aus diesem Grund verwende ich für die Array Items die Konstanten c_ShadowingDevice_1 bis c_ShadowingDevice_X.

Im Zweifel einfach nochmals die Devices in Program.IPSLibrary.data.modules.IPSShadowing.Devices löschen und neu installieren…

@gdfde

Versuch eventuell mal bei der Installation alle WebFront zu schliessen, wenn das nichts nützt, mach einfach mal in der IPSModuleManager.ini einen Eintrag mit:


TimeLimit=300

oder alternativ zu Test Zwecken im File IPSModuleManager.class.php auf Zeile 133 ändern…

Hiermit schreib ich nach manueller Betätigung über die EIB-Taster
die Position ins IPSShadowing:

<?
$position = GetValueInteger (44613 =DAS IST DIE GA DER POSITION);
SetValueInteger(57864 =DAS IST DIE ID DER IPSSHAD. POSITION, $position);

?>

Scheint sich momentan noch nicht ins gehege zu kommen.

Akualisierung des Wertes als auslös. Ereignis.

Hallo Andreas,

Wie immer ein echter Knaller was ich da so im 1. Posting an Bildern sehe.

Kurze Frage zur Konfiguration.

Bei der Ausrichtung zur Südachse muss ich die lage des Dachfirstes zur Südachse angeben, oder ?

Gruss
B71

Fehler lautet maximum execution time of 120 seconds im IPSIntaller.inc.php line 971 exceeded.

Für 5 Rolläden erscheint mir das aussergewöhnlich lang…oder ?

Gruss
B71