Ab SOFORT: Neue Version 3.4.2 für TWS 3500
Jetzt mit Registrierung und vielen Verbesserungen: viewtopic.php?f=8&t=3595


Neue Insider Version RC5 / 5.1 zur 3.x für alle anderen Timberwolf Server
Jetzt mit Registrierung & Lizenzen und vielen Verbesserungen: viewtopic.php?f=8&t=3595

[NEUHEIT] ZSU Baustein (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
Benutzeravatar

Chris M.
Reactions:
Beiträge: 1005
Registriert: Sa Aug 11, 2018 10:52 pm
Wohnort: Oberbayern
Hat sich bedankt: 171 Mal
Danksagung erhalten: 602 Mal
Kontaktdaten:

#21

Beitrag von Chris M. »

Erst mal: Eine "Uhrzeit" ist ein erstaunlich komplexes Ding, was man gar nicht glaubt, weil man ja täglich mit "Zeit" konfrontiert ist. Es gibt Zeitzonen, Uhrzeitumstellung (teilweise zu unterschiedlichen Daten je nach Ort), Schaltsekunden, ... Dass die Konnex der Uhrzeit auch noch den Wochentag dazu gepackt hat macht das nicht wirklich besser.
Spätestens wenn man versucht Zeitdauern zu berechnen wird das entweder ungenau oder eklig.

Aber nun zur konkreten Frage:
Robosoc hat geschrieben: Mo Dez 06, 2021 9:06 am Das Clock-Widget unterstützt doch MQTT jetzt schon, oder?
Was erwartet das Plugin momentan als Formatierung im MQTT...eine vergleichbare Formatierung wie im KNX DPTS 10.001 definiert oder eine Zeit in Sekunden seit 00:00:00?
Hier ist die Antwort simpel: Den Widgets (wie z.B. Clock) ist das Backend (wie KNX, OpenHAB oder MQTT) vollkommen egal, die arbeiten mit JavaScript Variablen. Die werden über die in der Config eingestellten Transformation befüllt mit dem Wert aus dem Backend befüllt. Und bei MQTT gibt aktuell keine Transformation für Uhrzeiten (oder Daten).

Was implementiert ist kann in dieser Datei gesehen werden: https://github.com/CometVisu/CometVisu/ ... ms/Mqtt.js

=> Es gibt aktuell Zahlen und String, so wie ein JSON-Objekt - wobei letzteres v.a. zum Lesen funktioniert.

Eine Transformation für Uhrzeit und auch Datum lässt sich aber schnell implementieren. Wichtig wäre da nur zu wissen in welchem Format die üblicher Weise gesendet wird.
CometVisu Entwickler - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.

TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache

Robosoc
Reactions:
Beiträge: 1593
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 544 Mal
Danksagung erhalten: 625 Mal

#22

Beitrag von Robosoc »

Alles klar, dann wäre meine Meinung schnell gebildet. MQTT hat nix zu tun mit KNX und somit braucht es auf keinen Fall die komplexe Struktur eines DPT 10.001.

Die Sekunden ab Mitternacht finde ich sehr hilfreich und für jeden Schnell nachvollziehbar.

Den Wochentag würde ich ebenfalls weglassen. Kann man sich bei Bedarf in einem einfachen Integer mit Mapping dazuholen.

Und dann passt es auch schon super zum TWS Umgang mit dem supi-dupi 10.001.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

SchlaubySchlu
Reactions:
Beiträge: 106
Registriert: Mo Aug 13, 2018 9:32 pm
Wohnort: Allgäu
Hat sich bedankt: 47 Mal
Danksagung erhalten: 43 Mal

#23

Beitrag von SchlaubySchlu »

Ich habe noch eine Frage zum Trigger-Eingang, was macht der jetzt genau?
Brauche ich den, wie ist der genau zu verwenden? Du schreibst vorn etwas von, wenn man einen Retrigger des Aussgangsignal will dann soll man den Trigger setzten.

Ich möchte eine Funktion realisieren das ich mit einem Slider die Re-Trigger-Zeit einstellen kann. Also wenn der Slider auf 0 ist dann erfolgt kein Re-Trigger, wenn der Slider >0 bis 60 hat dann soll ein Re-Trigger des Ausgangssignal nach dieser Zeit erfolgen.

Noch eine Frage, kann es sein das die ZSU nur reagiert, wenn der Ein-/Ausschaltzeitpunkt von der Aktuellen Zeit "überfahren" wird?
Oder anders gefragt, wenn es z.b. aktuell 14:10 Uhr ist, die Einschaltzeit auf 14:00 gesetzt wird und Ausschaltzeit auf 15:00 dann wird der Ausgang der ZSU nicht gesetzt. WEnn es jedoch aktuell 13:59 ist, und somit die Einschaltzeit von 14:00 in der Zukunft liegt, dann schaltet die ZSU wie gewünscht.

Gruß
Ralf
Timberwolf Server 2600 #196, VPN offen, Reboot nach Vereinbarung, BM 729

SchlaubySchlu
Reactions:
Beiträge: 106
Registriert: Mo Aug 13, 2018 9:32 pm
Wohnort: Allgäu
Hat sich bedankt: 47 Mal
Danksagung erhalten: 43 Mal

#24

Beitrag von SchlaubySchlu »

Nach dem ich jetzt ja schon über ein Jahr an der Thematik arbeite wollte ich nun meine aktuell implementation vorstellen ;-)

Verwendete Logic-Bausteine:
- Aktuell 4 ZSU-Bauteine von Robosoc
- "Sicherung" der Settings der ZSU-Bauteine über je einen Persistance-Bautein. Diesen triggere ich zusätzlich noch 4 mal am Tag, weil ich sonst immer mal wieder Probleme mit der Visu hatte.
- "Sicherung" der Zeitschaltuhrsettings für jedes zu schaltenden Objekt durch einen Persistance-Baustein
- Multiplexer dex-binär für jedes zu schaltenden Objekt, zur Auswahl der aktivierten Zeitschaltuhren für das Objekt
- AND zur Verknüpfung des zu schaltenden Objekt mit der aktivierten Zeitschaltuhr (1 bis 4)

Oberfläche Zeitschaltuhren:
Die Oberfläche schaut wie folgt aus und sollte eigentlich selbserklärend sein. Die Funktion Intervalltrigger ist aktuell noch nicht in betrieb (siehe voriger Post)
Bild

Oberfläche zu schaltende Objekte:
Zu den zu schaltenden Objekte (Steckdose / Beleuchtung) habe ich einen Parameter "Zeitschaltuhr" hinzugefühgt, mit dem wenn die gewünscht die Zeitschaltuhr 1 bis 4 und alle Kombinationen (insgesamt 2^4) ausgewählt werden können.
Bild

Im Beispiel ist aktuell die Zeitschaltuhr 1 und 2 selektiert, welche dann auf die Steckdose an der Eingangstüre wirken.
Die Selektion der Zeitschaltuhr für dieses Objekt wird dann mit Hilfe eines dec2bin Multiplexer für jede Zeitschaltuhr "decodiert". Dieses "decoiderte" enable/disable für jede der 4 ZSUs enabled über ein AND die Verbindung des Ausgangs jeder einzelnen ZSU auf das zu schaltende Objekt.

Ich hoffe das kann man verstehen, ansonsten einfach nachfragen :-)

KNX-Objekte am Bus
für jede ZSU:
- ZSU enable / dissable
- ZSU Intervalltrigger
- ZSU Einschaltzeit Stunde
- ZSU Einschaltzeit Minute
- ZSU Ausschaltzeit Stunde
- ZSU Ausschaltzeit Minute
- ZSU Ausgang

für jedes zu schaltende Objekt:
- Zeitschaltuhr-Selektor

Vielleicht hilft meine Umsetzung jemanden oder vielleicht habt ihr noch eine Idee für eine Verbesserung.

Das Ganze läuft soweit seid einigen Tagen stabil.

Gruß
Ralf
Timberwolf Server 2600 #196, VPN offen, Reboot nach Vereinbarung, BM 729
Antworten

Zurück zu „Zusätzliche Logikbausteine“