ich habe die letzten Tage genutzt und mich an einer Modul/Bibliotek versucht. Dabei bin ich auf ein Parr Probleme gestoßen deren Lösung ich gerne mit euch diskutieren will.
Da ich im Haus hauptsächlich KNX einsetze hatte ich überlegt wie man bequem eine Anbindung von nicht KNX Geräten (zb. Sonos, Hue) herstellen kann. Daher ist die Idee geboren eine Modul zu programmieren das eine Geräteinstanz zur Verfügung stellt die die brücke aus X KNX Variablen und einer zu steuernden Geräte Instanz zu Verfügung stellt.
Hier mal ein Bild wie das ganze dann für Sonos (KnxControlsSonos) aktuell ausschaut.
Im im Grunde funktioniert das Modul auch, es hört auf die Änderungen der KNX Variablen und sendet entsprechende Änderungen an die Sonos Instanz bzw. deren Idents.
Nun zu den Probleme.
Da nun Symcon die Sonos Instanz auf dem KNX repräsentiert ist natürlich der Blickwinkel auf eine KNX GA anders herum wie üblich, denn nun stellt ja Symcon die quelle der Daten wie Volum und Status dar.
a)Daraus ergibt sich das die Rückmelde Adresse nun eigentlich die Sende Adresse wird und die eigentliche Adresse die lese Adresse. Dies lässt sich zwar händisch ändern dann wir die GA aber wieder als ungelegt im KNX Konfigurator angezeigt.
b) Daraus ergibt sich auch das nun Symcon nach erhalt eines KNX Telegrams und korrekter Verarbeitung dann den neuen zustand auf die Rückmelde Adresse raus schreiben muss.
Leider kann man im KNX Konfigurator nur GAs erzeugen die in der ETS schon verlinkt sind das ist auch etwas schade wenn Symcon die Geräte auf dem Bus repräsentiert will man eventuell die Symcon variablen schon anlegen und die Infos auf dem Bus zur Verfügung stellen bevor man eine Konkrete Gegenstelle hat.
Auch wenn ich jetzt irgendwie noch keine Konkrete frage gestellt habe will ich meine Gedanke schon mal mit euch Teilen eventuell hat sich ja auch schon mal jemand Gedanken über den Anwendung fall gemacht
Moin…. Dein Modul klingt spannend, sowas habe ich bei mir immer sehr umständlich mit Skripten erstellt. Werde mir dein Modul bei Gelegenheit mal anschauen.
Meiner Meinung nach verschenkt Symcon hier ne Menge Potential, weil es einfach viel zu kompliziert ist dieses selbst mit Skripten zu lösen. Sowas müßte Out-of-the-Box funktionieren.
Ich habe das aktuell noch für Gardena und Home Connect mit Skripten gelöst. Für HUE und SONOS habe ich mir irgendwann von ISE die KNX HUE und SONOS Connect Gateways gekauft. Das war mir zu nervig das über Symcon zu lösen.
Das Problem mit den Gruppenadressen was du da beschrieben hast verstehe ich nicht? Wenn du in der SONOS-App die Lautstärke änderst sendet Symcon das auf eine „Status-GA“. Wo ist das Problem?
Ich habe bei mir immer zwei GA in Verwendung, eine zum Schalten und eine als Status-GA. Fährt mein Mähroboter in die Garage und der Zustand ändert sich von Mähen auf Laden, geht es über die Status GA.
Mir fällt jetzt in keinem meiner Projekte eine Gruppenadresse ein, die ich nicht auf die SymBox ziehe oder aber in älteren Installationen auf den Dummy, der die SymBox (oder das IP-Symcon auf x-beliebiger Hardware) repräsentiert. Symcon ist ja irgendwie immer der Teil auf dem KNX Bus, der alles mitkriegt um es visualisieren zu können. Also da sehe ich überhaupt kein Problem.
ich finde den Ansatz richtig spannend – gerade weil ich im ganzen Haus sehr viel über KNX steuern muss.
Ich sehe das ähnlich wie Peter: Hier verschenkt Symcon aus meiner Sicht einiges an Einsteiger-Potenzial. Ich habe mir vieles mühsam über Skripte zusammengebaut und oft so lange ausprobiert, bis es endlich funktioniert hat.
Gleichzeitig ist es generell schwierig, Statusmeldungen wirklich sauber synchron zu halten – und die Konfiguration pro Szenario ist schnell ziemlich aufwendig.
Umso besser fände ich ein universelles Modul, das z. B. Hue, Shelly usw. mit KNX verknüpft und die Zustände zwischen den Schnittstellen zuverlässig synchron hält. Ich habe häufig das Thema, dass ich über den Glastaster nicht nur steuere, sondern auch die Statusanzeigen auf beiden Seiten konsistent bleiben müssen.
Ich bin gespannt, wie sich das Modul weiterentwickelt – ich hätte auf jeden Fall einiges zum Testen.
Ja ich hatte das Steuern der Sonos Box auch für eine Box mit Scripten und Ereignissen händisch gebaut aber gerade wenn man auch solche dinge haben will, wie Lautstärke über relatives dimmen ändern, wird es unschön.
Leider hatte ich vor Symcon keine PHP Erfahrung aber mit AI geht es.
Ja wenn man die Zwei GA’s einzeln an gelegt hat stimmt das, für die meisten andere GAs ist es aber vom Vorteil wenn man die automatische zusammen Führung vom Rückmelde Adressen verwendet (daher hatte ich dies auch beim Import aller GA’s so gemacht).
Jetzt muss ich das halt vor die Adressen die ihren Daten Uhrsprung in Symcon haben eben manuell wieder umstellen.
Und dann hat man das Problem, das es bei KNX eigentlich auch vorgesehen ist das man auf die Schalt GA eine lese anfrage kommt, also sollte diese Variable auch den Aktuellen wert widerspiegeln.
Also kein echtes Problem nur eben etwas was mir auf gefallen ist.
Hi,
das mit dem anlegen muss ich korigieren es werden die nicht erzeugt die keinen DatenTyp haben aber ohne Daten Typ ist es ja auch nicht möglich die passende Instanz an zu legen.
Ich habe ne ganze menge Verknüpfte Adressen weil ich die bei mir Semiautomatisch mit Excel erzeugt habe und halt mal Adressen für alles angelegt habe, das ich noch einbauen will, zb. SOnos Lautsprecher fürs Gästezimmer und Kinder Zimmer. Da es die aber noch nicht gibt sind sie nicht verknüpft.
Bei den Sonos boxen will ich Zb auch die Absolute lautstäke auf dem Bus haben wenn aktuell nur ein Wandschalter vor Ort ist. Will man das später ändern ist die GA schon mit leben gefüllt und ich brauche sie nur noch verknüpften, in der ETS.
Ja das stimmt, wenn ich aber den aktuellen Wert nur auf die Variable schreibe die die Rückmelde GA repräsentiert, dann bleibt die Variablen für die Ansteuerung noch auf dem alten Wert, wenn ich etwas über die Sonos App ändere.
Zwei einzelne Variablen können natürlich beide gelesen werden müssen dann aber wieder Synchron gehalten werden.
Wenn man die Beiden GAs in einer Variable zusammen führt und man die Rückmelde GA als Haupt GA einträgt (damit die Status Änderung auf der Rückmelde GA gesendet wird) aber dafür muss man nur eine Varble AKtuell halten und somit auswählen in der Konfiguration eines Moduls.
ja das mit dem Universellen Modul ist nicht ganz so einfach weil ja Jede Instanz andere Idents und Funktionalitäten hat hat. Klar gibt es Grund GEräte (einfache Ein/Aus oder 0-100% Dimmer) die Instanz unabhängig funktionieren. Dies ist dann aber schnell limitiert weil man ja nicht eine Instanz mir X KNX Variablen verknüpft sondern dann mehr oder weniger eine 1:1 Zuordnung von Variablen machen müsste.
Eventuell könnte man auch mehre Artverwandte Geräte (zb. RGBW Lampen ) in einem Modul abfrühstücken aber auch da muss man dann, wenn man eine Instanz Zuordnung braucht für jeden Instanz Typen eine Unterscheidung im Code.
Dies liegt an der Entscheidung von Symcon nicht alle Geräte auf vordefinierte Generische vertreter zu Mapen wie es zb. Home Assistent macht. Dort wird vom System eine Geräte Art definiert mit klaren Funktionen und die werden dann von der Jeweiligen Integration zur Verfügung gestellt.
Die Rückmelde GA hals hörende Adresse macht garkeinen Sinn da ja Symcon die Quelle der Rückmelde Information ist und somit die GA schreiben muss aber ich glaube wir reden an einander Vorbei.
ich Versuchs es noch mal ausführlich auf zu schreiben Beispiel Lautstärke einer Sonos Box
Fall : Ein Variable für beide GAs (Steuer GA als Haupt GA)
Problem: Symcon kann auf der Rückmelde GA nicht den Aktuellen wert der Lautstärke senden.
Problem: Beim lesen der Rückmelde Adresse kann Symcon nicht antworten.
Problem: Mann muss aufpassen das man keine Event schleife baut, weil eine Änderung der Sonos Volume Variable die KNX Variable ändren was wieder zu einer Änderung der Sonos Variable führ und so weiter.
Fall : Ein Variable für beide GAs (Rückmelde GA als Haupt GA)
Problem: Beim lesen der Steuer Adresse kann Symcon nicht antworten.
Problem: Mann muss aufpassen das man keine Event schleife baut, weil eine Änderung der Sonos Volume Variable die KNX Variable ändern was wieder zu einer Änderung der Sonos Variable führ und so weiter.
Fall: Zwei Adressen (Jeweils als GA keine Hörende GA, KEIN Abgleich der Adressen)
Problem: Symcon könnte zwar auf beide Adressen schreiben und auch leseanfragen beantworten aber der wert in der Steuer GA ist potentiell veraltet. (Kann man vermutlich auf der ETS Seite berücksichtigen)
Mehr aufwand beim anlegen weil händische Änderung von den Automatische erzeugten GAs mit automatischer zusammen Führung der GAs
Mehraufwand beim projektieren des Moduls da zwei Variablen verknüpft werden müssen.
Fall: Zwei Adressen (Jeweils als GA keine Hörende GA, MIT Abgleich der Adressen)
Mehr aufwand beim anlegen weil händische Änderung von den Automatische erzeugten GAs mit automatischer zusammen Führung der GAs
Mehraufwand beim projektieren des Moduls da zwei Variablen verknüpft werden müssen.
Mehraufwand im Modul Code um drei variablen synchron zu halten ohne eine Event schleife zu bauen.
Also man sieht man kann das Problem lösen aber in dem man an einigen stellen Mehraufwand in kaufnimmt den ich gerne bequemer gelöst hätte, wohl wissend das ich keine Lösung präsentieren kann.
Hoffe jetzt wurde es noch mal klar was bei den einzelne Möglichkeiten die Nachteile sind.
Ich löse es so, dass ich z.B. von einem KNX Taster den Befehl “Play” auf die Steuer GA sende und IPS dann auf die Rückmelde GA entsprechend antwortet. Auf die Rückmelde GA gibt IPS dann bei einer Leseanfrage den aktuellen Wert aus. Keine hörenden Adressen.
Gleichzeitig wird der Status aus dem SONOS natürlich auch auf die Rückmelde GA gesendet, wenn man z.B. über die SONOS App die Wiedergabe startet.
Der Status, der am Taster angezeigt wird, ist somit immer aktuell.
Falls ich mal aus IPS heraus schalte, so habe ich dafür eine entsprechende Variable mit Actionskript. Somit sehe ich nicht, falls die Steuer GA mal einen falschen Status hat. Das ist dann egal. Ich glaub, es ist dein Fall 3.
Wie ich vermutet hatte wir meine das Gleiche. Nur das du dir den Luxus einer zusätzlichen Variable für die Visualisierung in Symcon zu gönnen scheinst (die ja auch wieder aktualisiert werden möchte da hätte ich jetzt einfach die originalen aus der Sono Instanz für genommen.
Ja genau das ist mein Fall 3 mit den darunter genannten Nachteilen, die ja hauptsächlich Mehraufwand bedeuten.
Da ich eher von der Faulen Natur bin, überlege ich halt nach einer Möglichkeit wie man das Systematisch optimieren kann. Wenn man eben KNX Integration in symcon aus der Geräte Sicht und nicht aus der Visualisierung Sicht denkt.
Danke für den Austausch nur so wird es in Summe besser.
Gute Nacht
Ich war am Wochenende Mal wieder fleißig und habe an der Modul Bibliothek gebastelt.
Nun gibt es noch ein KnxControlsHue Modul.
Dabei ist mir aufgefallen das es ja durch aus vorkommt das ein Gerät mit seinem KO auf mehrer GAs hört, zb um Gruppen Schaltungen von Lampen zu ermöglichen.
Um dies auch für die Virtuellen KNX Geräte in Symcon zu ermöglichen, habe ich das verknüpfen etwas umgestellt und anstelle einer einigen Variabel kann man nun mehrere Variablen in einer Liste anlegen.
Da es so nur noch komplizierter werden würde wenn die Rückmelde GA in der Instanz der Steuer GA eingetragen wäre, habe ich in diesem Zuge umgestellt auf seperaten KNX Instanzen für Steuern und Rückmeldung. Das damit verbunde neu anlegen der Instanzen ohne das automatische Zusammen führen der Rückmelden Adressen ist wohl das kleiner übel.
Wie bei KNX Geräten üblich werden nun die Rückmelde Variablen separat angegeben.
Diese Änderung habe ich auch für das KnxControlsSonos Modul übernommen.
Anbei noch ein paar Bilder von der Instanz Konfiguration.
jetzt ist es doch schneller als gedacht weiter gegangen.
Ich habe zwar nicht mehr viel getestet aber das könnt ja auch ihr übernehmen, dafür habe ich die Readme Dateien aufpoliert und mich mit git und github etwas beschäftigt.
Daher ist das Modul ab heute über GitHub verfügbar.