[TIPP] [V4.5 IP1] Custom Logik "Szenencontroller" - hier "Gute-Nacht-Logik" mit boolean und Jalo

Hier stellen Foristen und Kunden Ihre EIGENEN Logikbausteine vor. Diese Logikbausteine stehen jedem im Rahmen der vom Autor eingeräumten / genannten Lizenz zur Verfügung.
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
Benutzeravatar

Ersteller
jensgulow
Reactions:
Beiträge: 475
Registriert: Fr Apr 19, 2019 4:37 pm
Wohnort: Leipzig
Hat sich bedankt: 75 Mal
Danksagung erhalten: 208 Mal

[V4.5 IP1] Custom Logik "Szenencontroller" - hier "Gute-Nacht-Logik" mit boolean und Jalo

#1

Beitrag von jensgulow »

Hallo,
Hier mal ein Baustein von mir für eine "Gute-Nacht-Szene"

Auslösung hier durch ein "false" am $input.

SOFORT nach Auslösen der Logik wird ein "false" an Ausgang "Zentral aus" gesandt (das ist bei mir die KNX-Adresse für den entsprechenden Befehl).

Zusätzlich sollen aber noch ein paar abweichende Aktionen ausgeführt werden - und dies an definierten Zeitpunkten nach dem "Gute-Nacht-Befehl".

Die nachfolgenden Schaltaktionen lassen sich jeweils um x Sekunden verzögern.

Hier aktuell im Code 3 Schaltpunkte für EINschaltereignisse ("true" am Ausgang) und 3 Schaltpunkte für AUSschaltereignisse ("false" am Ausgang).
Zusätzlich ein Ausgang für Jalousien (oder eher Rolläden). Auf diesen wird ein integer-Wert gesandt (festgelegt mit Input "Befahrhöhe Jalo").

....Prinzipiell lässt sich das alles skalieren. Nur eben die entsprtechenden Variablen erweitern.

Danke auch an @Robert_Mini für die Hilfe bei meinem "Hirnknoten" hier: viewtopic.php?f=24&t=5555#p59118

Vielleicht findet es ja jemand hilfreich ;-)

Code: Alles auswählen

/**======================================================================================= 
Gute-Nacht-Szene

-> unmittelbar 0 (false) an Zentral aus  senden, dann

-> geschalten werden einige boolean-Verbraucher sowie ein Ausgang Rollladen

-> Korrekturzeiten sind ausgehend vom Zeitpunkt des Schaltbefehles in Sekunden angegeben 
=========================================================================================*/ 
{ 
    "Level": [ 
	// Input-Level
	["$input","bool",true],
	["$norm","integer",60],
    ["$Korrektur1","int",0],
    ["$Korrektur2","int",0],
    ["$Korrektur3","int",0],
    ["$Korrektur4","int",0],
    ["$Korrektur5","int",0],
    ["$Korrektur6","int",0],
    ["$KorrekturJalo","int",0],
    ["$VAR<Inhibit?>","bool",false],

	// Interne Variablen
	["$true","bool",true],
	["$false","bool",false],
	["$input_trig","bool",false],
    ["$time","int",0],
    ["$utime","int",0],
    ["$Out1","int",0],
    ["$Out2","int",0],
    ["$Out3","int",0],
    ["$Out4","int",0],
    ["$Out5","int",0],
    ["$Out6","int",0],
    ["$OutJalo","int",0],
    ["$Formula","string","X1+X2"],

	// Output-Level
	["$zentral_out","bool",true],
    ["$Result1","bool",false],
    ["$Result2","bool",false],
    ["$Result3","bool",false],
    ["$Result4","bool",true],
    ["$Result5","bool",true],
    ["$Result6","bool",true],
    ["$ResultJalo","bool",false],
    ["$OutValue_Jalo","int",0]
	],

	"Module": [ 

	// Überprüfen, ob $input getriggert wurde
	["Triggered", "$input", "$input_trig" ],
	// Wenn getriggert und $input=0 -> dann $zentral_out auf 0 setzen
	["And" , ["$input_trig","-$input"], "-$zentral_out"],
	// 0 auf $zentral_out senden
    ["SendExplicit","$zentral_out","$zentral_out",2],
    
	// Aktueller Zeitstempel
	["Localtime",0,"$time",0,0,0,0,0,0,0,0,0],

    // nur wenn getriggert wurde $time an $utime durchreichen
    ["Latch","$time","$utime","$input_trig",0],

	// Hier Grundkontrukt für EINSCHALTereignisse
    ["CalcFormula",["$utime","$Korrektur1"], "$Out1", "$Formula"],
	// wakeup zum Zeitpunkt $Out1
	["Wakeup","$Out1","$Result1"],
	// senden aber nur , wenn $Result1 gerade auf true gewechselt hat
	["SendExplicit","$Result1","$Result1",1], // -> sendet 1 (true)
    
    ["CalcFormula",["$utime","$Korrektur2"], "$Out2", "$Formula"],
	["Wakeup","$Out2","$Result2"],
    ["SendExplicit","$Result2","$Result2",1], // -> sendet 1 (true)

    
    ["CalcFormula",["$utime","$Korrektur3"], "$Out3", "$Formula"],
	["Wakeup","$Out3","$Result3"],
    ["SendExplicit","$Result3","$Result3",1], // -> sendet 1 (true)

	// Hier Grundkontrukt für AUSSCHALTereignisse
    ["CalcFormula",["$utime","$Korrektur4"], "$Out4", "$Formula"],
	["Wakeup","$Out4","-$Result4"],
    ["SendExplicit","-$Result4","$Result4",1], // -> sendet 0 (false)


    ["CalcFormula",["$utime","$Korrektur5"], "$Out5", "$Formula"],
	["Wakeup","$Out5","-$Result5"],
    ["SendExplicit","-$Result5","$Result5",1], // -> sendet 0 (false)

    
    ["CalcFormula",["$utime","$Korrektur6"], "$Out6", "$Formula"],
	["Wakeup","$Out6","-$Result6"],
    ["SendExplicit","-$Result6","$Result6",1], // -> sendet 0 (false)

	// Hier Grundkonstrukt für Jalousie
    ["CalcFormula",["$utime","$KorrekturJalo"], "$OutJalo", "$Formula"],
	["Wakeup","$OutJalo","$ResultJalo"],
    // erst dann $norm an $OutValue_Jalo durchreichen
    ["Latch","$norm","$OutValue_Jalo","$ResultJalo",1],
    ["SendExplicit","$ResultJalo","$OutValue_Jalo",1]

	], 

	"Input": [ 
    ["INPUT","Verbunden mit 0/1/2","$input","ai"],    
    ["Korrektur1 EIN","Zeit in sec (positiv oder negativ)","$Korrektur1","u"],
    ["Korrektur2 EIN","Zeit in sec (positiv oder negativ)","$Korrektur2","u"],
    ["Korrektur3 EIN","Zeit in sec (positiv oder negativ)","$Korrektur3","u"],
    ["Korrektur1 AUS","Zeit in sec (positiv oder negativ)","$Korrektur4","u"],
    ["Korrektur2 AUS","Zeit in sec (positiv oder negativ)","$Korrektur5","u"],
    ["Korrektur3 AUS","Zeit in sec (positiv oder negativ)","$Korrektur6","u"],
    ["Korrektur JALO","Zeit in sec (positiv oder negativ)","$KorrekturJalo","u"],
    ["Befahrhöhe JALO","welche Höhe soll angefahren werden? (in%)","$norm","u"],    
    ["Inhibit","INHIBIT","$VAR<Inhibit?>","u"]
	], 

	"Output": [ 
    ["ZENTRAL AUS","KNX-Adresse für Zentral AUS","$zentral_out","x"],
    ["EINSCHALTEN 1","Schaltereignis 1","$Result1","x"],
    ["EINSCHALTEN 2","Schaltereignis 2","$Result2","x"],
    ["EINSCHALTEN 3","Schaltereignis 3","$Result3","x"],
    ["AUSSCHALTEN 1","Schaltereignis 4","$Result4","x"],
    ["AUSSCHALTEN 2","Schaltereignis 5","$Result5","x"],
    ["AUSSCHALTEN 3","Schaltereignis 6","$Result6","x"],
    ["JALO ZU","Jalo WZ auf $norm fahren","$OutValue_Jalo","x"]
	] 
} 
/**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. */ 
Zuletzt geändert von jensgulow am So Nov 24, 2024 12:30 pm, insgesamt 1-mal geändert.
Viele Grüße

Jens

_____________________________________________________________________
TWS 2600#394 , TWS 3500L#1051, TWS 3500XL#1691 VPN offen, Reboot erlaubt
genutzt? -> TWS, KNX, 1-wire, MQTT, MODBUS, Http-REST-API, IFTTT, Enocean, Amazon Alexa

gbglace
Reactions:
Beiträge: 4094
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1417 Mal
Danksagung erhalten: 1908 Mal

#2

Beitrag von gbglace »

Ist ja quasi ein skalierbare Szenencontroller Baustein. Die Verzögerungen sind dabei sehr interessant.
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
Benutzeravatar

Ersteller
jensgulow
Reactions:
Beiträge: 475
Registriert: Fr Apr 19, 2019 4:37 pm
Wohnort: Leipzig
Hat sich bedankt: 75 Mal
Danksagung erhalten: 208 Mal

#3

Beitrag von jensgulow »

Hallo Göran,
Da hast Du Recht..... Habe mal den Titel angepasst ☺️
Viele Grüße

Jens

_____________________________________________________________________
TWS 2600#394 , TWS 3500L#1051, TWS 3500XL#1691 VPN offen, Reboot erlaubt
genutzt? -> TWS, KNX, 1-wire, MQTT, MODBUS, Http-REST-API, IFTTT, Enocean, Amazon Alexa
Antworten

Zurück zu „Zusätzliche Logikbausteine“