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] [V4.5 IP3] Rollladensteuerung - wieso öffnen die Rollläden um Mitternacht?

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
jhaeberle
Reactions:
Beiträge: 208
Registriert: Do Aug 24, 2023 11:07 am
Wohnort: Raum Augsburg
Hat sich bedankt: 86 Mal
Danksagung erhalten: 40 Mal

[V4.5 IP3] Rollladensteuerung - wieso öffnen die Rollläden um Mitternacht?

#1

Beitrag von jhaeberle »

Hallo,

ich öffne und schliesse seit ein paar Tagen die Rollläden mit Hilfe des Astromoduls. Dazu verwende ich zwei Wake-Up-Module, einen zum Zumachen und einen zum morgens Aufmachen. Klappt so weit gut, nur öffnen die Rollläden um Mitternacht. Alle gleichzeitig. Also sendet mir wohl eines der beiden Wakups, vermutlich das Morgens-Auf, da da hinten der Befehl zum Aufmachen dran hängt. Aber warum?

Vermutlich der Startwert? Ich habe den auf 0 gestellt, warum weiss ich nicht, vermutlich, dass die Rollläden beim Starten hoch fahren. Erwartet wird aber ja ein unix timestamp, dann kommt bei Auslösung ein true raus, dass ich im Ausgang auf meine 0%-Höhe mappe. Aber… jeden Tag? Startet ein Wakup-Modul jeden Tag neu?
Ich werde das heute mal ohne Startwert probieren, aber einleuchten mag mir das nicht. Vielleicht kann ja jemand etwas Licht zu mir werfen?

Bild

Edit: Auch beim Speichern der Wake-Up Logik öffnen die Rollläden mit Zeitverzug von vielleicht einer Minute…
Der Vollständigkeit halber hier noch das Astro-Modul. Ja, das triggert alle 300sec, damit ich da auch heute noch ein Ergebnis habe… ich sehe aber nicht, warum das ein Problem sein könnt… das WakeUp-Modul sollte doch trotzdem nur einmal am Tag auslösen…

Bild

Danke, Gruß
Jochen
Zuletzt geändert von blaubaerli am Mi Mär 05, 2025 9:10 pm, insgesamt 3-mal geändert.
TWS 3500XL, ID: 1409 (VPN offen, Reboot nach Rücksprache)

Ersteller
jhaeberle
Reactions:
Beiträge: 208
Registriert: Do Aug 24, 2023 11:07 am
Wohnort: Raum Augsburg
Hat sich bedankt: 86 Mal
Danksagung erhalten: 40 Mal

#2

Beitrag von jhaeberle »

Jetzt dachte ich, WakeUp geht nie auf false - von wegen! Hier gehen beide WakeUp-Logiken auch auf falsch. Und da ich false ebenfalls mappen muss, fangen die das fahren an… :?:
TWS 3500XL, ID: 1409 (VPN offen, Reboot nach Rücksprache)

ms20de
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 1267
Registriert: Sa Aug 11, 2018 9:14 pm
Hat sich bedankt: 358 Mal
Danksagung erhalten: 696 Mal

#3

Beitrag von ms20de »

Hallo Jochen,

wahrscheinlich ist das Problem, dass der Wake-Up-Baustein um Mitternacht zurückgesetzt wird, wenn der neue Zeitwert für den Morgen kommt.
Dein Mapping am Ausgang von Wakeup sendet dann den Wert für False und die Rollladen gehen auf.

Bei mir passiert das nicht, weil ich dem Ausgang von Wakeup auf einen Timer2 sende, welcher nur bei True abläuft.

Vielleicht kann dir jemand hier schnell eine Custom Logik mit Wakeup und Sendexplict zusammenbauen, weil das würde dein Problem lösen.
Also nur einen Wert bei Wahr ausgeben, wenn der Wakeup ausgelöst hat und andernfalls nichts tun.

Viele Grüße,
Matthias
Zuletzt geändert von ms20de am Di Mär 04, 2025 3:32 pm, insgesamt 1-mal geändert.
[ Timberwolf Entwicklung ]

TWS 2400 ID:102 VPN offen, Reboot auf Nachfrage
TWS 3500 ID:695 VPN offen, Bitte kein Reboot ohne Absprache

Ersteller
jhaeberle
Reactions:
Beiträge: 208
Registriert: Do Aug 24, 2023 11:07 am
Wohnort: Raum Augsburg
Hat sich bedankt: 86 Mal
Danksagung erhalten: 40 Mal

#4

Beitrag von jhaeberle »

Hallo Matthias,

okay, das ist jetzt jedenfalls die Erkenntnis, dass Wakeup bei Berechnung auch ein false auslöst. Das heißt auf jeden Fall, dass ich am Eingang auf change stellen muss, dabei kommt es aber immer noch zu einer Rechnung und einem false… aber mit den gesammelten Erkenntnissen habe ich was im Forum gefunden, um das ungewollte False zu verhindern
Zuletzt geändert von jhaeberle am Di Mär 04, 2025 3:43 pm, insgesamt 1-mal geändert.
TWS 3500XL, ID: 1409 (VPN offen, Reboot nach Rücksprache)

Hammer
Reactions:
Beiträge: 179
Registriert: Mo Sep 10, 2018 9:17 am
Hat sich bedankt: 88 Mal
Danksagung erhalten: 86 Mal

#5

Beitrag von Hammer »

Hallo Jochen,

was genau möchtest du mit diesen Logiken machen? Soll zu der Zeit am morgen ein true, bzw. zu der Zeit Abends ein true gesendet werden?
Ich verwende für die Tag Nacht Funktion die
Logik - Zeitfenster

Hiermit lässt sich ein Zeitfenster definieren, mit diesem Wechsel ich zwischen false/true (Tage/Nacht) oder inventiert, wie gewünscht eben.
Besteht Interesse an der angepassten Logik?

Grüße
Stefan
Timberwolf Server 2500 ID:210 +PBM; VPN offen & Reboot nach Rücksprache.

Wiregate von 2011, ab 2024 in Rente

Ersteller
jhaeberle
Reactions:
Beiträge: 208
Registriert: Do Aug 24, 2023 11:07 am
Wohnort: Raum Augsburg
Hat sich bedankt: 86 Mal
Danksagung erhalten: 40 Mal

#6

Beitrag von jhaeberle »

Hallo Stefan,

danke für den Tipp. Aktuell ist es so, dass am Ende morgens 0% an die Rollläden-Aktoren geht und abends 100%. Aber letztlich geht es darum, dass die Rollläden nach Sonnenuntergang zu und morgens nach Sonnenaufgang wieder aufgehen. Dann soll die Beschattung übernehmen.
Die Schlafzimmer sind übrigens aussen vor, deshalb habe ich nicht das Problem, dass im Sommer um 5 die Rollläden hoch fahren…

Letztlich habe ich aktuell zwei Routen. Eine für abends, wo True auf 100% gemapped wird und eine für morgens, da wird True auf 0% umgesetzt.

Aber ja, an deinem Ansatz bin ich interessiert. Das wäre die nächste Aufgabe geworden, alles in eine Logik. Aber man will ja auch was lernen ;-)
TWS 3500XL, ID: 1409 (VPN offen, Reboot nach Rücksprache)

Hammer
Reactions:
Beiträge: 179
Registriert: Mo Sep 10, 2018 9:17 am
Hat sich bedankt: 88 Mal
Danksagung erhalten: 86 Mal

#7

Beitrag von Hammer »

Hallo Jochen,

habe meine Logik an deine Aufgabe angepasst:

Code: Alles auswählen

/**=====================================================================
2020-12-11   	Unkelbach S.

2022-12-11   Uhrzeiten und Beschriftungen angepasst.
2025-03-04  Fahrbefehl und Zeitverschiebung

======================================================================*/

// https://forum.timberwolf.io/app.php/kb/viewarticle?a=115#Multiplexer

/**
 * Zeitfenster
 * Der Logikbaustein sendet TRUE, wenn die aktelle Uhrzeit zwischen den beiden angegebenen Zeiten liegt.
 * Davor und danach wird FALSE gesendet.
 * Über Zyklus [s] kann gesteuert werden, wie oft die Prüfung stattfindet und der Ausgangswert ggfs.
 * aktualisiert wird.
 * Über "Zyklischer Sendeinterval [s]" kann eingestellt werden, ob der Ausgang zyklisch geschrieben werden soll. Wenn nein = 0, niedriges Werte sollten z.B. zur Schonung des KNX-Bus vermieden werden. 900 = 15 Minuten und stellt vermutlich in den meisten Fällen ein ausreichende Minumum dar. Der Wert 3600 sendet den Ausgang folglich 1x je Stunde und zusätzlich bei Änderung.
 * 
 * Nutzungsrechts: Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL 
 * ("Timberwolf Open Logikblock License") die unter https://wrgt.news/TOLL zum Download zur Verfügung steht."
 * 
 * Erstellt am 12.08.2020 von Markus Großmann
 * 
 * ChangeLog:
 * V1.2 (13.08.2020): optionaler zyklischer Sendetakt, output parameter t statt c (edit Robosoc)
 * V1.1 (13.08.2020): Ausgang wird nun sekundengenau geschaltet
 * V1.0 (13.08.2020): Initial Release
 */

{
  "_Meta": { // Optional
    "Description": "Zeitfenster",
    "Version": "1.2",
    "Icon": "" // format: "data:image/svg+xml;base64,ENCODED_FILE"
  },
  "Input": [ 
	 ["Freigabe","gibt die Logik frei", "$I_Freigabe", "c"]
	,["Morgendämmerung","Zeitpunkt der Morgendämmerung", "$I_Morgen", "c"]  // Zeitpunkt errechnet seit 01.01.1970 (Astro Baustein)
	,["Abenddämmerung","Zeitpunkt der Abenddämmerung", "$I_Abend", "c"]  // Zeitpunkt errechnet seit 01.01.1970 (Astro Baustein)
	,["Zeitveschiebung","Verschiebung der Morgen und Abend Zeit in Sek.", "$I_Zeitverschiebung", "c"] 
    ],
  "Output": [
       ["Fahrbefehl","Fahrbefehl an die Rolladen", "$O_Output", "c"]  // Gruppenadresse 
     ,["Zeitfenster 1 aktiv","Aktuelle Zeit ist im Zeitfenster 1", "$CurrIsInInterval", "c"]   // Zeitfenster
	 ,["Debug","Aktuelle Zeit ist im Zeitfenster 1", "$M_Select", "c"]
	 ,["Debug Time","Aktuelle Zeit ist im Zeitfenster 1", "$ltime", "c"] 
	 ,["Debug TimeCurrent","Aktuelle Zeit ist im Zeitfenster 1", "$SecondsTillNext", "c"] 
	 ,["M_Morgen","Aktuelle Zeit ist im Zeitfenster 1", "$M_Morgen", "c"]
     ,["M_Abend","Aktuelle Zeit ist im Zeitfenster 1", "$M_Abend", "c"]
  ],
  "Level": [
	 ["$I_Freigabe","bool",true]
	,["$Const0","integer",0]
	,["$Const100","integer",100]
	,["$Const60","integer",60]
	,["$Const86400", "integer", 86400]
	,["$ConstTRUE","bool", true]
	,["$CurrIsAfterFrom","bool", false]
	,["$CurrIsAfterTo","bool", false]
	,["$CurrIsInInterval","bool", false]
	,["$From_GT_To", "bool", false]
	,["$h_curr","integer", 0]
	,["$h_from","integer", 0]
	,["$h_to","integer", 0]
	,["$m_curr","integer", 0]
	,["$m_from","integer", 0]
	,["$m_to","integer", 0]
	,["$Period","integer",60]
	,["$s_curr","integer", 0]
	,["$s_from","integer", 0]
	,["$s_to","integer", 0]
	,["$SecondsTillFrom","integer",0]
	,["$SecondsTillFrom_GT_Zero", "bool", false]
	,["$SecondsTillNext","integer",1]
	,["$SecondsTillTo","integer",0]
	,["$SecondsTillTo_GT_Zero", "bool", false]
	,["$Const1","integer",1]
	,["$TimeFrom","integer",0]
	,["$TimeTo","integer",0]
	,["$Const2","integer",2]
	,["$I_Abend", "integer", 10]

	,["$I_Morgen", "integer", 0] 
	,["$I_Zeitverschiebung", "integer", 1200]
	,["$M_Abend", "integer", 0]
	,["$M_Morgen", "integer", 0]
	,["$M_Output", "bool", false]
	,["$M_Select", "integer", 0]
	,["$O_Output", "integer", 0]
	,["$ltime","integer", 0]
  ],
  "Module": [
		["Break", ["-$I_Freigabe"]] // Logik freigeben
  
	  
	  // Subtraktion der Sonnen Untergangszeit
	  ,["Polynomial", "$Const1", "$M_Abend",["$I_Abend", "-$I_Zeitverschiebung"]]  //Sonnen Untergang Zeitpunkt abzüglich der Verschiebung
	  
	  // Addition der Sonnen Aufgangszeit
	  ,["Polynomial", "$Const1", "$M_Morgen",["$I_Morgen", "$I_Zeitverschiebung"]] //Sonnen Aufgang Zeitpunkt zuzüglich der Verschiebung
	  
      // Aktuelle Uhrzeit
      ,["Localtime",0,"$ltime","$s_curr","$m_curr","$h_curr",0,0,0,0,0,0],
  
      // Wie lange noch bis Zeit von?
      ["Polynomial", "$Const1", "$SecondsTillFrom", ["$M_Morgen", "-$ltime"]],
      ["Comparator", "$Const1", "$SecondsTillFrom_GT_Zero", "$SecondsTillFrom"],
      ["Polynomial", "$SecondsTillFrom_GT_Zero", "$SecondsTillFrom", ["$SecondsTillFrom", "$Const86400"]],
      // Wie lange noch bis Zeit bis?
      ["Polynomial", "$Const1", "$SecondsTillTo", ["$M_Abend", "-$ltime"]],
      ["Comparator", "$Const1", "$SecondsTillTo_GT_Zero", "$SecondsTillTo"],
      ["Polynomial", "$SecondsTillTo_GT_Zero", "$SecondsTillTo", ["$SecondsTillTo", "$Const86400"]],
      // Was ist früher?
      ["Comparator", "$SecondsTillFrom" , "$From_GT_To" , "$SecondsTillTo" ],
      ["Multiplexer", ["$SecondsTillFrom", "$SecondsTillTo"],"$SecondsTillNext", "$From_GT_To"],
	  
	  // Timer setzen
      ["Clocksignal","$ConstTRUE",0,"$SecondsTillNext"],
	  
	  // Ergebniswert berechnen
      ["Comparator", "$M_Morgen" , "$CurrIsAfterFrom" , "$ltime" ],
      ["Comparator", "$M_Abend" , "$CurrIsAfterTo" , "$ltime" ],
      ["And", ["-$CurrIsAfterFrom", "$CurrIsAfterTo"], "$CurrIsInInterval"]	  
	   
	   // Verarbeitung des Zeitfenster in Fahrbefehle
	  ,["Latch","$Const1","$M_Select","-$CurrIsInInterval",1]   // Bei steigender Flanke wird der selectore auf 1 gesetzt.
	  ,["Latch","$Const2","$M_Select","$CurrIsInInterval",1]   //  Bei steigender Flanke wird der selectore auf 2 gesetzt.
	  ,["Multiplexer",["$M_Output","$Const100","$Const0"],"$O_Output","$M_Select"]   // In der Nacht wird 100 gesendet und am Tag 0%
	  
  ]
}
Du kannst noch eine Zeitverschiebung angeben und die Logik komplett sperren.

Grüße
Stefan
Timberwolf Server 2500 ID:210 +PBM; VPN offen & Reboot nach Rücksprache.

Wiregate von 2011, ab 2024 in Rente
Antworten

Zurück zu „Logikengine & Logik-Editor“