KNX Data Secure Unterstützung
für KNX Logger und KNX Busmonitor

KNX Diagnose Monitor, Import des ETS Projektes deutlich beschleunigt, Suche in der Navigation
Mehr Informationen dazu hier im Forum

Insider Version 6 zur 4.5 jetzt für alle Mitglieder des Insider Clubs installierbar
Alle Infos zum Update im Timberwolf Wiki

[Frage] [V 1.5 RC 10] Problem Logik zur Rollladensteuerung

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
Jürgen
Reactions:
Beiträge: 82
Registriert: Fr Dez 21, 2018 11:51 pm
Hat sich bedankt: 11 Mal
Danksagung erhalten: 47 Mal

[V 1.5 RC 10] Problem Logik zur Rollladensteuerung

#1

Beitrag von Jürgen »

Hallo Foristen,

ich beschäftige mich zur Zeit (wie sollte es anders sein) mit dem Thema Weihnachtsbeleuchtung und Rollladensteuerung.
Ich habe mit dafür derzeit folgende Custom-Logik gebaut, die aber nicht ganz das tut, was ich bisher darin einbauen wollte.

Code: Alles auswählen

  "Input": [
      ["Tag", "Verknüpfung für Tag", "$Tag", "a"],
      ["Nacht", "Verknüpfung für Nacht", "$Nacht", "a"],
      ["Dämmerung morgens", "Verknüpfung für Dämmerung morgens", "$Daemmerung_morgens", "a"],
      ["Dämmerung abends", "Verknüpfung für Dämmerung abends", "$Daemmerung_abends", "a"],
      ["Weihnachtsbeleuchtung Loggia", "Verknüpfung mit Weihnachtsbeleuchtung Loggia", "$Weihnachten_außen", "a"],
      ["Weihnachtsbeleuchtung Fenster", "Verknüpfung mit Weihnachtsbeleuchtung Fenster", "$Weihnachten_innen", "a"],
      ["Nacht-Modus", "Sperreingang für Nachtmodus", "$Modus_Nacht", "a"], 
      ["Automatik-Sperre", "Sperreingang für Automatik", "$Automatik", "a"]
  
  ],
  "Output": [
      ["Rollladen Loggia links", "Ausgang Rollladen Loggia links", "$Rollladen_Loggia_links", "a"],
      ["Rollladen Loggia Mitte", "Ausgang Rollladen Loggia Mitte", "$Rollladen_Loggia_Mitte", "a"],
      ["Rollladen Loggia rechts", "Ausgang Rollladen Loggia rechts", "$Rollladen_Loggia_rechts", "a"],
      ["Rollladen Nordseite links", "Ausgang Rollladen Nordseite links", "$Rollladen_Nordseite_links", "a"],
      ["Rollladen Nordseite rechts", "Ausgang Rollladen Nordseite rechts", "$Rollladen_Nordseite_rechts", "a"]
      
  ],
  "Level": [
      ["$Tag", "bool", false],
      ["$Nacht", "bool", false],
      ["$Daemmerung_morgens", "bool", false],
      ["$Daemmerung_abends", "bool", false],
      ["$Weihnachten_außen", "bool", false],
      ["$Weihnachten_innen", "bool", false],
      ["$Modus_Nacht", "bool", false],
      ["$Automatik", "bool", false],
      
      ["$Rollladen_Loggia_links", "integer", 0],
      ["$Rollladen_Loggia_Mitte", "integer", 0],
      ["$Rollladen_Loggia_rechts", "integer", 0],
      ["$Rollladen_Nordseite_links", "integer", 0],
      ["$Rollladen_Nordseite_rechts", "integer", 0],
      
      
      ["$open", "integer", 0],
      ["$close", "integer", 100],
      ["$Rollladen_intern", "integer", 0],
      ["$const_true", "bool", true],
      ["$const_false", "bool", false],
      ["$Trigger_close", "bool", false],
      ["$Trigger_open", "bool", false],
      ["$Trigger_int_1", "bool", false],
      ["$Trigger_int_2", "bool", false],
      ["$Trigger_int_3", "bool", false],
      ["$Trigger_Loggia", "bool", false],
      ["$Trigger_Nordseite", "bool", false]


  ],
  "Module": [
      /** Wenn Nacht = true, dann schreibe Wert 100 % für Rollladen in interne Variable und setzte Trigger close */
      ["Latch", "$close", "$Rollladen_intern", "$Nacht", 1],
      ["Latch", "$const_true", "$Trigger_close", "$Nacht", 1],
      
      /** Wenn Nacht auf false geht dann 0 % für Rollladen in interne Variable und setze Trigger open */
      ["Latch", "$open", "$Rollladen_intern", "$Nacht", 2],
      ["Latch", "$const_true", "$Trigger_open", "$Nacht", 2],
      
      /** Verzögere auffahren, bis Nachtmodus = 0 */
      ["And", ["$Trigger_open", "-$Modus_Nacht"], "$Trigger_int_1"],
     
      /** Verzögere zufahren, so lange, Weihnachtsbeleuchtung an ist */
      ["And", ["$Trigger_close", "-$Weihnachten_außen"], "$Trigger_int_2"],
      ["And", ["$Trigger_close", "-$Weihnachten_innen"], "$Trigger_int_3"],
      
      /** Trigger zusammenführen */
      ["Or", ["$Trigger_int_1", "$Trigger_int_2"], "$Trigger_Loggia"],
      ["Or", ["$Trigger_int_1", "$Trigger_int_3"], "$Trigger_Nordseite"],
      
      /** Schreibe Wert für Rollladen_Loggia */
      ["Latch", "$Rollladen_intern", "$Rollladen_Loggia_links", "$Trigger_Loggia", 0],
      ["Latch", "$Rollladen_intern", "$Rollladen_Loggia_Mitte", "$Trigger_Loggia", 0],
      ["Latch", "$Rollladen_intern", "$Rollladen_Loggia_rechts", "$Trigger_Loggia", 0],
      
      /** Schreibe Wert für Rollladen_Nordseite */
      ["Latch", "$Rollladen_intern", "$Rollladen_Nordseite_links", "$Trigger_Nordseite", 0],
      ["Latch", "$Rollladen_intern", "$Rollladen_Nordseite_rechts", "$Trigger_Nordseite", 0]

  ]
Im wesentlichen soll diese Logik folgendes machen, was ich bisher darin implementiert habe:

Wenn die Dämmerungssteuerung "Nacht" (oder Dämmerung, etc, aber das ist bisher noch nicht eingebaut) meldet, sollen die Rollläden zufahren.
Wenn die Nacht beendet wird, sollen die Rollläden auf fahren.
Das funktioniert auch schon ganz gut.

Allerdings sollen die Rollläden nicht zufahren, wenn die Weihnachtsbeleuchtung aktiv ist (diese Logik sendet den Trigger "Weihnachtsbeleuchtung aktiv").
Dies soll dann nachgeholt werden, wenn die Weihnachtsbeleuchtung aus geht.

Gleiches in der früh:
Die Rollläden sollen auffahren (funktioniert auch bereits), aber nicht so lange Nacht aktiv ist.


Nun zum Fehlerbild:
Die ganze Logik funktioniert auch (im Doktor-Modus, der super dafür ist), aber nur bei den ersten Betätigungen, so lange die internen Variablen (Trigger_int_1 bis Trigger_int_3) auf "false" stehen.
Sofern diese einmal auf true (durch den Trigger) gesetzt wurden, bleiben diese auf true und meine oder-Logik funktioniert nicht mehr.

Gibt es dafür eine Lösung? Mir ist noch keine eingefallen...

Weiterhin suche ich noch eine Lösung für folgende Situation:
Wenn Rollläden zu sind und Beleuchtung wird aktiviert, sollen die Rollläden auf fahren und danach wieder zu, sobald die Beleuchtung aus ist.
Wie könnte ich dies lösen??

Viele Grüße
Jürgen
Timberwolf 2600 #177
Timberwolf 3500 L #1356
VPN ist offen, Zugriff erlaubt, reboot nach Absprache

Dragonos2000
Reactions:
Beiträge: 2200
Registriert: So Aug 12, 2018 1:38 pm
Wohnort: Karlsruher Raum
Hat sich bedankt: 492 Mal
Danksagung erhalten: 897 Mal

#2

Beitrag von Dragonos2000 »

Hallo @Jürgen ,

freut mich, dass Du dich mit Custom-Logiken beschäftigst. Bevor Du Dich in dem Thema aber evtl unnötig abmühst, erlaube mir den Hinweis auf den fertigen Baustein von mir: viewtopic.php?f=65&t=1350
Der sollte eigentlich alle Bedarfe abdecken. Falls nicht, erweitere ich gerne. Konkret habe ich es mit diesem Baustein bei mir zu Hause mit der Zwangsführung realisiert. Mit dem Prioritätseingang ginge das auch...

Du kannst gerne einen eigenen Baustein schreiben, ich helfe auch gerne. Aus eigener Erfahrung kann ich aber sagen, dass das ganz schön komplex werden kann...
Zuletzt geändert von Dragonos2000 am Mo Nov 25, 2019 9:07 pm, insgesamt 2-mal geändert.
Lg
Jochen
____________________________________________________________
TW 2600 #188
VPN offen, Zugriff jederzeit, Experimente jederzeit, Reboot jederzeit

StefanW
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 10714
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 5305 Mal
Danksagung erhalten: 8685 Mal
Kontaktdaten:

#3

Beitrag von StefanW »

Hallo zusammen,

tolle Zusammenarbeit. Ich wäre recht glücklich, wenn wir am Ende möglichst nur einen universellen Baustein haben, weil den würden wir dann künftig als fertige Logikbaustein anbieten wollen mit einer ordnentlichen Dokumentation.

lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

gbglace
Reactions:
Beiträge: 4089
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1416 Mal
Danksagung erhalten: 1901 Mal

#4

Beitrag von gbglace »

Sehe ich auch so. Die großen braucht jeder im Haus Bausteine sind ja schon enorm Flexibel mit entsprechenden manuellen Sperreingängen die hier ja gebraucht werden.
Davon sollte es nicht soviel Wildwuchs geben.

Was natürlich nicht dagegen spricht sich mit eigenen Versuchen inhaltlich dem LE zu nähern. Mach ich ja auch die Tage.
Grüße Göran
#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#PV 43,2 kWh Akku; 3x VE MP2 5000; 6,7 kWp > 18 Panele an 4x HM1500 + 1 HM800 WR; Open-DTU

StefanW
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 10714
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 5305 Mal
Danksagung erhalten: 8685 Mal
Kontaktdaten:

#5

Beitrag von StefanW »

Richtig,

wobei ich bei den "superbausteinen für alle" darauf hinaus will, dass ich deren Handhabung mittel- bis langfristig vereinfachen will.

D.h. ich denke darüber nach, dass es für allgemeine Themen wie Beschattung, Heizungssteuerung usw. eigene Seiten gibt, in denen man sich die Fenster anlegt, deren Ausrichtung gegenüber Nord und dann eben die Objekte dazu angibt die man hat. Die Verknüpfung mit mit der Logik passiert dann im Hintergrund (unsichtbar). D.h. im Frontend sieht man eine sehr einfach zu bedienende Beschattungssteuerung mit übersichtlichen Tabelle und gfls. grafischen Darstellungen von Gebäude und Fenstern und im Hintergrund wird dies dann mit diesen bewährten Logikbausteinen veknüpft.

Das ist in etwa der gleiche Gedanke wie mit der TIE. Tolles Frontend, die ausführende Logik im Hintergrund basiert auf der Logikengine.

lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

andy_m
Reactions:
Beiträge: 96
Registriert: Mo Aug 13, 2018 1:38 pm
Hat sich bedankt: 40 Mal
Danksagung erhalten: 53 Mal

#6

Beitrag von andy_m »

Sehr dafür! Hab mir den existierenden Rolladenbaustein auch schon mal angesehen (auch schon mehr als einmal), aber jedesmal wieder vertagt, weil mir der Einstieg zu kompliziert erscheint. Ich sage bewusst 'erscheint', weil es sich bestimmt mit etwas Nachfrage und Hilfe auch bewerkstelligen lässt, allerdings ist genau dies oft die Hürde für Anfänger.
TWS 2600er #175 + PBM 3x80 Lizenz - Wiregate #187 *RIP*
Wartungs-VPN auf Nachfrage offen, Reboot nach Rückfrage

Dragonos2000
Reactions:
Beiträge: 2200
Registriert: So Aug 12, 2018 1:38 pm
Wohnort: Karlsruher Raum
Hat sich bedankt: 492 Mal
Danksagung erhalten: 897 Mal

#7

Beitrag von Dragonos2000 »

Okay, dann werd' ich die Beschreibung aufmöbeln. Gerade das "Abschreckmoment" will ich vermeiden und ich habe eigentlich versucht das möglichst einfach zu halten. Credo ist eigentlich: Was nicht gebraucht wird, wird einfach nicht belegt/benutzt, ohne dass man was einstellen muss...

Leider ist es mit den aktuellen Mitteln nicht möglich, die optionalen Elemente gezielt auszublenden.
Zuletzt geändert von Dragonos2000 am Di Nov 26, 2019 4:58 pm, insgesamt 1-mal geändert.
Lg
Jochen
____________________________________________________________
TW 2600 #188
VPN offen, Zugriff jederzeit, Experimente jederzeit, Reboot jederzeit

Ersteller
Jürgen
Reactions:
Beiträge: 82
Registriert: Fr Dez 21, 2018 11:51 pm
Hat sich bedankt: 11 Mal
Danksagung erhalten: 47 Mal

#8

Beitrag von Jürgen »

Hallo Jochen,
Hallo Stefan,

vielen Dank für den Hinweis mit dem bereits fertigen Baustein.
ich werde mir diesen in den nächsten Tagen auf jeden Fall ansehen und versuchen, einzubauen.
Aber ich habe bereits eiige Funktionen darin gefunden, die mir fehlen bzw. andere, die ich bereits nativ über KNX gelöst habe, wie zum Beispiel Öffnen bei Fensteröffnung oder Zwangsführung.

Folgende Funktionen fehlen mir allerdings, die ich bei mir einbauen will:
  • Frostschutz für Dachflächenfenster (abhängig von Luftfeuchtigkeit und Temperatur sind die Rollläden zusammen gefroren und müssen daher gesperrt werden) Sensoren am Dach sind dafür vorhanden, ich konnte nur noch nicht die Parameter herausfinden, die dafür notwendig sind
  • verschiedene Sperrgründe mit jeweils vorgegebener Position (wie Weihnachtsbeleuchtung, etc...)
  • Nachholen der Position bei Entfall eines Sperrgrundes (habe ich nicht gefunden, ob diese Funktion bei dir mit drin ist)
  • Ich wollte bei mir Beschattung von der Nacht-Funktion trennen in zwei Bausteine, damit ich zwar Nachts automatisch fahren kann, aber die Beschattung beispielsweise deaktivieren kann, oder anders herum
Ein fertiger Baustein ist immer das beste, da es mir lange Arbeit erspart, einen eigenen für die immer gleichen Funktionen zu schreiben.

Trotzdem werde ich im Laufe der Zeit noch versuchen, meinen eigenen Baustein "ans Laufen zu bringen", schon allein aus dem Grund des Lerneffektes...
Schon deswegen werde ich deinen Baustein mal "analysieren", wie hier Probleme gelöst wurden.

Viele Grüße
Jürgen
Timberwolf 2600 #177
Timberwolf 3500 L #1356
VPN ist offen, Zugriff erlaubt, reboot nach Absprache

Dragonos2000
Reactions:
Beiträge: 2200
Registriert: So Aug 12, 2018 1:38 pm
Wohnort: Karlsruher Raum
Hat sich bedankt: 492 Mal
Danksagung erhalten: 897 Mal

#9

Beitrag von Dragonos2000 »

Jürgen hat geschrieben: Di Nov 26, 2019 7:36 pm Folgende Funktionen fehlen mir allerdings, die ich bei mir einbauen will:
  • Frostschutz für Dachflächenfenster (abhängig von Luftfeuchtigkeit und Temperatur sind die Rollläden zusammen gefroren und müssen daher gesperrt werden) Sensoren am Dach sind dafür vorhanden, ich konnte nur noch nicht die Parameter herausfinden, die dafür notwendig sind
  • verschiedene Sperrgründe mit jeweils vorgegebener Position (wie Weihnachtsbeleuchtung, etc...)
  • Nachholen der Position bei Entfall eines Sperrgrundes (habe ich nicht gefunden, ob diese Funktion bei dir mit drin ist)
  • Ich wollte bei mir Beschattung von der Nacht-Funktion trennen in zwei Bausteine, damit ich zwar Nachts automatisch fahren kann, aber die Beschattung beispielsweise deaktivieren kann, oder anders herum
Eigentlich sind diese Punkte alle implementiert:
Den Frostschutz könntest Du über die Zwangsführung realisieren, diese hat die höchste Priorität und übersteuert alles. Wobei ich speziell dieses Thema per Sperrobjekt im Aktor lösen würde, da sicherheitsrelevant

Sperrgründe mit unterschiedlicher Priorität- da gibt es das Prioritätsobjekt und das Zwangsführungsobjekt. Über weitere hatte ich nachgedacht, aber ich hab' keinen Anwendungsfall gefunden, den ich über vorgeschaltete Und-/Oderverknüpfungen zu diesen Objekten nicht hätte realisieren können.

Die aktuellen Beschattungspositionen werden im Baustein permanent intern ermittelt, unabhängig ob gerade übersteuert (Fenster auf/zu, Hitzeschutz,...) oder irgendeine Sperre aktiv ist. Endet die ÜBersteuerung/Sperre, dann wir die korrekte Beschattungsposition angefahren ("nachgeholt", wenn Du so möchtest).

Die eigentliche Beschattungsfunktion lässt sich auf mehrere Wege mit mehreren Stufen deaktivieren:
  • Über einen zusätzlichen Eingang "SonnenBed", der auch für Sonnenhöhe und Kompasswinkel genutzt wird. Dabei bleiben die Hitzeschutz- und Prioritätsfunktion allerdings erhalten.
  • Über das Objekt "BeschattAus". Dabei bleiben Tag/Nacht Steuerung (obere und untere Endlage) und Fensterstellungen (Nachts bei geöffnetem Fenster auf Lüftungsposition fahren) erhalten.
  • Zusätzlicher "Inhibit". Damit ist der gesamte Baustein "tot".
Am Besten den Code einfach mal in eine Custom Logik kopieren. Die Hinweistexte beim Mouse-Over der Eingänge und Parameter sollten schon einiges erläutern...
Zuletzt geändert von Dragonos2000 am Di Nov 26, 2019 11:31 pm, insgesamt 4-mal geändert.
Lg
Jochen
____________________________________________________________
TW 2600 #188
VPN offen, Zugriff jederzeit, Experimente jederzeit, Reboot jederzeit
Antworten

Zurück zu „Logikengine & Logik-Editor“