Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Das hängt ja immer (stark) davon ab, was du und wie erreichen willst.
Wenn's draußen unter 5 Grad sind, fahren abends alle Rollos, die auf "Schatten" (85% +/-) stehen, ganz zu (und morgens wieder auf). Alternativ kann ich die Logik mit Parameter aufrufen, dann macht er nicht "zu" oder "Schatten", sondern eben auf den übergebenen Wert.
Allerdings habe ich mir gespart zu prüfen, welches Rollo vorher wie stand - alle "Schatten" fahren zu, und alle geschlossenen fahren wieder "auf" auf Schatten. Das entspricht aber meiner Erwartung, von daher passt das für mich.
Code:
#!/usr/bin/env python3
# rollos.py
debug = True
try:
target_manual = int(trigger['value'])
except:
target_manual = 0
hr = sh.now().hour
is_day = 3 <= hr < 19
if target_manual == 85 or target_manual == 100:
target = target_manual
else:
if is_day:
target = 85
else:
target = 100
temp = sh.d.aussentemperatur()
if debug:
logger.debug("Running rollos.py at {}° with value = {}".format(temp, target))
for item in sh.match_items('*.rollo.prozent'):
if item.id().find('zentral') == -1 and item.id().find('schatten') == -1:
cur = item()
is_shut = cur > 98
is_shadow = 83 < cur < 87
if (target == 100 and is_shadow and (target_manual == 100 or temp < 5)) or (target == 85 and is_shut and not sh.d.cal.frei.heute()):
item(target)
if debug:
logger.debug("Running rollos.py: item {} is {}, target is {}, manual is {}".format(item.id(), cur, target, target_manual))
else:
if debug:
logger.debug("Running rollos.py: item {} is {}, target is {} -> ignored".format(item.id(), cur, target))
else:
if debug:
logger.debug("Skipped {}".format(item.id()))
<edit> habe jetzt erst das Originalthema gelesen - ich mache eigentlich das genaue Gegenteil. Ob dir das hilft, weiß ich nicht. Eine Sperre gegen automatisches oder manuelles "Zu-Weit-fahren" lässt sich so natürlich nicht umsetzen...
Aktion(nur bei aktivem Frostalarm)keine Aktionnach oben fahrennach unten fahrenHöhenposition anfahrenAktion auf die Auslösung des Frostalarms.Einstellung Höhenposition anfahren: Es wird die unter 4.10.4Höhenposition anfahrenbeschriebene absolute Position angefahren.
dann wird bei Frost eine bestimmte Höhe angefahren, von allen verbundenen Rollos.
es ist in der Tat so, dass bei "Frostalarm" die eingestellte Höhenposition angefahren wird. Egal ob wo der Rollo vorher stand d.h. er fährt auch weiter runter.
Rollo 0 % --> Frostalarm --> Rollo 10 % --> wird dort gesperrt
Rollo 20 % --> Frostalarm --> Rollo 10 % ---> wird dort gesperrrt
Somit bleibt - denke ich - nur der Umweg über SHNG
Wobei die Frage ist, ob das per shng "solo" leistbar ist. Für von shng gesteuerte Automatiken, sicher. Und über Tastenbetätigung? Das könnte wohl nur der Aktor... oder eben nicht.
Hat keines deiner KNX Devices eine Logikfunktion? Dann könntest die vielleicht nutzen. Ansonsten halt shng
MDT - Jalousieaktor (Handbuch Suche nach "Logik" findet --> Frost Schutz und Lüftungsfunktion
MDT - Glastaster 2 (Handbuch Suche nach "Logik" findet --> "Einstellung des Objekttyps für das Aussenden eines Wertes bei erfüllter Logikoperation") damit könnte es klappen, allerdings (denke ich) ja nur wenn die Funktion von diesem Taster ausgelöst wird.
Inwiefern siehst du eine Notwendigkeit darin? Willst du ein Festfrieren der Rolläden verhindern? War bei mir noch nie ein Problem. Allerdings hab ich Textilscreens im "Freien" und die fahr ich im Winter tatsächlich nicht bis ganz nach unten. Einfach, weil der Schnee im Weg ist und das unschön aussieht.
Gelöst habe ich das mit dem Stateengine Plugin. Wenn du nur Frostschutz machen willst, ist das zu viel Aufwand, dich da rein zu denken. Aber wenn's auch Sonnenschutz etc. sein darf, ist das eine warme Empfehlung https://www.smarthomeng.de/starting-...toblind-plugin
Ich halte den Frostschutz für problematisch, es sei denn Du hast an jedem Rollo einen Temperaturfühler dafür.
Bei freunden von mir war ein Rollo trotz Frostschutz eingefrohren (Wind Chill), da der Temperaturfühler woanders saß. Die Frostschutz Temperatur so einzustellen, dass dieses Rollo nicht einfror führte dazu, dass die Rollos dauernd gesperrt waren (gefühlt jede 3. Nacht)...
Außerdem ist Frost alleine nicht das Problem. Du kannst die Rollos auch bei -20 Grad problemlos fahren, solange die Luft trocken ist. Genau genommen müsste der Frostschutz bei Temperaturen um die 0 Grad und einer Luftfeuchte über einem gewissen Limit aktivieren.
Beispiel: der Rollo wird im "Frostfall" 5cm über die untere Endlage positioniert --> es schneit 10cm auf das Fensterbrett --> Tagsüber taut der Schnee etwas an auf 8cm somit ist die Gefahr des Festfrierens wieder da.
Einzig durch Temperartur und Luftfeuchte habe ich noch kein Festfieren festgestellt.
Mein Grundgedanke war in etwa so.
Bei Frostalarm wird die untere Endlage einige cm nach oben verschoben --> mit meinem Aktor so möglich, nur fährt dieser dann leider alle Rollos auf die eingestellte Höhe, es erfolgt keine Auswertung ob dieser Rollo die obere Endlage verlassen hat.
Da meine Programmierkenntnisse gegen Null gehen, mein Gedanke zum Programmablauf.
Frostalarm Ja/Nein
Nein --> "tue nichts"
Ja --> prüfe Rollo(s) ob Wert > 240 (bzw. Prozentwert dürfte bei etwa 90% liegen)
Wert > 240 --> setzte Wert auf 220
Wert < 230 --> "tue nichts"
Entweder als Logik oder mit Hilfsitems. Wenn's nur drum geht, herunter gefahrene Rollos etwas nach oben zu fahren, ist das ja sehr simpel. Wenn du hingegen willst, dass ab einer bestimmten Temp/Windsituation beim Betätigen eines Tasters die Maximalhöhe 90% ist, wird's schwieriger..Da müsstest du die "Nach unten"-Taster so programmieren, dass sie nicht direkt das Rollo ändern, sondern nur ein Item in shng aktualisieren. Und dort dann eine Logik, die entweder ein item "Hoehe100" oder "Hohe90" mit den jeweiligen knx_send schaltet.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar