Neue Insider Preview 5.2 veröffentlicht

Bild



Neue Funktion: Wetter-Service mit Daten zu Umwelt, Wetter, Warnungen & Alarme

  • Dieser neue Funktion wird über die Timberwolf Cloud zur Verfügung gestellt
  • ElabNET sammelt Daten aus mehreren Quellen in der Timberwolf Cloud
  • Timberwolf Server beziehen diese Daten gebündelt und automatisch aus der Timberwolf Cloud
  • Aktualisiert 24/7, stündlich, einfache Einrichtung
  • Die Daten stehen detailliert im Objektsystem zur Verfügung
Info hier im Forum: viewtopic.php?t=6224


Verbesserung VISU: Autom. Rücksprung zur Startseite (verbessert mit IP 5.2)

Erweiterung Logik: Neuer Sendefilter sowie verbessertes Handling Zeichenketten in der Logik (verbessert mit IP 5.2)

Beschreibung aller Neuerungen und Verbesserungen: https://elabnet.atlassian.net/wiki/x/AQCv1w

AKTION: Wir haben noch viele tolle Updates und 150 Videos (und 800 Wiki Seiten) geplant. Bitte unterstütze uns mit einem Software-Wartungsvertrag, damit wir dieses alles erreichen können. Und damit Dein Server weiterhin Updates, Upgrades und Support erhält. Jetzt in der Aktion schenken wir Dir den Insider Club mit derselben Laufzeit wie der am längsten laufende aktive Wartungsvertrag dazu - bei sofortigem Laufzeitbeginn PLUS den Wetter-Service für ZWEI Jahre. Damit profitierst Du auch von einer vorzeitigen Verlängerung. Alle Infos: https://elabnet.atlassian.net/wiki/x/GQB8z

[Erfahrungsbericht] [V4.5] Logikbaustein Zeitschaltuhr

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
speckenbuettel
Beiträge: 456
Registriert: Mo Jun 27, 2022 9:30 am
Hat sich bedankt: 350 Mal
Danksagung erhalten: 288 Mal

[V4.5] Logikbaustein Zeitschaltuhr

#1

Beitrag von speckenbuettel »

Hallo zsammen,

auf Grund eigenen Bedarfs und dieses Beitrags viewtopic.php?p=63563&hilit=zeitschaltuhr#p63563 haben @eib-eg, seine KI und ich einen universellen Zeitschaltuhr-Logikbaustein entwickelt, der über die Visu bedienbar ist.

Einziges Manko (aus Sicht einiger Benutzer): um Zeiten einzustellen, benötigt man die Cron-Syntax. Diese ist aber im Wiki sehr gut erklärt, sodass man davor keine Scheu zu haben braucht. Die Cron-Syntax ist zudem sehr flexibel.

Hier ist der Logik-Code:

Code: Alles auswählen

{

    "Level": [
        ["$In_CronON", "string,64", ""],
        ["$In_CronOFF", "string,64", ""],
        ["$In_OverrideON", "bool", false],
        ["$In_OverrideOFF", "bool", false],
        ["$In_InhibitON", "bool", false],
        ["$In_InhibitOFF", "bool", false],
        ["$Out_ON", "bool", false],
        ["$Out_OFF", "bool", true],
        ["$Out_NextON", "integer", 0],
        ["$Out_NextOFF", "integer", 0],
        ["$Out_NextTime", "integer", 0],
        ["$Const_False", "bool", false],
        ["$Formula_Min", "string", "min(X1,X2)"],
        ["$Lgc_CronON", "bool", false],
        ["$Lgc_CronOFF", "bool", false],
        ["$Lgc_EffectiveON", "bool", false],
        ["$Lgc_EffectiveOFF", "bool", false],
        ["$VAR<In_Inhibit?>", "bool", false]
    ],

    "Module": [
        ["Break", ["$VAR<In_Inhibit?>"]],
        ["Cron", "-$In_InhibitON", "$Lgc_CronON", "$Out_NextON", "$In_CronON"],
        ["Cron", "-$In_InhibitOFF", "$Lgc_CronOFF", "$Out_NextOFF", "$In_CronOFF"],
        ["Or", ["$Lgc_CronON", "$In_OverrideON"], "$Lgc_EffectiveON"],
        ["Or", ["$Lgc_CronOFF", "$In_OverrideOFF"], "$Lgc_EffectiveOFF"],
        ["Or", ["$Lgc_EffectiveON", "$Out_ON"], "$Out_ON"],
        ["Or", ["$Lgc_EffectiveOFF", "-$Out_ON"], "-$Out_ON"],
        ["And", ["$Out_ON"], "-$Out_OFF"],
        ["CalcFormula", ["$Out_NextON", "$Out_NextOFF"], "$Out_NextTime", "$Formula_Min"],
        ["And", ["$Const_False"], "$In_OverrideON"],
        ["And", ["$Const_False"], "$In_OverrideOFF"]
    ],

    "Input": [
        ["EIN-Zeit (Cron)", "Cron-Ausdruck für Einschaltzeit(en)", "$In_CronON", "c"],
        ["AUS-Zeit (Cron)", "Cron-Ausdruck für Ausschaltzeit(en)", "$In_CronOFF", "c"],
        ["Manuell EIN", "TRUE-Impuls übersteuert die ZSA und schaltet EIN", "$In_OverrideON", "a"],
        ["Manuell AUS", "TRUE-Impuls übersteuert die ZSA und schaltet AUS", "$In_OverrideOFF", "a"],
        ["EIN sperren", "Sperrt das automatische Einschalten", "$In_InhibitON", "u"],
        ["AUS sperren", "Sperrt das automatische Ausschalten", "$In_InhibitOFF", "u"],
        ["ZSA sperren", "Sperrt die Zeitschaltuhr", "$VAR<In_Inhibit?>", "c"]
    ],

    "Output": [
        ["Schließer", "Schaltausgang als Schließer", "$Out_ON", "ct"],
        ["Öffner", "Schaltausgang als Öffner", "$Out_OFF?", "ct"],
        ["Nächste EIN-Zeit", "Nächste EIN-Zeit (Unixzeit)", "$Out_NextON?", "ct"],
        ["Nächste AUS-Zeit", "Nächste AUS-Zeit (Unixzeit)", "$Out_NextOFF?", "ct"],
        ["Nächste Schaltzeit", "Nächste Schaltzeit (Unixzeit)", "$Out_NextTime?", "ct"]
   ]

}
Und hier ein Screenshot aus dem Logikeditor:

Bild


Eingänge:
- Ein Cron-String für die Einschaltzeit
- Ein Cron-String für die Ausschaltzeit
- Ein manueller Ein-Schalter (übersteuert den zeitlichen Ablauf und schaltet den Ausgang sofort ein)
- Ein manueller Aus-Schalter (übersteuert den zeitlichen Ablauf und schaltet den Ausgang sofort aus)
- eine Sperre für das automatische Ein-Schalten
- eine Sperre für das automatische Aus-Schalten
- beliebig viele Inhibit-Eingänge, um die ganze Logik zu deaktivieren

Ausgänge:
- ein Schließer (schließt bei EIN, öffnet bei AUS)
- ein Öffner (optional, öffnet bei EIN, schließt bei AUS)
- die nächste Einschaltzeit (optional, für Debugging und Visu)
- die nächste Ausschaltzeit (optional, für Debugging und Visu)
- die nächste Schaltzeit (optional, entweder Ein- oder Aus-Schaltzeit).

In der Visu könnte das z. B. so aussehen:

Bild

Bild


Die Ein- und Ausschaltzeiten sind Werteingabefelder im Textformat, die anderen Felder sind sind Werteingabefelder mit boolschen Ausgang:
Bild

Die Wertaussendung für die Cron-Syntax wird z. B. so definiert:
Bild

Die Wertaussendung für die Sperr-Felder wird z. B. so definiert:
Bild

Damit kann man die Zeitschaltuhr komplett über die Visu bedienen und beliebige Schaltzeiten (sofern sie sich als Cron-Syntax darstellen lassen) über die Visu verändern, ohne Quelltext in der Logik ändern zu müssen.

Falls man Hilfe bei der Formulierung eines Cron-Ausdrucks benötigt, kann man entweder eine KI befragen (dann aber mit folgendem Hinweis: die Timberwolf-Cron-Syntax unterscheidet sich von der Linux-Cron-Syntax! Sie hat sechs Stellen, die erste Stelle bezeichnet die Sekunde) oder in einer beliebigen Logik einen Trigger anlegen, dort als Auslöser "durch Zeitschaltuhr" auswählen und dann den Cron-Ausdruck kopieren, der sich durch Auswahl von Wochentag und Uhrzeit ergibt):
Bild

Mit manueller Cron-Syntax ist man aber deutlich flexibler, da man z. B. auch Monate oder mehrere Schaltzeiten eingeben kann (z. B. 0 0/5 0 * * *: 0/5 an der Stelle der Minuten bewirkt, dass alle fünf Minuten, beginnend bei Minute 0, geschaltet wird).

Die Logik wurde über mehrere Wochen ausgiebig und an realen Objekten (Lüftungsanlage etc.) getestet. Dabei hat sie fehlerfrei funktioniert. Das ist aber keine Garantie dafür, dass sie in jeder Situation, vor allem mit eventuell fehlerhaften Cron-Ausdrücken, funktioniert. Ich empfehle daher jedem, zunächst einen Trockentest (nur Doktormodus, oder Ausgang in Zeitreihe/Visu-Widget schreiben) durchzuführen, bevor damit essentielle Funktionen geschaltet werden.

Die Ersteller dieser CUSTOM-Logik stellen den Code der Logik hiermit unter die TOLL-Lizenz.

Falls ihr Fragen oder Probleme habt, lasst es mich gerne wissen.

Vielen Dank und viele Grüße
Falk
Vielen Dank und viele Grüße
Falk

TWS 3500M ID:810 - VPN aktiv - Reboot nach Absprache
1-Wire, KNX (MDT u. a.), EnOcean (Eltako u. a.), Gira TKS, ekey multi
Benutzeravatar

Parsley
Beiträge: 741
Registriert: Di Okt 09, 2018 7:27 am
Wohnort: 4908.
Hat sich bedankt: 910 Mal
Danksagung erhalten: 462 Mal

#2

Beitrag von Parsley »

Moin Falk

Vielen Dank euch beiden! Ich habe das jetzt mangels Zeit nur überflogen, aber eine per Visu bedienbare Zeitschaltuhr ist etwas, was mir am TWS noch sehr fehlt. Daher schon jetzt ein großer Dank für eure Unterstützung noch bevor ich es testen konnte. :D
Gruß Parsley

3500L #657 (VPN offen, reboot nach Absprache)
3500XL #1705 (VPN offen, reboot ok)
EFH Bj.2016: KNX, DALI, 1-Wire, Modbus TCP, KWL, PV, MQTT, BSB-LAN, 2x AI on the Edge Device, Tasmota, ESPHome, VLANs, VPN, NAS
Bitte WIKI lesen.
Antworten

Zurück zu „Zusätzliche Logikbausteine“