ich wollte erstmal ein dickes Danke an Andreas loswerden für IPS_Shadowing, ich setze das mittlerweile mit Homematic Jalousieakzoren bei mir im Haus an 15 Fenstern und einer Markise ein!!
Eine Sache fehlt mir jedoch, leider kann ich diese nicht selber implementieren. Wahrscheinlich dürfte das aber nicht so schwer sein, daher meine Frage:
Um die Fahrten der Rolladen dynamischer zu gestalten (Anwesenheitssimulation) würde ich mir eine Checkbox oder ähnliches Wünschen um die beispielsweise durch die Dämmerung vorgegebenen Fahrtzeiten zufällig innerhalb eines bestimmten Zeitrahmens (+/- 10 min bspw) zu variieren!
Meinst du / meint ihr sowas wäre möglich zu implementieren? Mit der rand-Funktion sollte das ja möglich sein, oder?
Behaupte mal Dass Einbrecher an anderen Dingen erkennen können ob jemand zu Hause ist, oder nicht. Da wird sich keiner mit der Uhr hinstellen und die Zeit ab Dämmerung bis Rolladen messen. Zu mal sich die Dämmerungszeiten fast täglich ändern.
Hi,
da gebe ich dir recht, trotzdem erzeugt es einen anderen Eindruck wenn die Rolladen nicht alle gleichzeitig sondern mit einem „Versatz“ untereinander runterfahren! Es geht mir also um die Dynamik der einzelnen Devices zueinander und nicht nur um die generelle Dynamik der „Dämmerung“!
Das kam vielleicht nicht ganz klar rüber
Habe mir da verschiedene Profile erstellt mit denen ich dies (in dem Fall teilweise) erschlage. Ist zwar dann immer der gleiche Ablauf, von dem her nicht das, was Du haben willst. Mal schauen ob Andreas was bastelt.
Wenn ich mittels MoveByEvent die Rückmeldungen von den Aktoren an IPSShadowing sende, dann wird der Status Manual ja auf TRUE gesetzt.
Ich hab jetzt seit ein paar Tagen das Problem, dass meine Tagesprogramme (Morgens und Abends) nicht sauber fahren.
Ich hab auch noch einen Blick in das Resettimer Skript geworfen, aber dort steht ja nichts ausser einem include drinnen. Das sollte also Korrekt sein.
Wenn ich mir deine Programm-Logik ansehe, dann sollte die Einstellung Manuell TRUE für die Tagesprogramme egal sein.
Das Skript ProgrammTimer sollte ja alle 5 Minuten die Funktion CheckPrograms triggern, welches dann bei einem Tag/Nacht Wechsel die Variable Manuell resettet.
Ich weiß nicht genau, wo mein Problem liegt. Ich bin mir auch nicht sicher, ob wirklich alle 5 Minuten das ProgrammTimer Skript gestartet wird.
Die Probleme sind erst aufgetreten nachdem ich ein Backup von IPS aufsetzen musste, da mir die Installation von IPSLight das komplette IPS-Symcon zerschossen hatte. (Keine Saubere GUI mehr vorhanden. Auch IPSShadowing, IPSTwilight, etc waren verschwunden).
Die Installation von IPSLight bleibt sowieso öfters hängen. Warum konnte ich bisher nicht nachvollziehen. Nach einem manuellen Anhalten und Restarten des IPS Dienstes, lief die Installation dann. Mit dem gleichen Config Skript.
ja, Status wird auf manuell gesetzt, ansonsten würde ja die Programmsteuerung den manuellen Eingriff wieder rückgängig machen. Das Flag wird zu jedem Tag/Nacht wechsel wieder zurückgesetzt, alternativ kannst Du es auch jederzeit manuell machen.
Starte einfach mal den Programmtimer manuell, dann siehst Du in der Konsole den jeweiligen Programmstatus (welches Programm wird warum gewählt).
IPS ist bei mir schon seit längerer Zeit nicht mehr hängen geblieben, hatte das früher auch öfters mal und konnte den Grund nicht genau ermitteln.
Am sichersten ist es, wenn Du nach dem Start der Installation das WebFront zumachst, da bei der Installation das komplette WebFront neu generiert wird. Alternativ kannst Du auch einfach die Generierung des WebFronts/MobileInterface über den Wizard deaktivieren (wenn Du keine Änderungen an der Konfig vorgenommen hast, die eine Regenerierung erfordern).
Ich hatte auch die Webfront aktualisierung im Verdacht. Hab da noch rumgespielt, weil ich gerade erst mit IPSLight begonnen hatte.
@Enocean Rückmeldungen:
Ich hab hier mal den Link zum Thread reingestellt, in dem ich kurz erläutere, wie ich die Rückmeldung meiner Eltako Enocean Aktoren in IPSShadowing und IPSLight umgesetzt habe. Natürlich mit den Skripten
Gruß
Maze
PS: Das mit dem GIT hab ich noch nicht weiter verfolgt Ist Neuland und mir fehlt gerade die Zeit.
@Andreas:
Meiner Meinung nach ist in der Funktion IsDayNightChange ein Problem:
public function IsDayNightChange($profileIdBgnOfDay, $profileIdEndOfDay) {
$profileBgnOfDay = $this->profilesBgnOfDay[$profileIdBgnOfDay];
$profileEndOfDay = $this->profilesEndOfDay[$profileIdEndOfDay];
$timeCurrent = time();
$timeLast = time()-300;
return (($timeCurrent > $profileBgnOfDay->GetTime() and $timeLast < $profileBgnOfDay->GetTime()) or
($timeCurrent > $profileEndOfDay->GetTime() and $timeLast < $profileEndOfDay->GetTime()));
}
Und zwar, wenn man eine manuelle Zeit einstellt, welche auf 5 Minuten endet. (zB 07:30).
Bei mir wurde heute morgen wiederholt der Manuelle Modus nicht deaktiviert. Meiner Ansicht nach, liegt das an den Bedingungen im return Bereich.
Die Fragst nur nach > und < ab. Dass heißt aber um Umkehrschluss, dass IsDayNightChange für alle xx:x5 er Zeiten niemals true wird! (Wenn die Zeit recht ungenau, sprich nur auf die Minute, verwendet / berechnet wird).
Um das am einfachsten zu umgehen, sollte immer im ersten Abfragebereich das > Zeichen durch ein >= ersetzt werden.
das „Problem“ liegt an dem fehlenden Gleichheitszeichen in der IsDay Funktion:
public function IsDay($profileIdBgnOfDay, $profileIdEndOfDay) {
$profileBgnOfDay = $this->profilesBgnOfDay[$profileIdBgnOfDay];
$profileEndOfDay = $this->profilesEndOfDay[$profileIdEndOfDay];
return (time() >= $profileBgnOfDay->GetTime() and time() < $profileEndOfDay->GetTime());
}
Das Gleichheitszeichen hatten wir ja in der letzten Änderung für die IsDayNightChange Funktion gesetzt. Dadurch wird der Status zum richtigen Zeitpunkt von Manuell auf Automatik gesetzt.
Wenn jetzt jedoch der BeginOfDay genau auf einer x5 Minute lag, dann war zu dem Nacht-Tag Wechsel, die Flag für IsDay immer noch auf false.
Mit dem obigen Code, sollte das Problem behoben sein.
Kann es nur bestätigen. Wenn man die Rolladen vorher hochgefahren hat, werden sie später wieder runtergefahren um dann 5 Min später wieder hochzufahen
Da es nicht soooo schlimm ist, kann ich auch noch auf die Behebung durch brownsen warten. Aber schön, dass ich nicht alleine bin mit dem Problem.
Ich kann ein Update zum WeatherProfile bezüglich Windgeschwindigkeit für den Betatest zur Verfügung stellen.
Auf Wunsch von Brownson benötige ich Betatester um die Migrierung der Änderungen endgültig abzuschließen.
(Andreas hat derzeit viel zu viel um die „Ohren“.)
Änderungen:
[ul][li]zusätzliches Variablenprofil : Beaufortskala (LINK WIKIPEDIA)
[/li][li]das gwünschte Profil ist in der Konfiguration einstellbar (Übernahme durch wiederholte Installation im Modulmanager)
[/li][li]die Regenerkennung und Winderkennung sind UND verknüpft
[/li][INDENT]für ODER Verknüpfung: einfach 2 Profile mit getrennter Einstellung für Regen- und Winderkennung[/INDENT][/ul]
Screencopy im IPS-WIKI
Zu tauschende Dateien: im Order: IP-Symcon\scripts\IPSLibrary\app\modules\IPSShadowing
IPSShadowing_Device.class.php
IPSShadowing_ProfileWeather.class.php im Order: IP-Symcon\scripts\IPSLibrary\install\InstallationScripts
IPSShadowing_Installation.ips.php
Bitte nicht vergessen: vorher eine Sicherungskopie der 3 Dateien zu machen.
Anschließend eine Installation von IPSShadowing (im ModuleManager oder ModuleManagerGUI) durchführen.
… mach Dir das Leben nicht so schwer - Du hast GIT
Download Deiner Änderungen:
IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
$moduleManager = new IPSModuleManager('IPSShadowing', 'https://raw.github.com/nickSpawn/IPSLibrary-brownson/Development-original/');
$moduleManager->UpdateModule();
Konfiguration anpassen:
/** Profil Wetterdefinition / Klassifiktation
*
* Definition/Masseinheit des Windlevels.
* Einstellung: false Vergleich der Windgeschwindigkeit mit dem Windlevel in km/h
* true Vergleich der Windgeschwindigkeit mit dem Windlevel in Beaufort
*
* Dieser Parameter kann jederzeit geändert werden.
* Für die Übernahme der Änderung ist eine erneute Installation über den ModuleManager oder ModuleManagerGUI notwendig.
*/
define ("IPSSHADOWING_WINDLEVEL_CLASSIFICATION", true);
Installation ausführen (einfach über die GUI aufrufen, WebFront braucht man nicht neu generieren).
fertig.
Habs gerade kurz asuprobiert, hat funktioniert
Bei Problemen kann man durch ein Update über die ModuleManagerGUI wieder auf die original Version zurückgehen.
Wenns sonst noch wer erfolgreich am Laufen hat, bitte um Rückmeldung.