Zitat von 6ast
Beitrag anzeigen
Bereits das Dual-KNX-DALI Gateway von ABB kann knapp 2500 Objekte. Da erschienen uns 8.000 Objekte für einen multifunktionalen Server nicht Zuviel. Zudem wollten wir von vorneherein eine skalierbare und leistungsfähige Architektur und nicht nach ein paar Jahren erneut anfassen und erweitern müssen.
Wir haben nicht damit gerechnet, dass das MT in dieser Hinsicht suboptimal programmiert war und das gar nicht konnte, schließlich bewegen wir uns ja im Rahmen der Norm für einen System B Stack.
Aber es gibt da helles Licht am Horizont. Mit dem MT 5.7.4 und den Erweiterungen für „Modulare Anwendungsprogramme“ („MAP“) ist sicherlich der richtige Weg eingeschlagen von der KNXA. Unsere Applikation mit 2000 Objekten ist damit anstatt 6 MB (zuvor) mit MAP nur noch 95 KB groß. Dass die ETS 5.7.3 sich nach einem Klick auf diese schlanke Applikation mit MAP nun 2 Minuten mit sich selbst beschäftigt ist womöglich leicht behebbar. Die KNXA arbeitet daran.
Wenn man sich das Changelog der 5.7.3 ansieht, dann macht der Unterabschnitt „Modulare Anwendungsprogramme“ gut 40% der „Fehlerbehebung“ aus. Es wird also daran gearbeitet und geschraubt. Meine Hoffnung ist, dass es mit einer der nächsten Versionen passt und wir dann auch die angestrebte 8.000er Applikation in die Prüfung geben können.
Damit man eine so umfangreiche Applikationen auch bedienen kann: Wir liefern eine ETS Applikation (kostenfrei über den KNX Store) aus, die „Timberwolf Importer“ heißt. Damit kann man CSV-Dateien importieren und damit Objekte und deren Verknüpfung mit GA in der Timberwolf Server Applikation anlegen. Viele unserer Kunden lesen mit der ETS alle GA aus und importieren dieses File dann über die „Timberwolf Importer“ ETS App und haben so für jede GA ein Objekt. Auf diese Weise kann man jede Menge an Einstellungen und Verknüpfungen auch schnell in Excel runterziehen und dann in die ETS einspeisen.
Zitat von 6ast
Beitrag anzeigen
Wir haben uns auch ein „Hybrid-Feature“ ausgedacht, dass den Workflow vereinfachen soll und uns unabhängiger von der ETS macht, aber trotzdem beim Objekt-Konzept bleibt. Denn in dem Gemisch aus Objekten und GAs sehe ich auch potentielle Stolperfallen für die Anwender.
Ich erkläre das kurz, wie wir das umgesetzt haben und was wir planen:
Die Hierarchie bei der Verwaltung des Objektsystems im TWS sieht so aus:
Technologien -> Subsysteme -> Interfaces -> Regeln -> Objekte
- Technologien sind KNX, 1-Wire, DMX usw.
- Subsysteme sind Adressbereiche, also bei KNX die Linie, bei DMX das Universum usw. Damit wird man auch in der Lage sein, mehrere KNX Stacks (oder Modbus Stacks usw.) parallel laufen zu lassen, also bei KNX damit eine mögliche Erhöhung auf 3 x 8000 Objekte.
- Interfaces eben wo das Bussystem angeschlossen ist. Durch das Mapping von Subsystem auf Interface kann man ein Interface leicht austauschen.
- Regeln werden bei „gepollten“ Technologien herangezogen, dort bestimmt der Anwender, in welchen Intervallen welcher Wert zu lesen ist (1-Wire, Modbus), wie dieser berechnet / gewandelt werden soll, welche Einheit er bekommt, wann und wie er zu senden ist und wie letztlich daraus ein Objekt entsteht (analog dazu, wie man bei einem KNX Device mit der ETS entsprechend der Applikation einrichtet, nur das man das in der TWS Oberfläche für derartige Technologien einstellt).
- Das Objekt ist letztlich was aus Anwendung der Regeln entsteht (1-Wire, Modbus) bzw. von außen (spontan) hereingesendet wurde (wie bei KNX). Es gibt dann also KNX-Objekte, DMX-Objekte, 1-Wire-Objekte, Zeitserien-Objekte, MQTT-Objekte usw.
Alle Objekte lassen sich über den Dispatcher beliebig (1:n) verknüpfen, also ein KNX-Objekt (Input) mit einem 1-Wire Ausgang, gleichzeitig mit einem Zeitserienobjekt (um es für spätere Analysen aufzuzeichnen) mit drei weiteren KNX-Objekte ausgehend (für eine Art Vervielfachung), mit einem MQTT-Objekt und drei DMX-Objekte. Ganz ohne Logik, das geht nur über den Dispatcher, der auch nur das kann, dafür aber sehr leistungsfähig ist.
Die Logikengine ist in diesem Objektsystem damit auch eine Technologie, die Objekte ausbildet. Jeder Ein- und Ausgang aus einer Logikzelle generiert ein Objekt. Dieses wird über den Dispatcher mit allen anderen Objekten aller anderen Technologien / Subsysteme verbunden. Diese Architektur eröffnet damit auch den Weg, in der Zukunft auch andere / weitere Logikengines zu betreiben.
Objekte / GA:
In der KNX Wert ist die GA lediglich eine Zieladresse für KNX-Telegramme (womit ein Multicast realisiert wird). In allen KNX Geräten wird die GA(s) auf das Objekt gemappt und das Objekt mit einem DPT und Flags versehen. Wenn der Anwender in einem Server sowohl Objekte als auch GAs gemischt benutzen kann, mag das zwar aus Benutzersicht zunächst einfacher aussehen, aber es stört im meinen Augen das durchaus sinnvolle Assoziationssystem von GA auf Objekte. Unter anderem können bei Adressierung über GAs keine Flags greifen und die ETS kann die Filtertabellen für Router / BK / LK nicht ordentlich berechnen (wenn es dafür keine Dummy-Applikation gibt, aber dann kann man es ja gleich gescheit machen). Diese Unterschiede muss der Anwender dann auch immer beachten, wenn er mit zwei ähnlichen aber im Details dann unterschiedlichen Systemen arbeitet.
Es kann durchaus zu unschönen bzw. unklaren Effekten führen, wenn ReadRequets auf GAs abgegeben werden auf welche diejenigen (besser das eine) Objekt(e) mit L-Flag dann auch antworten und womöglich alle im Server verwendeten GAs ebenfalls (die der Steuerung über das L Flag beraubt sind). Weil schon hat eine startende Visu durchaus Werte die nicht stimmen, weil die letzte (womöglich falsche Antwort) gewinnt. Nur mit Flags kann man das richtig steuern, die gibt es aber nur für das mit der ETS angelegte KNX Objekt.
Mithin frage ich mich, ob das Durcheinander bei der Fehlersuche eine Erleichterung bringt und jedem Anwender dass dann auch klar ist. Aber vielleicht übersehe ich was und lasse mich gerne von der Schwarmintelligenz belehren.
Der heutige Workflow beim TWS, jedes Objekt erst in der ETS anlegen zu müssen, ist, insbesondere bei der je nach Version quälend langsamen Reaktionszeiten, aber auch nicht die beste Lösung. Heute bedienen sich unsere Kunden daher gerne der oben beschriebenen Methode, alle GAs mit einem Schlag einmal als Objekte anzulegen.
Hybridlösung "Reverse Workflow - oder von hinten durch den Server in die ETS"
Für die Zukunft wollen wir eine Hybridlösung implementieren, in welche der Kunde GAs angeben kann, die mit keinem KNX-Objekt des Servers assoziiert sind. Diese wird dann automatisch im Hintergrund erledigt, in dem der TWS einfach seinen eigenen KNX Stack (anstatt der ETS) programmiert und das passende Objekt nebst Assoziation in Realtime anlegt. Eine spätere Synchronisierung mit dem ETS-Projekt kann dann über die oben erwähnte App erfolgen, da man – heute schon – die Programmierung des KNX Stacks als CSV exportieren kann.
Auf diese Weise geben wir dem Anwender die gleiche Freiheit (mit GAs arbeiten) und bleiben trotzdem in der KNX konformen Systematik der Objekte mit ihren Flags, weil wir diese Objekte damit „on the Fly“ erstellen.
Die Diskussion dazu ist hier: https://forum.timberwolf.io/viewtopi...&t=1622#p17014
Lg
Stefan
PS: Falls solche detailreichen Einblicke in unsere Architektur nicht interessieren oder unerwünscht sind, dann bitte Bescheid geben.





Nicht vebandelt?
Einen Kommentar schreiben: