Hallo Sprocky,
offline hat einen schönen Ansatz implementiert, siehe Forumsthread Logik für Raffstore-Steuerung oder auch SmartHome Wiki. Ich habe für mich seine Lokik erweitert in dem ich mit raumbezogene Abhängigkeiten wie Anwesendheit, Kunstlicht aktiv, Heiz/Kühlbedarf sowie Solarstrahlung die Raffstore ansteuere. Weiterhin habe ich die Berechnung der optimale Lamellenstellung für eine Beschattung in Abhängigkeit der Lamellengeometrie und Sonnenhöhe eingefügt. Die Logik ist ziemlich mit meiner Item-Struktur verwogen und außerdem noch "in Bearbeitung". Solltest Du dennoch über offlines Implementation hinaus den Bedarf haben, melde Dich bitte noch mal.
Viele Grüße,
Jan
Ankündigung
Einklappen
Keine Ankündigung bisher.
Automatische Beschattung
Einklappen
X
-
Hallo Sprocky!
Ich habe mich letztes Jahr mit meiner ersten smarthome.py-Logik dem Thema Sonnenschutz gewidmet. Es war mein erster Python-Gehversuch und ist daher mit Sicherheit etwas dirty und verbos, aber es funktioniert einwandfrei. Ich kann ganz simpel im Wohnzimmer mit einem Taster die Automatik ein- oder ausschalten, was auch zu einem einigermaßen hohen WAF führte.
Nochmal kurz zusammengefasst was es macht:
Ich habe für meine mit Rollladen ausgerüsteten Fenster mittels iPhone-Kompass die Winkel ermittelt, bei denen Sonne in das Fenster einfällt. down -> Rollladen runter, up -> Rollladen wieder hoch. Dazu kann man noch angeben, wie weit der Rollladen runter fahren soll. (Das kann man bestimmt auch noch schön bei den eigentlichen Rollladen-items hinterlegen, aber ich wollte es erstmal langsam angehen... :-))
Dann gehe ich einfach die entsprechenden items durch und setze die Werte, sobald die Bedingungen entsprechend erfüllt sind. Ausnahmen gibt es bei meinen Fenstern zur Terrasse: Ist ein Fenster geöffnet, wird es von der Automatik ausgenommen, damit man sich nicht aussperrt.
Ein- und ausgeschaltet wird die Logik mit dem item "sunprotection_enabled".
Die Logik wird folgendermaßen getriggert:
Vielleicht ist das ja ein nützlicher Startpunkt für Dich.Code:[sunprotection] filename = sunProtection.py crontab = init | 0,15,30,45 9,10,11,12,13,14,15,16,17,18,19,20,21 * * watch_item = sunprotection_enabled
Viel Spaß damit!
Code:#!/usr/bin/env python import math logger.info('********** SUNPROTECTION 1.0 **********') SHUTTER_AZIMUT_MAPPING = { 'livingroom.shutter.bayLeft': { 'downPos': 80, 'down': 110, 'up': 212 }, 'kitchen.shutter': { 'downPos': 80, 'down': 140, 'up': 264 }, 'livingroom.shutter.bayMidLeft': { 'downPos': 50, 'down': 140, 'up': 264 }, 'livingroom.shutter.bayMidRight': { 'downPos': 80, 'down': 140, 'up': 264 }, 'sleepingroom.shutter': { 'downPos': 80, 'down': 140, 'up': 264 }, 'livingroom.shutter.cornerGarden': { 'downPos': 80, 'down': 160, 'up': 264 }, 'livingroom.shutter.bayRight': { 'downPos': 80, 'down': 215, 'up': 264 }, 'livingroom.shutter.cornerDriveway': { 'downPos': 80, 'down': 215, 'up': 264 } } if sh.return_item('sunprotection_enabled')(): logger.info('Sonnenschutz ist aktiviert') currentAzimut = math.degrees(sh.sun.pos()[0]) logger.info('Azimut: ' + str(currentAzimut)) for shutterItem, values in SHUTTER_AZIMUT_MAPPING.items(): position = None item = sh.return_item(shutterItem) # Azimut prüfen und Position setzen if currentAzimut > values['down']: position = values['downPos']/100*255 if currentAzimut > values['up']: position = 0 # Ausnahmen if item.id() == 'kitchen.shutter' and item.return_parent().contact(): position = None logger.info('Küchentür offen, nicht herunterfahren') elif item.id() == 'livingroom.shutter.bayMidRight' and item.return_parent().return_parent().contact_sliding(): position = None logger.info('Schiebeelement offen, nicht herunterfahren') elif item.id() == 'livingroom.shutter.cornerGarden' and item.return_parent().return_parent().contact_parallel(): position = None logger.info('PSK offen, nicht herunterfahren') # Wert senden if position is not None: logger.info(str(item) + ': Position ' + str(position)) item.position(position) else: logger.info('Sonnenschutz ist deaktiviert')
Einen Kommentar schreiben:
-
Automatische Beschattung
Hallo,
hat jemand von Euch eine automatische Beschattung der Rolladen/Jalousien programmiert?
Ich würde gerne die Rolladen anhand von Sonnenstand, Temperatur,... steuern.
Kann ich was übernehmen oder muss ich selber tätig werden? Im Forum bin ich nicht so recht fündig geworden.
Gruß
SprockyStichworte: -

Einen Kommentar schreiben: