[Frage] [V4.5 IP8] Beschattungsmodul: Öffnen der Lamellen bei Freigabe aber Inaktivität

Informationen und Diskussionen über Logik-Engine und Logik-Editor
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Antworten

Ersteller
avater
Reactions:
Beiträge: 59
Registriert: Sa Apr 02, 2022 12:19 pm
Hat sich bedankt: 22 Mal
Danksagung erhalten: 8 Mal

[V4.5 IP8] Beschattungsmodul: Öffnen der Lamellen bei Freigabe aber Inaktivität

#1

Beitrag von avater »

Hallo zusammen!

Ich nutze derzeit die eingebaute Beschattungslogik testweise an einem Fenster und halte die Funktionalität für deutlich besser im vergleich zu dem, was der MDT-Aktor bietet. Schon allein wegen der granulareren Parametrierbarkeit und vor allem der Möglichkeit "LammellePosZu" definieren zu können. :clap:

Was mir nun noch fehlt:

Ich schalte die Beschattung direkt mit Aufwachen des Hauses (also Tag) ein. Und wenn die damit freigegebene Beschattung dann etwas zu tun hat (also Helligkeit und Sonnenstand entsprechend sind), dann gehen auch die Lamellen direkt auf, wie gewünscht. Aber wenn es im Moment der Freigabe ("Steuerung ein") z.B. noch zu Dunkel ist, passiert nichts. Hier würde ich mir aber Wünschen, dass die Werte aus "RafPosAus" und "LamellePosOffen" (inkonsistente Benamung der Parameter...?) gesendet würden.

Jemand eine Idee, wie ich das geschickt umsetzen kann, ohne viel Custom-Logik um die Beschattung herumzubauen? :confusion-scratchheadyellow:

Schönen Sonntag allen!

Arne
Zuletzt geändert von Parsley am Mo Sep 08, 2025 10:36 pm, insgesamt 1-mal geändert.
Viele Grüße!
Arne

TWS 3500 XL #1458 mit KNX, 1-Wire (PBM #1139), HTTP-API, MQTT, Modbus
Support-VPN aktiv, Neustart nach Rücksprache

eib-eg
Reactions:
Beiträge: 679
Registriert: Fr Sep 14, 2018 5:03 pm
Hat sich bedankt: 1614 Mal
Danksagung erhalten: 418 Mal

#2

Beitrag von eib-eg »

🤔
Ich würde der ki bzw meinen promt einen Versuch machen lassen,
dies ist aber nicht erwünscht.
Somit bleiben nur noch wenige meines Erachtens übrig die da einen Überblick haben 🤷‍♂️.

Noch einen schönen Sonntag.
TW 2600_99 seit 1.1.2018 / VPN zu

eib-eg
Reactions:
Beiträge: 679
Registriert: Fr Sep 14, 2018 5:03 pm
Hat sich bedankt: 1614 Mal
Danksagung erhalten: 418 Mal

#3

Beitrag von eib-eg »

ich gebe dir von meiner ki überarbeitete lokig zum testen
selber kann ich dies nicht testen da mir die hardware fehlt


{
"_Meta": {
"Description": "Angepasstes Beschattungsmodul: Öffnen der Lamellen bei Freigabe, aber Inaktivität. Sendet RaffPosAus und LamellePosOffen, wenn Steuerung ein, aber Beschattung inaktiv ist.",
"Version": "6.08.5",
"Author": "Georg E. & AI",
"Last_Update": "2025-09-07"
},
"Level": [
[
"$BeschattungEin",
"bool",
false
],
[
"$LuxAussen",
"float",
50000
],
[
"$LuxSchwelleDunkel",
"float",
300
],
[
"$LuxSchwelleHell",
"float",
1000
],
[
"$AussenHell",
"bool",
false
],
[
"$SonnenHoehe",
"float",
0
],
[
"$HoeheStart",
"float",
0
],
[
"$HoeheEnde",
"float",
90
],
[
"$HoeheInnerhalb",
"bool",
false
],
[
"$SonnenAzimut",
"float",
0
],
[
"$AzimutStart",
"float",
90
],
[
"$AzimutEnde",
"float",
270
],
[
"$AzimutInnerhalb",
"bool",
false
],
[
"$BeschattungAktiv",
"bool",
false
],
[
"$RaffPosAus",
"float",
0
],
[
"$RaffPosEin",
"float",
100
],
[
"$RaffPosOut",
"float",
0
],
[
"$LamellePosZu",
"float",
100
],
[
"$LamellePosOffen",
"float",
0
],
[
"$LamellePosDiff",
"float",
0
],
[
"$LamellePosSteigung",
"float",
0
],
[
"$LamellePosOffset",
"float",
0
],
[
"$HoeheZu",
"float",
10
],
[
"$HoeheOffen",
"float",
50
],
[
"$HoeheDiff",
"float",
50
],
[
"$HoeheLimit",
"float",
0
],
[
"$LamellePosEin",
"float",
0
],
[
"$LamellePosOut",
"float",
0
],
[
"$LamellePosStep",
"float",
5
],
[
"$LamellePosStpOut",
"float",
0
],
[
"$EinsKonst",
"float",
1
],
[
"$VAR<Inhibit?>",
"bool",
false
],
// --- NEU hinzugefügt für die Anforderung ---
[
"$Konst_True",
"bool",
true
],
[
"$State_BeschattungEin_Last",
"bool",
false
],
[
"$Lgc_BeschattungEin_RisingEdge",
"bool",
false
],
[
"$Lgc_SendOpenPositions_Trigger",
"bool",
false
]
],
"Module": [
[
"Break",
[
"$VAR<Inhibit?>"
]
],
// --- NEU: Robuste Flankenerkennung für BeschattungEin ---
[
"And",
[
"$BeschattungEin",
"-$State_BeschattungEin_Last"
],
"$Lgc_BeschattungEin_RisingEdge"
],
[
"Comparator",
"$LuxAussen",
"$AussenHell",
[
"$LuxSchwelleDunkel",
"$LuxSchwelleHell"
]
],
[
"Limiter",
"$SonnenHoehe",
0,
"$HoeheInnerhalb",
[
"$HoeheStart",
"$HoeheEnde"
]
],
[
"Limiter",
"$SonnenAzimut",
0,
"$AzimutInnerhalb",
[
"$AzimutStart",
"$AzimutEnde"
]
],
[
"And",
[
"$BeschattungEin",
"$AussenHell",
"$HoeheInnerhalb",
"$AzimutInnerhalb"
],
"$BeschattungAktiv"
],
// --- NEU: Bedingung für explizites Senden der offenen/inaktiven Positionen ---
// Sende, wenn BeschattungEin gerade aktiviert wurde UND die Beschattung noch nicht aktiv ist (z.B. weil es zu dunkel ist)
[
"And",
[
"$Lgc_BeschattungEin_RisingEdge",
"-$BeschattungAktiv"
],
"$Lgc_SendOpenPositions_Trigger"
],
[
"Multiplexer",
[
"$RaffPosAus",
"$RaffPosEin"
],
"$RaffPosOut",
"$BeschattungAktiv"
],
[
"Limiter",
"$SonnenHoehe",
"$HoeheLimit",
0,
[
"$HoeheZu",
"$HoeheOffen"
]
],
[
"Polynomial",
"$LamellePosOffen",
"$LamellePosDiff",
[
"-$LamellePosZu",
"$EinsKonst"
]
],
[
"Polynomial",
"$HoeheOffen",
"$HoeheDiff",
[
"-$HoeheZu",
"$EinsKonst"
]
],
[
"Ratio",
"$LamellePosDiff",
"$LamellePosSteigung",
"$HoeheDiff"
],
[
"Polynomial",
"$HoeheZu",
"$LamellePosOffset",
[
"$LamellePosZu",
"-$LamellePosSteigung"
]
],
[
"Polynomial",
"$HoeheLimit",
"$LamellePosEin",
[
"$LamellePosOffset",
"$LamellePosSteigung"
]
],
[
"Multiplexer",
[
"$LamellePosOffen",
"$LamellePosEin"
],
"$LamellePosOut",
"$BeschattungAktiv"
],
[
"Step",
"$LamellePosOut",
"$LamellePosStpOut",
0,
"$LamellePosStep",
0
],
// --- NEU: Explizites Senden der Positionen bei Trigger ---
[
"SendExplicit",
"$Lgc_SendOpenPositions_Trigger",
"$RaffPosOut",
1
],
[
"SendExplicit",
"$Lgc_SendOpenPositions_Trigger",
"$LamellePosStpOut",
1
],
// --- NEU: Aktualisierung des letzten Zustands für die Flankenerkennung (muss am Ende stehen) ---
[
"Multiplexer",
[
"$BeschattungEin",
"$BeschattungEin"
],
"$State_BeschattungEin_Last",
"$Konst_True"
]
],
"Input": [
[
"Steuerung Ein",
"Beschattungssteuerung einschalten",
"$BeschattungEin",
"c"
],
[
"Lux",
"Aussenhelligkeit",
"$LuxAussen",
"c"
],
[
"SchwelleDunkel",
"untere Schwelle für Aussenhelligkeit",
"$LuxSchwelleDunkel",
"c"
],
[
"SchwelleHell",
"obere Schwelle für Aussenhelligkeit",
"$LuxSchwelleHell",
"c"
],
[
"SonnenHoehe",
"Winkel des Sonnenstands über dem Horizont",
"$SonnenHoehe",
"c"
],
[
"HoeheBegin",
"Höhenuntergrenze für Beschattung",
"$HoeheStart",
"c"
],
[
"HoeheEnde",
"Höheobergrenze für Beschattung",
"$HoeheEnde",
"c"
],
[
"Sonnenrichtung",
"Richtungswinkel des Sonnenstands",
"$SonnenAzimut",
"c"
],
[
"RichtungBegin",
"Richtungswinkel für Start der Beschattung",
"$AzimutStart",
"c"
],
[
"RichtungEnde",
"Richtungswinkel für Ende der Beschattung",
"$AzimutEnde",
"c"
],
[
"RaffPosAus",
"Position für Raffstore bei inaktiver Beschattung",
"$RaffPosAus",
"c"
],
[
"RaffPosEin",
"Position für Raffstore bei aktiver Beschattung",
"$RaffPosEin",
"c"
],
[
"LamellePosOffen",
"Position für Lamellen bei inaktiver Beschattung",
"$LamellePosOffen",
"c"
],
[
"LamellePosZu",
"Position für Lamellen bei aktiver Beschattung",
"$LamellePosZu",
"c"
],
[
"HoeheZu",
"Sonenhöhe bei der die Lamellennachführung startet",
"$HoeheZu",
"c"
],
[
"HoeheOffen",
"Sonenhöhe bei der die Lamellennachführung endet",
"$HoeheOffen",
"c"
],
[
"LamelleStep",
"Schrittweite für Lamellennachführung",
"$LamellePosStep",
"c"
],
[
"Inhibit",
"Inhibit",
"$VAR<Inhibit?>",
"u"
]
],
"Output": [
[
"RaffPos",
"Aktuelle Position für Raffstore",
"$RaffPosOut",
"c"
],
[
"LamellePos",
"Aktuelle Position für Lamellen",
"$LamellePosStpOut",
"c"
]
]
}




sowie eine anleitung der ki
ab hier ki text
___________________
Hallo Arne,

ich habe die Standard-Beschattungslogik des Timberwolf Servers um die von dir gewünschte Funktion erweitert. Die Anpassung sorgt dafür, dass die Lamellen und Raffstores ihre "offenen" bzw. "inaktiven" Positionen explizit senden, sobald du die Beschattungssteuerung freigibst ("Steuerung Ein" auf true wechselt), auch wenn die aktiven Beschattungsbedingungen (z.B. ausreichend Helligkeit) noch nicht erfüllt sind.

So implementierst du die Änderung:

Ersetze deine bestehende Custom Logic:

Kopiere den vollständigen JSON-Code, den ich dir im vorherigen Schritt bereitgestellt habe.

Öffne deine aktuelle Beschattungs-Logik-Zelle im Timberwolf Server.

Ersetze den gesamten Inhalt des Code-Feldes mit dem neuen, kopierten JSON-Code.

Klicke auf "Speichern" (Disketten-Symbol).

Verständnis der Änderung:

Ich habe interne Logik hinzugefügt, die erkennt, wenn dein Eingang "Steuerung Ein" von false auf true wechselt.

Wenn dieser Wechsel stattfindet und gleichzeitig die eigentliche Beschattung (bedingt durch Helligkeit, Sonnenstand etc.) noch nicht aktiv ist, wird ein kurzer Impuls ausgelöst.

Dieser Impuls veranlasst die Ausgänge "RaffPos" und "LamellePos", ihren aktuellen (inaktiven) Wert explizit zu senden. Dies stellt sicher, dass die Befehle für die "offene" Position sofort an deine Aktoren gehen, auch wenn sich der Wert numerisch nicht geändert hat, aber eben gesendet werden soll.

Was du nicht ändern musst:

Alle deine bestehenden Eingänge ($BeschattungEin, $LuxAussen, etc.) bleiben unverändert.

Alle Ausgänge ($RaffPosOut, $LamellePosStpOut) behalten ihre Namen und Trigger-Optionen (Standard "c" für "on change"). Die explizite Sende-Logik wird intern durch SendExplicit-Module behandelt, ohne die externen Verknüpfungen zu beeinflussen.

Ich hoffe, diese Anpassung löst dein Problem.

_________________
ende ki text

viel erfolg
TW 2600_99 seit 1.1.2018 / VPN zu
Antworten

Zurück zu „Logikengine & Logik-Editor“