Neue Insider Version 1 zur V 4.5 verfügbar

NEU! Dynamische Akzentfarben in der VISU per Objekt steuerbar
NEU! Seite wechseln sperren per Objekt
NEU! Neue Symbole in VISU und Logik Manager
NEU! Putzmodus im VISU Client
NEU! Umfangreich verbesserter Logik Manager


Alle Informationen hier: https://elabnet.atlassian.net/wiki/x/AYD5ng

[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: 443
Registriert: Fr Apr 19, 2019 4:37 pm
Wohnort: Leipzig
Hat sich bedankt: 72 Mal
Danksagung erhalten: 201 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, VPN offen, Reboot erlaubt
Was wird genutzt? -> TWS, KNX, 1-wire, MQTT, MODBUS, Http-REST-API, IFTTT, Enocean, Amazon Alexa

gbglace
Reactions:
Beiträge: 3835
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1350 Mal
Danksagung erhalten: 1793 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: 443
Registriert: Fr Apr 19, 2019 4:37 pm
Wohnort: Leipzig
Hat sich bedankt: 72 Mal
Danksagung erhalten: 201 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, VPN offen, Reboot erlaubt
Was wird genutzt? -> TWS, KNX, 1-wire, MQTT, MODBUS, Http-REST-API, IFTTT, Enocean, Amazon Alexa
Antworten

Zurück zu „Zusätzliche Logikbausteine“