NEUHEIT! Version "V 1.6 Insider Preview 2" verfügbar. Link viewtopic.php?f=8&t=2134!

[Frage] Verständnisfrage Eingang Aktualisierung

Informationen und Diskussionen über Logik-Engine und Logik-Editor

Ersteller
Piranha
Reactions:
Beiträge: 13
Registriert: Sa Jan 04, 2020 10:23 pm

Verständnisfrage Eingang Aktualisierung

#1

Beitrag von Piranha »

Hallo Zusammen,

ich arbeite mich gerade in die Logik-Engin ein und komme Stück für Stück näher. Nun aber eine Anfänger-/Verständnisfrage:

Ich habe eine Zeitschaltuhr, die das Licht im Flur ab einer bestimmten Uhrzeit gedimmt einschalten soll, wenn der Präsenzmelder ausgelöst hat. Mein Problem ist, das die Logik über den Multiplexer die Werte für Präsenz erst setzt, wenn der Cron Timer die Uhrzeit erreicht hat. Der Multiplexer wird leider nicht ausgelöst, wenn sich der Input ändert. Was mache ich hier falsch?

Code: Alles auswählen


{
    "Level": [
        ["$StartZeit","string","0 * * * * *"],
        ["$StopZeit","string","30 * * * * *"],
        ["$Set","bool",false],
        ["$Res","bool",false],
        ["$Stat","int",0],
        ["$StatusOut","float",0.0],         
        ["$O_Night","float",0.0],
        ["$O_NightPresence","float",5.0],        
        ["$O_Day","float",0.0],
        ["$O_DayPresence","float",100.0],           
        ["$KonstFalse","bool",false],
        ["$I_Presence","bool",false],      
        ["$VAR<Inhibit?>", "bool", false]
    ],
    "Module": [
        ["Break",["$VAR<Inhibit?>"] ],
        ["Cron","-$KonstFalse","$Set",0,"$StartZeit"],
        ["Cron","-$KonstFalse","$Res",0,"$StopZeit"],
        ["BinaryMultiplexer",["$Set","$Res","$I_Presence"],"$Stat"],
        ["Multiplexer",["$StatusOut","$O_Day","$O_Night","$StatusOut","$StatusOut","$O_DayPresence","$O_NightPresence","$StatusOut"],"$StatusOut","$Stat"]
    ],
    "Input": [
    	["Präsenz","Bewegungserkennung","$I_Presence","c"]
    ],
    "Output": [
        ["Status","Ausgang der Zeitschaltuhr","$StatusOut","c"]
        //Debug
        //["_$Stat","$Stat","$Stat","c"]      
    ]
}
Zuletzt geändert von Piranha am Fr Mai 22, 2020 11:32 pm, insgesamt 1-mal geändert.
TWS 975 ID:433, VPN offen, Reboot auf nachfrage


Robosoc
Reactions:
Beiträge: 714
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 262 Mal
Danksagung erhalten: 292 Mal

#2

Beitrag von Robosoc »

Also auf den ersten Blick scheint mir erstmal alles korrekt. Kannst du noch beschreiben, in welchem Fällen / Zuständen Du eine Änderung getestet hast?

Ich könnte mir vorstellen, dass Dein Problem damit zusammenhängt, dass Du in vier Zuständen den Ausgang nicht änderst (multiplexer bleibt bei $StatusOut) und du den Ausgang aber mit c eingestellt hast... Senden nur bei Änderung...
dann würde es reichen den Ausgang auf A zu stellen... (oder wenigstens wegen der cron-timer auf ct)

Könnte mir auch vorstellen, dass bei Deinem Problem auf die Grafana Ansicht aus dem Dokmodus helfen könnte.
Zuletzt geändert von Robosoc am Sa Mai 23, 2020 8:15 am, insgesamt 1-mal geändert.
VG, Sven - TWS 950Q ID:335, VPN offen, Reboot OK


Ersteller
Piranha
Reactions:
Beiträge: 13
Registriert: Sa Jan 04, 2020 10:23 pm

#3

Beitrag von Piranha »

Hi Sven,

der Status des Multiplexer scheint richtig gemapped zu sein. Sobald die Zeitschaltuhr umschaltet (immer zur vollen oder halben Min), wird am Ausgang auch der richtige Status (Integer) angezeigt. Lediglich dazwischen wenn nur der Präsenzmelder eine Bewegung (zwischen der zeitlichen Umschaltung) auslöst, bewirkt das kein Auslösen der Logik und somit der Neuberechnung des Status. Der Status wird dann erst richtig aktualisiert, wenn die Zeit wieder umstellt.

Habe auch schon probiert den Ausgang auf CT zu stellen. Leider mit dem gleichen Effekt.
TWS 975 ID:433, VPN offen, Reboot auf nachfrage


Robert_Mini
Reactions:
Beiträge: 2262
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 562 Mal
Danksagung erhalten: 1024 Mal

#4

Beitrag von Robert_Mini »

Hallo Piranha!

Ich sehe da folgende Probleme:

1) dein Cron String: (30 * * * * *) sendet alle 30s. Für einen Zeitpunkt fehlen da zumindest Min und Std, dann enstpricht das täglich zum Zeitpunkt x.

2) Sendeoptionen: ich würde da mit "a" für always beginnen.

3) Dein Multiplexer:
Ich verstehe das Set/Res als Teil eines FlipFlops. Bin aber nicht sicher, ob sich das mit dem Präsenzeingang kombinieren lässt.

Vorschlag:
Ich würde Set/Res als reines Flip-Flop betreiben, das den Zustand mit dem Cron-Timer wechselt => neue Variable: $Nacht
Zusätzliches AND mit $Nacht und $Präsenz => EIN, sonst aus.

lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / Wiregate-Fan


Ersteller
Piranha
Reactions:
Beiträge: 13
Registriert: Sa Jan 04, 2020 10:23 pm

#5

Beitrag von Piranha »

Hallo Robert,

vielen Dank für deine Antwort. Bin noch nicht ganz sicher wie du das meinst bzw. wie ich es umsetzen kann. Sorry, bin noch ziemlich am Anfang mit dem Verständnis für die Logik-Engine.

1.) Das ist aktuell für Testzwecke noch beabsichtig. Wird dann in der finalen Version richtig geändert

2.) Habe ich probiert. Hat leider auch nicht geholfen.

3. + Vorschlag) Ich möchte abhängig vom Status Tag/Nacht + Präsenz einen unterschiedlichen Dimmwert (%) bzw. float übertragen. Wie realisiere ich das am besten mit deinem Vorschlag?

LG
Alex
TWS 975 ID:433, VPN offen, Reboot auf nachfrage

Benutzeravatar

Eraser
Reactions:
Beiträge: 288
Registriert: So Aug 12, 2018 1:51 pm
Wohnort: Amstetten, Österreich
Hat sich bedankt: 111 Mal
Danksagung erhalten: 136 Mal

#6

Beitrag von Eraser »

Ich habe diese Funktion bei mir auch in Verwendung.
Ab 22:00 wird das Licht per PM nur mehr auf 15% eingeschaltet, ab 06:00 wieder mit 100%, sofern die Mindesthelligkeit im Raum unterschritten ist.


Hier der Ausschnitt aus dem Logik-Editor.
1.PNG

Und hier die Custom-Logik dahinter.

Code: Alles auswählen

{
    "Level": [
        ["$Start","bool",true],
        ["$CronStringEin","string","0 0 22 * * *"],
        ["$CronStringAus","string","0 0 6 * * *"],
        ["$Ausgang","bool",false],
        ["$Ein","bool",false],
        ["$Aus","bool",false],
        ["$Status","integer",0],
        ["$KonstFalse","bool",false],
        ["$VAR<Inhibit?>", "bool", false]
    ],
    "Module": [
        ["Break", ["$VAR<Inhibit?>"]],
        ["Cron","$Start","$Ein",0,"$CronStringEin"],
        ["Cron","$Start","$Aus",0,"$CronStringAus"],
        ["BinaryMultiplexer",["$Ein","$Aus"],"$Status"],
        ["Multiplexer",["$Ausgang","-$KonstFalse","$KonstFalse"],"$Ausgang","$Status"]
    ],
    "Input": [
        ["Start/Stop", "Aktiviert/Deaktiviert die Zeitschaltuhr", "$Start", "c"],
        ["Inhibit", "INHIBIT", "$VAR<Inhibit?>", "u"]
    ],
    "Output": [
        ["Out","Schaltuhr aktiv","$Ausgang","c"]
    ]
}
Der Ausgangswert geht dann bei meinen Dimmern auf einen seperaten Eingang für die maximale Helligkeit, mit der der Dimmer einschalten soll.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Eraser am Sa Mai 23, 2020 12:42 pm, insgesamt 1-mal geändert.
mfg
Wolfgang

Timberwolf 2500 #151 / VPN offen / Reboot nach Rücksprache
+ PBM #938


Robert_Mini
Reactions:
Beiträge: 2262
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 562 Mal
Danksagung erhalten: 1024 Mal

#7

Beitrag von Robert_Mini »

Hallo Piranha!

Bevor ich hier was vorbereite: kannst du bestätigen, wie das funktionieren soll?
Ich hätte verstanden:
- Präsenz schickt ein / aus
- Logik sende bei Ein am Tag/Dämmerung 100% und bei Nacht zB 30%
- Logik sende aus, wenn Präsenzmelder aus schickt

Richtig oder schickt der Präsenz parallel direkt auf Aktor, so dass die Logik "nachtriggert"?

lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / Wiregate-Fan


Ersteller
Piranha
Reactions:
Beiträge: 13
Registriert: Sa Jan 04, 2020 10:23 pm

#8

Beitrag von Piranha »

Robert_Mini hat geschrieben:
Sa Mai 23, 2020 1:33 pm
- Präsenz schickt ein / aus
- Logik sende bei Ein am Tag/Dämmerung 100% und bei Nacht zB 30%
- Logik sende aus, wenn Präsenzmelder aus schickt
Hallo Robert und Wolfgang,

genau und richtig erfasst.

@Wolfgang: Super, das wäre für mich auch ok. Dann spare ich die Präsenzerfassung.

Grüße

Alex
Zuletzt geändert von Piranha am Sa Mai 23, 2020 1:36 pm, insgesamt 1-mal geändert.
TWS 975 ID:433, VPN offen, Reboot auf nachfrage

Benutzeravatar

Eraser
Reactions:
Beiträge: 288
Registriert: So Aug 12, 2018 1:51 pm
Wohnort: Amstetten, Österreich
Hat sich bedankt: 111 Mal
Danksagung erhalten: 136 Mal

#9

Beitrag von Eraser »

Vorteil davon ist, dass die Funktion von PM und Licht schalten auf KNX bleibt und nur die Komfort-Funktion über den Logikeditor läuft.
mfg
Wolfgang

Timberwolf 2500 #151 / VPN offen / Reboot nach Rücksprache
+ PBM #938


Robert_Mini
Reactions:
Beiträge: 2262
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 562 Mal
Danksagung erhalten: 1024 Mal

#10

Beitrag von Robert_Mini »

Hallo Piranha!

Hier ein Vorschlag, wenn du das wie oben beschrieben lösen willst.
Das enable muss fix auf true gesetzt werden, wenn man es nicht verwendet.

Hab's nicht getestet, sollte aber funktionieren.

lg
Robert

Code: Alles auswählen

{
    "Level": [
        ["$Start","bool",true],
        ["$CronStringEin","string","0 0 22 * * *"],
        ["$CronStringAus","string","0 0 6 * * *"],
        ["$Ausgang","bool",false],
        ["$Ein","bool",false],
        ["$Aus","bool",false],
        ["$Status","integer",0],
        ["$KonstFalse","bool",false],
        ["$Konst0","float",0.0],
        ["$VAR<Inhibit?>", "bool", false],
        ["$Praesenz","bool",false],
        ["$Output_Dim","float",0.0],
        ["$DimmWert1","float",0.0],
        ["$DimmWert2","float",0.0],
        ["$DimmWert_akt","float",0.0]  
    ],
    "Module": [
        ["Break", ["$VAR<Inhibit?>"]],
        ["Cron","$Start","$Ein",0,"$CronStringEin"],
        ["Cron","$Start","$Aus",0,"$CronStringAus"],
        ["BinaryMultiplexer",["$Ein","$Aus"],"$Status"],
        // Status Zeitfenster
        ["Multiplexer",["$Ausgang","-$KonstFalse","$KonstFalse"],"$Ausgang","$Status"],
        // Dimmwert festlegen
        ["Multiplexer",["$DimmWert1","$DimmWert2"],"$DimmWert_akt","$Ausgang"],
        // Ausgang abhängig vom Praesenzstatus mit 0 oder Dimmwert beschreiben
        ["Multiplexer",["$Konst0","$DimmWert_akt"],"$Output_Dim","$Praesenz"]
    ],
    "Input": [
        ["Präsenz", "Eingang des Praesenzmelders", "$Praesenz", "c"],
        ["Enable Timer", "Aktiviert/Deaktiviert die Zeitschaltuhr", "$Start", "c"],
        ["Dimmwert Tag", "Dimmwert für Tag/Dämmerung", "$DimmWert1", "c"],
        ["Dimmwert Nacht", "Dimmwert für Nacht", "$DimmWert2", "c"],
        ["Inhibit", "INHIBIT", "$VAR<Inhibit?>", "u"]
    ],
    "Output": [
        ["Licht Schalten","Schaltuhr aktiv","$Output_Dim","a"],
        ["Status Schaltuhr","Schaltuhr aktiv","$Ausgang","c"]
    ]
}
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / Wiregate-Fan

Antworten

Zurück zu „Logikengine & Logik-Editor“