NEU! UPGRADE IP 10 verfügbar!
Optimierte Darstellung von VISU Editor und VISU Client - sowie viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/8HzePCm3

Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Ab sofort kann jeder die neue VISU & IFTTT testen. Info: viewtopic.php?f=8&t=5074

Release V 4 am 15. Juni 2024
Es gibt nun einen fixen Termin. Info: viewtopic.php?f=8&t=5117

NEU! Ausführliches Video Tutorial zur IP 10
Jetzt werden alle Fragen beantwortet. Das Video: https://youtu.be/_El-zaC2Rrs

[Gelöst] Welchen Baustein für Zeitschaltung

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

DeLaDope
Reactions:
Beiträge: 246
Registriert: Mo Sep 03, 2018 2:26 pm
Hat sich bedankt: 124 Mal
Danksagung erhalten: 97 Mal

#21

Beitrag von DeLaDope »

Da sollten man dringend was machen. Das ist aus meiner Sicht die absolute Basis. Evtl kann jemand eine solche Custom Logik in die Datenbank hängen oder in der KB verlinken. Wäre Top.

VG Tobias
TWS 2500 ID:134 + 2 x PBM ID:833/789, VPN offen, Reboot nach Rücksprache

Robert_Mini
Reactions:
Beiträge: 3744
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1171 Mal
Danksagung erhalten: 2076 Mal

#22

Beitrag von Robert_Mini »

Ich denke das @S. Kolbinger hier mitliest, darum mache ich mal einen Vorschlag dazu:
Man kann ja die Trigger bereits perfekt setzen und bekommt damit in Kombination mit einem UND eine Zeitschaltuhr für Ein oder Aus.

Den Wunsch nach einer universellen ZSU könnte man relativ schnell erreichen, wenn man zusätzlich ergänzte Trigger-Objekt in der Logik als Level "greifen" könnte. Das geht meines Wissens im Moment nicht, wäre aber manchmal praktisch.

Damit könnte man dann einfach mit einem Multiplexer zwischen ein und aus unterscheiden und dann ein 0 oder 1 auf den Ausgang legen, der ggf. noch ein Mapping bekommen kann - wäre eine coole Sache.

Vielleicht lässt sich damit noch zum Release eine erste massentaugliche ZSU ergänzen.

lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

S. Kolbinger
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 559 Mal

#23

Beitrag von S. Kolbinger »

Hallo Tobias,
DeLaDope hat geschrieben: So Sep 01, 2019 11:05 am Da sollten man dringend was machen. Das ist aus meiner Sicht die absolute Basis. Evtl kann jemand eine solche Custom Logik in die Datenbank hängen oder in der KB verlinken. Wäre Top.
Die Logic-Konfiguration für Zeitschaltuhr an sich steht schon:

Code: Alles auswählen

{
    "Level": [
        ["$Start","bool",true],
        ["$CronStringEin","string","0 * * * * *"],
        ["$CronStringAus","string","1 * * * * *"],
        ["$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"]
    ]
}
Was noch fehlt, ist die Unterstützung von String-Variablen im Logik-Editor und speziell die Eingabemaske für den Cron-String, die es schon für die Trigger gibt, auch auf String-Variable anzuwenden.

Aber wer sich ein wenig mit der Cron-Syntax auskennt, kann die obige Custom-Logik (die so zu jeder Minute eine Sekunde lang an ist) nach Wunsch anpassen.

Achtung: Wir verwenden eine um Sekunden erweiterte Cron-Syntax.

Tipp: Eine einfache Logik (z.B. UND) temporär anlegen. Den Trigger Zeit/Zeitpunkt mit Hilfe der Eingabemaske die gewünschten Zeit einstellen. Den Button</> "Generate LE Code" klicken und im unteren Fenster nach dem Cron-String suchen. Ist eigentlich nicht zu übersehen. Diesen String so kopieren und damit "0 * * * * *" bzw. "1 * * * * *" ersetzen.
Gruß,
Stefan K.

DeLaDope
Reactions:
Beiträge: 246
Registriert: Mo Sep 03, 2018 2:26 pm
Hat sich bedankt: 124 Mal
Danksagung erhalten: 97 Mal

#24

Beitrag von DeLaDope »

Ok. Probiere ich aus. THX

VG
TWS 2500 ID:134 + 2 x PBM ID:833/789, VPN offen, Reboot nach Rücksprache

dreanaught
Reactions:
Beiträge: 40
Registriert: Fr Mai 24, 2019 3:22 pm
Hat sich bedankt: 21 Mal
Danksagung erhalten: 42 Mal

#25

Beitrag von dreanaught »

Hallo,
wenn ich mich hier einklinken darf.
Ein X-OR mit Ausgang auf (T)imer und Eingang auf (U)pdate und Default-Wert "false", sowie entsprechen Trigger-Definitionen(hier hat mir der Time-Trigger sehr gefallen) dürfte auch funktionieren.
Dafür muss der Ausgang auf den Eingang gemappt werden.
Das geht im Logikeditor leider nicht. Im Objekteditor aber schon :lol:
(Das selbe Objekt in einem anderen Technologiestack z.B. KNX geht wahrscheinlich auch ohne Umweg über den Objekteditor, dass habe ich noch nicht getestet)

Die Idee dahinter ist mit einer Zeitschaltuhr etwas aus/ein schalten zu wollen.
Der X-OR mit default "false" schaltet bei dem ersten Trigger ein(sendet ein true) und bei dem folgenden Trigger wieder aus(sendet ein false).
Mit der Time-Maske im Trigger kann man schön wie bei einer Baumarkt-Zeitschaltuhr die Tage und Uhrzeit auswählen bei der geschaltet werden soll.

Man beachte, befindet man sich zum Zeitpunkt des speicherns der Logik innerhalb der An-Periode muss der default auf True sein, damit beim nächsten Trigger der Wert "false" gesendet wird.


Grüße,
Markus
TWS 2600 ID:396 (jetzt ist er da :dance: ), VPN offen, Reboot erlaubt, aktuell noch nicht im Haus, sondern in der Wohnung(d.h. zeitweise nicht im Netz)

DeLaDope
Reactions:
Beiträge: 246
Registriert: Mo Sep 03, 2018 2:26 pm
Hat sich bedankt: 124 Mal
Danksagung erhalten: 97 Mal

#26

Beitrag von DeLaDope »

Da steige ich schon nach der zweiten Zeile aus. Danke aber für den Lösungsansatz. 👍Finde das aber alles viel zu kompliziert für solch ein profanes Problemchen.... Das sollte die TW Logik besser können 😉

LG
TWS 2500 ID:134 + 2 x PBM ID:833/789, VPN offen, Reboot nach Rücksprache

DeLaDope
Reactions:
Beiträge: 246
Registriert: Mo Sep 03, 2018 2:26 pm
Hat sich bedankt: 124 Mal
Danksagung erhalten: 97 Mal

#27

Beitrag von DeLaDope »

S. Kolbinger hat geschrieben: So Sep 01, 2019 2:48 pm Hallo Tobias,

....

Tipp: Eine einfache Logik (z.B. UND) temporär anlegen. Den Trigger Zeit/Zeitpunkt mit Hilfe der Eingabemaske die gewünschten Zeit einstellen. Den Button</> "Generate LE Code" klicken und im unteren Fenster nach dem Cron-String suchen. Ist eigentlich nicht zu übersehen. Diesen String so kopieren und damit "0 * * * * *" bzw. "1 * * * * *" ersetzen.
Hallot Stefan,

ich checks nicht. Wenn ich mir Deine Costum Logik erzeuge erhalte ich folgendes:
Bild

Da habe ich nur einen Eingang. Entweder für an oder aus. Wo und wie soll ich da jetzt etwas aus der Und Logik mit Zeittrigger reinkopieren?
Möchte einfach eine Logik mit einem An- und einem Aus- Eingang. Beide über einen Uhrzeit / Wochentag gesteuert. Kann das mal jemand schnell anlegen?
Gibt es eigentlich irgendwo einen Leitfaden, wie man eine eigene Costum Logik erzeugt? Bin etwas frustriert.... :(

Danke!
LG Tobias
TWS 2500 ID:134 + 2 x PBM ID:833/789, VPN offen, Reboot nach Rücksprache

S. Kolbinger
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 559 Mal

#28

Beitrag von S. Kolbinger »

Gib mir mal ein Beispiel für die Ein- und Ausschaltzeit.
Gruß,
Stefan K.

DeLaDope
Reactions:
Beiträge: 246
Registriert: Mo Sep 03, 2018 2:26 pm
Hat sich bedankt: 124 Mal
Danksagung erhalten: 97 Mal

#29

Beitrag von DeLaDope »

1. Beispiel:
Jeder Wochentag
Ein 17:00Uhr, Aus 22:00Uhr

2.Beispiel:
Nur Montag - Freitag
Ein 08:00Uhr - Aus 17:00Uhr

Danke Stefan!
TWS 2500 ID:134 + 2 x PBM ID:833/789, VPN offen, Reboot nach Rücksprache

S. Kolbinger
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 559 Mal

#30

Beitrag von S. Kolbinger »

Hallo Tobias,

hier der vorgeschlagene Workaround, bis wir die ZSU-Eingabemaske fertig haben.

In einer temporären Logik kann man beim Trigger "Zeit / Zeitpunkt" die Zeiten über die Maske einstellen:
Bild

Anschließend auf "Generate LE Code" </> klicken und im Code den Cron-String entdecken:

Bild

Nachdem man das für alle vier Zeiten (2 Beispiele mit je einer Ein- und einer Ausschaltzeit) gemacht hat,
kann man das in die Custom-Logiken (je eine pro Beispiel) eintragen.
Das sieht dann so aus.

Custom-Logik für Beispiel 1:

Code: Alles auswählen

{
    "Level": [
        ["$Start","bool",true],
        ["$CronStringEin","string","0 00 17 * * 0,1,2,3,4,5,6"],
        ["$CronStringAus","string","0 00 22 * * 0,1,2,3,4,5,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 Eingang "Start/Stop" ist dafür gedacht, die Zeitschaltuhr von außen scharf zu schalten.
Soll die ZSU immer aktiv sein, kannst du den Eingang "Start/Stop" als Parameter auf True setzen:

Bild

Custom-Logik für Beispiel 2:

Code: Alles auswählen

{
    "Level": [
        ["$Start","bool",true],
        ["$CronStringEin","string","0 00 8 * * 1,2,3,4,5"],
        ["$CronStringAus","string","0 00 17 * * 1,2,3,4,5"],
        ["$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"]
    ]
}
Zuletzt geändert von S. Kolbinger am Mo Sep 02, 2019 11:06 am, insgesamt 1-mal geändert.
Gruß,
Stefan K.
Antworten

Zurück zu „Logikengine & Logik-Editor“