NEWS
Pimp my Shuttercontrol
-
Hallo zusammen,
Um es gleich vorwegzunehmen, der Adapter Shuttercontrol von @simatec ist ein unglaublich umfangreiches Werkzeug, um damit seine Jalousien zu steuern. Es gibt so viele unterschiedliche Möglichkeiten, den Adapter an seine persönliche Situation anzupassen, dass der enthaltene Funktionsumfang für 95% der Anwender schon zu viel sein wird und ich denke auch nicht, dass es jemanden gibt, der alle enthaltenen Funktionen wirklich vollumfänglich nutzt. @simatec sei an dieser Stelle ein ganz großes Dankeschön ausgesprochen, dass er diesen Adapter zur Verfügung gestellt hat - da sind sicher unzählige Stunden Freizeit hinein geflossen.
Nun gibt es aber solche "Verrückten" wie mich, denen doch noch Funktionen fehlen! Mich hat beispielsweise immer gewurmt, dass ich eine solche Verschattungssituation nicht realisieren konnte:
Und wenn die Markise ausgefahren ist, dann sieht die Verschsttungssituation so aus:
Die Sonne befindet sich dabei immer innerhalb des Polygonzugs.
Da man Shuttercontrol aber mit Zuständen in Datenpunkten füttern und damit von außen in das System eingreifen kann, hab ich mich "erdreistet", dies zweckzuentfremden und durch Skripte bestimmte "virtuelle" Zustände zu definieren, mit welchen man die angegebenen Verschattungssituationen vielleicht doch realisieren kann. Da mich einige User darauf angesprochen hatten, würde ich das Ergebnis hier gern teilen - ich hoffe, dass @simatec nichts dagegen hat, dass ich seinen Adapter an der einen oder anderen Stelle zweckentfremdet habe...
Der Adapter hat nämlich die hilfreiche Funktion eines Kontaktsensors und man kann für die beiden Zustände offen/geschlossen die Höhen angeben, welche die Jalousie anfahren soll. Wenn man also einen virtuellen Kontaktsensor mit einem Datenpunkt einführt, kann man mit dem Umschalten des Datenpunktes Shuttercontrol dazu bringen, die Jalousie auf die voreingestellten Höhen zu fahren. Man muss also nur noch wissen, ob sich die Sonne innerhalb (dann schließen wir den virtuellen Sensor und die Jalousie fährt auf den Wert den wir für das Schließen in Shuttercontrol eingetragen haben, also beispielsweise 35% als Sonnenschutz) oder außerhalb (dann öffnen wir den Sensor und die Jalousie fährt auf den Öffnen-Wert, also 100%, da ja nicht zu verschatten ist) des Polygonzuges befindet.
Eigentlich ganz einfach. Ob sich ein Punkt in einem Polygon befindet kann man mit dem Verfahren nach Jordan (https://de.wikipedia.org/wiki/Punkt-in-Polygon-Test_nach_Jordan) ermitteln, wir brauchen also nur das Polygon definieren, dann noch die Koordinaten der Sonne und schwupps weiß man was man Shuttercontrol mitteilen muss, ob nun die Sonne auf das Fenster scheint oder nicht. Eigentlich ganz einfach...
...aber falsch. Warum das falsch ist, kommt gleich in Teil 2.
-
@guitardoc wir wissen doch alle, dass shuttercontrol dermaßen komplex ist, dass man nicht noch in dessen Automatismen eingreufen soll.
-
Diese Vorgehensweise kann nicht funktionieren, da sich die Sonne ja scheinbar um die Erde auf einer Kreisbahn bewegt und wir unseren zweidimensionalen Polygonzug auf diese dreidimensional gekrümmte Himmelssphäre projizieren müssen, auf welcher sich die Sonne bewegt. Das kann man mit Hilfe von Vektoren und dann über Vektorrechnungen und ein paar logische Überlegungen realisieren.
Da meine Vorlesungen in Vektorrechnung auch schon ein paar Jährchen zurück liegen, hab ich in einem anderen Forum zu dieser Fragestellung Hilfe erhalten und wir haben gemeinsam das Problem lösen können. Ich habe das System jetzt seit einem viertel Jahr im Einsatz und es funktioniert zuverlässig.Wie muss man vorgehen. Zunächst müssen wir den Polygonzug bestimmen. Dazu brauchen wir einen Winkelmesser (den gibts für einen schmalen Taler im Baubedarfsbereich eines großen Versandhändlers) und wir müssen wissen, in welche Richtung unsere Gebäudeseiten zeigen. Mein Haus ist ziemlich genau nach den vier Himmelsrichtungen ausgerichtet. Man startet nun mit dem Fenster an der nordöstlichen Ecke, nimmt den Winkelmesser und visiert von der rechten unteren Ecke des Fensters den linksten Punkt des Polygonzugs an (also dort wo die Sonne zuerst auftrifft). In meinem Fall (geschlossene Markise) messe ich orthogonal zur Fensterscheibe einen Winkel von horizontal -70° und einen Winkel vertikal von 0°. Das ist der erste Punkt des Polygonzugs und nun geht man in Uhrzeigerrichtung immer weiter, bis man zu Schluss den letzten Punkt, diesmal von der linken unteren Seite des Fensters gemessen, erhält. In meinem Fall ist das 20,0.
Nun ist da unten noch ein weiterer Punkt -20,0 drin. Das kommt daher, dass unser Polygon mit Geraden verbunden ist, die Sonne sich aber auf einem Großkreis um uns dreht. Daher ist es sinnvoll, bei langen Geraden noch Zwischenpunkte einzufügen, damit wir mit unseren angenommenen Geraden nicht zu weit vom Kreis abweichen.Jetzt rechnen wir das Ganze noch in Azimut und Elevation um. Wir nehmen dabei folgende Konvention an:
Horizontsystem mit Azimut N=0°, O=90°, S=180°, W=270°. Für meine Punkte ergeben sich damit die in Klammern dargestellten Werte. Diese Werte müssen nun als String im Uhrzeigersinn verlaufend in einen Datenpunkt eingetragen werden, und zwar Azimut1,Elevation1;Azimut2,Elevation2;...Bei mir sieht das so aus:
Einmal mit geschlossener Markise:
Und mit ausgefahrener Markise:
Was man nun in Shuttercontrol einstellen muss, das erfahrt ihr im Teil 3.
-
@guitardoc Du hast am eigenen Leib erfahren, was der Eingriff mit eigenen Skripten in Shuttercontrol zerstören kann.
Dazu gibt es seitenlange Diskussionen mit dir im Shuttercontrol Thread.Warum also willst du anderen die selben Probleme bereiten?
-
In Shuttercontrol müsst ihr für das betreffende Fenster diese Werte eintragen. Ich habe es nur mit diesen Werten getestet. Wenn ihr andere Werte eintragt, kann sich Shuttercontrol völlig anders verhalten - also macht es bitte mit Bedacht.
An dieser Stelle verweist ihr auf euren virtuellen Kontaktsensor, welchen ihr entsprechend als Datenpunkt anlegen müsst:
Bei den Sonnenschutz-Einstellungen gebt ihr diese Werte ein:
Bei der Himmelsposition müsst ihr die Blickrichtung aus dem Fenster eintragen, also orthogonal zur Fensterscheibe. Da mein Fenster nach Westen ausgerichtet ist, muss dort 270° rein. Für den Bereich der Sonnenposition gebt ihr +-90° an. Damit sagt ihr Shuttercontrol, dass im Bereich von 180° um das Fenster eine Verschattung passieren kann. Und die steuern wir jetzt......im Teil 4.
-
@homoran sagte in Pimp my Shuttercontrol:
Warum also willst du anderen die selben Probleme bereiten?
und @simatec wird es dir danken, wenn nun viele das versuchen umzusetzen und ihn mit Fragen bombadieren, weil nichts mehr funktioniert.
Da muss man sich nicht wundern, wenn ein Dev den Support einstellt.
-
@negalein Ich möchte niemandem Probleme machen, im Gegenteil. Es haben mich aber mehrere User darum gebeten, den Algorithmus zu veröffentlichen. Ich würfe es schade finden, wenn das nicht möglich sein sollte.
Oder aber vielleicht könnt ihr Moderatoren das auch erst mal von der Sichtbarkeit her einschränken, dass es z.B. nur @simatec sieht? Den entwickelten Algorithmus könnte man auch direkt in den Adapter einbauen, das würde die Fehlerproblematik entschärfen.
Der Algorithmus hat es nämlich in sich, da haben ein paar Leute einige Wochen dran getüftelt.
Noch hab ich ihn ja hier nicht veröffentlicht - dann würde ich erst mal warten bis einer der Mod oder @simatec das OK gibt.
-
@guitardoc sagte in Pimp my Shuttercontrol:
Den entwickelten Algorithmus könnte man auch direkt in den Adapter einbauen,
damit er noch komplizierter und ggf. unwartbar wird?
oder
@guitardoc sagte in Pimp my Shuttercontrol:
das würde die Fehlerproblematik entschärfen.
um die Fehler in deiner Konstellation zu finden?
ich dachte das Thema sei durch!
-
@homoran said in Pimp my Shuttercontrol:
um die Fehler in deiner Konstellation zu finden?
Nein, die Fehler die jemand machen könnte wenn er den Algorithmus anwendet. Das war gemeint. Der Algorithmus funktioniert fehlerfrei im Zusammenspiel mit SC schon seit einem Vierteljahr.
Das andere war wieder eine andere Baustelle. Die hab ich aber gelöst, ich habe das Script umgebaut, so dass ich nur einmal den Status sende und jetzt funktioniert auch das.Aber wirklich nochmal, wenn es nicht gewollt ist, dann bitte ich darum den gesamten Thread zu löschen. Ich wollte anderen Usern, die mich darum gebeten haben, nur einen Gefallen tun. Ich kann aber verstehen, dass das nicht nur auf Zustimmung trifft und ich möchte wirklich niemandem Probleme bereiten.
-
@guitardoc sagte in Pimp my Shuttercontrol:
wenn es nicht gewollt ist
das soll @simatec entscheiden.
Ist sein Adapter, bei dem er dann uU zusätzlichen Support geben müsste. -
Ich persönlich verstehe die Aufregung gar nicht. Schließlich steuert das Skript/der Algorithmus "nur" einen virtuellen Fensterkontakt.
wenn man später bei Probleme den debug log von shuttercontrol aktiviert, sieht man nur, dass das Fenster geöffnet und geschlossen wurde. Das sollte doch (so nehme ich an) kein Problem darstellen für die Auswertung des Problems.ich würde es sehr begrüßen wenn @guitardoc nicht abgeschreckt wird und seine Arbeit veröffentlicht.
gerne auch unter einen anderen Namen wie zb "scheint die Sonne auf ein Fenster - Skript". Denn, was man mit dem Ergebnis (true/false) dann macht ist ja nebensächlich. -
@rtwl sagte in Pimp my Shuttercontrol:
Ich persönlich verstehe die Aufregung gar nicht.
dann lies mal die letzten Seiten des Shuttercontrol Threads
-
@homoran hab ich. Und da es zwei paar Schuhe sind was dort diskutiert wird und was hier angeboten wird. verstehe ich die Aufregung nicht.
die Erklärung dazu hab ich oben abgegeben. -
@rtwl sagte in Pimp my Shuttercontrol:
Schließlich steuert das Skript/der Algorithmus "nur" einen virtuellen Fensterkontakt.
Das geht aber nur, wenn man für die Tür nicht einen echten Fensterkontakt (ge)braucht.
-
@homoran sagte in Pimp my Shuttercontrol:
Das geht aber nur, wenn man für die Tür nicht einen echten Fensterkontakt (ge)braucht.
korrekt. Aber das sollte allen klar sein. Schließlich lässt sich in der konfig nur ein Objekt auswählen beim Tür/Fensterkontakt.
man muss dann einfach entscheiden was einem wichtiger ist. -
@rtwl sagte in Pimp my Shuttercontrol:
Aber das sollte allen klar sein.
eben!
@rtwl sagte in Pimp my Shuttercontrol:
Schließlich lässt sich in der konfig nur ein Objekt auswählen beim Tür/Fensterkontakt.
richtig!
Und dann darf man den DP nicht zusätzlich versuchen zu überschreiben!um nicht zu
@rtwl sagte in Pimp my Shuttercontrol:
entscheiden was einem wichtiger ist.
Natürlich ist die Idee die Beschattung feingranuliert zu steuern nicht schlecht (ob notwendig ist eine andere Frage), aber wegen der bisherigen möglichen Auswirkungen auf die gesamte Funktionalität von Shuttercontrol nicht unbedingt als "pimp my Shuttercontrol".
Wenn die Anwender bei Problemen mit SC wenigstens immer so fair wären, dann auch direkt zu Beginn der Problembeschreibung darauf hinzuweisen, dass sie externe Einflüsse auf Datenpunkte, die SC verwendet, einsetzen, wären wir noch einen Schritt weiter.
Leider hat die Vergangenheit aber gezeigt, dass dies nicht der Fall ist und @simatec mit dem Support überstrapaziert wird.
Selbst auf die Aufforderung
@simatec sagte in Test Adapter shuttercontrol v1.7.x:@guitardoc Bitte für die Tests und logs keine Scripts dazwischen haben... Ich suche mir ein Wolf und ein Script funkt dazwischen
werden die Skripte nicht deaktiviert.
-
@homoran sagte in Pimp my Shuttercontrol:
ob notwendig ist eine andere Frage
man kann ja auch neben solch speziell beschattete Fenster einen eigenen Hitzesensor
setzen und darauf die Beschattung triggern.
Dann fährt der zugehörige Rollladen auch wirklich nur bei voreingestelltem Hitzelevel in Beschattung -
@homoran said in Pimp my Shuttercontrol:
Das geht aber nur, wenn man für die Tür nicht einen echten Fensterkontakt (ge)braucht.
Auch das lässt sich abbilden - man muss dann nur alle Kontaktsensoren kombinieren und in einen Datenpunkt schreiben. An einem Fenster habe ich drei Kontaktsensoren - zwei reelle und einen virtuellen. Funktioniert seit einem Vierteljahr ohne Probleme. Man muss sich nur darüber im Klaren sein, dass man für den Teil den man selber schreibt dann auch selber verantwortlich ist wenn man SC mit eigenen berechneten Daten füttert.
@homoran said in Pimp my Shuttercontrol:
Und dann darf man den DP nicht zusätzlich versuchen zu überschreiben!
Und genau das verstehe ich (und möglicherweise auch andere) nicht. Das ist nicht böse oder abwertend gemeint, ich möchte es nur verstehen. Ob die Änderung durch die Auslösung eines einzigen realen Fensterkontaktes in einem Datenpunkt kommt (true/false) oder ob ein Skript in einen Datenpunkt true/false schreibt, sollte doch dem Adapter egal sein?
@homoran said in Pimp my Shuttercontrol:
nicht unbedingt als "pimp my Shuttercontrol".
OK, hätte vielleicht einen anderen Titel wählen können - my bad.
@homoran said in Pimp my Shuttercontrol:
Wenn die Anwender bei Problemen mit SC wenigstens immer so fair wären, dann auch direkt zu Beginn der Problembeschreibung darauf hinzuweisen, dass sie externe Einflüsse auf Datenpunkte, die SC verwendet, einsetzen, wären wir noch einen Schritt weiter.
Aber woher soll man wissen, dass das ein Kriterium ist? Wie oben schon geschrieben sollte es doch SC (und eigentlich auch jedem anderen Adapter) egal sein, woher die Daten kommen, solange sie sauber gesetzt werden? Bitte nochmal - ich möchte es wirklich nur verstehen, um zukünftigen Problemen auszuweichen.
@homoran said in Pimp my Shuttercontrol:
...werden die Skripte nicht deaktiviert.
Die Anforderung ist schnell geschrieben - aber nicht so einfach umgesetzt. Wenn man mehrere Kontaktsensoren kombiniert, was auch noch Auswirkungen auf weitere Funktionen im Haus hat, dann bringt die Deaktivierung ja nichts - dann werden keine Daten mehr in den Datenpunkt geschrieben und das Verhalten in SC ist nicht mehr nachvollziehbar - und im Haus funktioniert der Rest dann auch nicht mehr.
Ich kann aber nachvollziehen, dass @simatec oder andere dann keinen Support mehr geben können/möchten, denn für diese Anwendungen wurde der Adapter ja ursprünglich nicht gebaut. Die Fragen danach sollten aber trotzdem erlaubt sein, eine kurze Info, was SC intern bei bestimmten Konstellationen macht und worauf man achten muss ist da oft schon sehr hilfreich - und diese Infos wurden ja auch größtenteils gegeben, was auch nicht selbstverständlich ist - und das hat mir auch sehr geholfen. Vielen Dank auch dafür noch mal von mir.@homoran said in Pimp my Shuttercontrol:
und @simatec mit dem Support überstrapaziert wird.
Das verstehe ich natürlich und dazu darf es selbstverständlich nicht kommen. Ich möchte an dieser Stelle allen, die sich überhaupt damit beschäftigt haben, noch einmal ein großes Dankeschön aussprechen - das ist nicht selbstverständlich, dass man sich mit den Problemen und Problemchen anderer Nutzer intensiv beschäftigt. Da sticht im übrigen dieses gesamte Forum sehr positiv heraus!!! Und am Ende wollen wir ja alle das meiste aus der Hausautomation herausholen und ioBroker für noch mehr Anwender noch besser und anwenderfreundlicher gestalten - also das ist zumindest mein Beweggrund für den Start dieses Threads gewesen.
-
@guitardoc sagte in Pimp my Shuttercontrol:
Und die steuern wir jetzt im Teil 4.
kommt Teil 4 bzw das Skript noch?
-