Willkommen auf unserer neuen Forenplattform für das Bus-Profi Forum

Neue Felder für die persönlichen Daten
Man kann jetzt seine öffentlich einsehbare Daten genau bestimmen. Details findet ihr in in diesem Beitrag.

Durch die neue Forensoftware und die Portierung der Daten konnten die Passwörter aus dem alten Forum nicht übernommen werden, bitte lassen Sie sich ein neues Passwort über die Passwort vergessen Funktion zusenden. Sollte es zu Problemen kommen kontaktieren Sie das Bus-Profi Team per E-Mail.

Programmieren meines ersten GT12


Themenersteller
sokkederheld
Mitglied
Mitglied
Beiträge: 41
Registriert: Fr 20. Jan 2012, 18:13

#1 Programmieren meines ersten GT12

Beitragvon sokkederheld » Mo 18. Jun 2012, 10:43

Hallo liebes Forum!

Ich habe vorige Woche meine LCN-Komponenten erhalten. Noch ist etwas Zeit bevor die Wände in der neuen Wohnung gestrichen sind, so dass ich mir jetzt erstmal ein simples Bus-Setup für Trockenübungen auf dem Wohnzimmertisch eingerichtet habe.

Gestern habe ich nun meine ersten Programmierversuche unternommen. Programmieren ist für mich kein Fremdwort, ich verdiene mein Geld als Entwickler von Webanwendungen, habe schon in etlichen Sprachen und Dialekten gearbeitet. Ich betreibe auch bereits ein Haussteuerungssystem auf Basis von IPS, mit nicht ganz trivialen Skripten. Außerdem verfüge ich über Erfahrungen im Elektro-Bereich, bin ausgebildeter Veranstaltungstechniker.

Als Programmierer muss ich natürlich erstmal feststellen, wie ungewohnt die Herangehensweise der Programmierung bei Busmodulen ist. Kein Code wird da geschrieben, sondern man muss sich seine Logik irgendwie zusammenklicken. Im Fall von LCN ist es mir so gegangen, dass ich quasi sofort bei meiner ersten Anforderung an Grenzen des Möglichen gestoßen bin.

Das ist wohl etwas das vielen passieren dürfte, die es gewohnt sind, ausgefuchste Dinge zu programmieren. Alles was über "Taste 1 -> Szene 1" usw hinausgeht erscheint erstmal nicht so ohne weiteres möglich.

Wenn ich aber sage "ohne weiteres" dann bedeutet es natürlich, dass es da "weiteres" gibt, und schnell ist man auch als Neueinsteiger dahinter gekommen, mit virtuellen Relais, LED-Logik und der T-Var abenteuerliche Hilfskonstruktionen zu basteln, um "durch die Brust ins Auge" zum Ergebnis zu kommen.

Allerdings ist es beileibe (noch?) nicht so, dass ich deshalb nach einigen Stunden Erfolgserlebnisse erzielen konnte. Zunächst einmal meine Grundanforderung:

-GT12 im Layout 8+1
-Tastenbelegung ist "Audio Kanal A / aus", "Audio Kanal B / aus", "Leiser", "Lauter", "Temp -", "Temp +", "Lichtszene GEDIMMT an/aus", "Lichtszene PUTZLICHT an/aus", "Lichttaster"

Die oberen Tasten sollen praktisch gar keine Intelligenz im Modul selbst haben, da sie ohnehin nur in Verbindung mit IPS Sinn machen (Heizungssteuerung über Homematic).

Das Einrichten der Steuerung des Temperatur-Sollwerts mit den Temp-Tasten war schonmal kein Problem. Der Bargraph zeigte nach etwas Fummelei auch den richtigen Wert. Geregelt werden soll vom Modul nichts, es geht mir nur um eine Anzeige der Ist-Temperatur und eine Stellmöglichkeit der Solltemperatur. Ich gehe mal davon aus dass man diese Reglervariablen problemlos an IPS angebunden kriegen sollte...

Die Tasten fürs Audio müssen einfach nur irgendwie ins IPS gebracht werden, wobei ich schon gehört habe dass das natürlich nicht so einfach geht; man muss wohl pro Taste ein virt. Relais anlegen das dann getriggert wird. Also fallen schonmal 4 Relais dafür weg.

Bleibt die Problematik mit dem Licht. Und daran habe ich mir wirklich die Zähne ausgebissen.

Was ich eigentlich will ist, zunächst einmal, einen simplen Taster, der bei Betätigung das Licht ein- und bei erneuter Betätigung wieder aus schaltet. Dieses "ein und aus" soll allerdings über Lichtszenen geschehen, wobei "aus" im Prinzip immer gleich ist, "ein" allerdings je nach Tageszeit und Lebenslage eine andere Bedeutung haben soll.

Die drei Varianten für "ein" sind bei mir: "normal", "gedimmt" und "Putzlicht". Ich habe allgemein gute Erfahrungen gemacht in meiner Alten Wohnung, mit der Begrenzung auf drei wichtige Lichtszenen. Erfahrungsgemäß schaltet niemand von "Zeitung lesen" auf "Fernsehen" um, außer man selbst wenn man sehr diszipliniert vorgeht.


Themenersteller
sokkederheld
Mitglied
Mitglied
Beiträge: 41
Registriert: Fr 20. Jan 2012, 18:13

#2 RE: Programmieren meines ersten GT12

Beitragvon sokkederheld » Mo 18. Jun 2012, 10:44

Wenn in einem Raum das Licht an ist, sollte man mittels zweier anderer Tasten zwischen den drei Szenen umschalten können. Denkbar wäre z.B. eine Taste "dunkler" und eine "heller", um in die nächste bzw. vorherige Szene zu kommen.

Alternativ wäre auch denkbar, dass die eine Taste mit "gedimmt" beschriftet ist und die andere mit "Putzlicht". Betätigt man diese Taste aus der "normal"-Szene heraus, so wird die entsprechende neue Szene angefahren (IPS muss das selbe dann noch mit den Funkdimmern tun). Betätigt man "gedimmt" und das Licht ist bereits gedimmt, wird zur normalen Szene zurückgekehrt. Dass man nicht im Normalmodus ist sondern im gedimmten oder im Putzlicht, könnte man z.B. über die Taster-LEDs visualisieren. Es könnte dann also immer max. eine der beiden Taster-LEDs leuchten.

Das habe ich so wie beschrieben tatsächlich nach einiger Fummelei hinbekommen.

Dann aber kam natürlich das Problem mit der Default-Szene, die je nach Tageszeit verschieden sein kann. Wenn man nämlich des Nachts aufsteht, um Küche oder Badezimmer aufzusuchen, dann soll der normale Lichttaster automatisch direkt in die gedimmte Szene gehen. Man kann sowas ja problemlos mit Registern machen.

Das Problem ist nun aber:

-wenn man den "gedimmt"-Taster direkt am Panel betätigt, wird nicht nur das Register umgeschaltet, sondern das Licht geht auch gleich an (das ist in jedem der drei Register die Szene 2)
-wenn IPS die Defaultszene setzt, passiert etwas ähnliches, aber eben nicht das selbe, denn das Licht darf ja nicht angehen, bloß weil es Nacht geworden ist. Also braucht man nicht nur ein virt. Relais, das die gewählte Szene repräsentiert, sondern ein weiteres das sagt "nicht nur Register auswählen, sondern auch gleich Szene abfahren".
-dabei stößt man auf das Problem des Ausschaltens der beiden "Stimmungstaster". Das habe ich über eine Summe gelöst, wenn nämlich beide LEDs gleichzeitig AUS gehen, dann fahre Szene 1 an (ist in jedem Register die Szene für AUS).
-diese Summe wird aber natürlich nach den Relais-Handlern aufgerufen, so dass das Register leider gesetzt wird nachdem die Szene abgefahren wurde. Also ist da wiederum ein Sonderweg notwendig, damit nicht immer (nicht beim umstellen aus IPS im Aus-Zustand) aber wenn nötig (wenn das Licht tatsächlich an ist) nach der Registeränderung auch die Szene angefahren wird.

Ich habe mir aus dieser Situation heraus schließlich nur mit einem Relais-Impuls behelfen können, der einige hundert Millisekunden dauerte, so dass die Szene erst NACH dem Registersetzen gestartet wurde.

Das funktionierte dann aber nicht zuverlässig, so dass ich gestern erstmal abgebrochen habe...

Meine Frage nun: Hat jemand einen hilfreichen Tipp, einen anderen Lösungsweg an den ich noch nicht gedacht habe? Ich war ja zwischendrin schon so weit, einfach nur noch die grundlegendste Funktion (Szene an, Szene aus) im Taster zu programmieren und alles andere über IPS zu lösen... aber das kann ja eigentlich auch nicht der Sinn eines autark arbeitenden Bussystems zu sein...

Benutzeravatar

Uwe
(†)
Beiträge: 14250
Registriert: So 26. Mai 2002, 23:10
Hat sich bedankt: 13 Mal
Danksagung erhalten: 56 Mal

#3 RE: Programmieren meines ersten GT12

Beitragvon Uwe » Mo 18. Jun 2012, 23:35

Ich hätte da mal eine ganz blöde Idee, Clemens :O
Lass das System LCN doch einfach autark laufen, es sollte deine Anforderungen eigentlich auch alleine (also ohne IPS) erfüllen können. Die bei anderen Systemen notwendigen (und mehr oder weniger aufwendigen) Verknüpfungen benötigst du eigentlich nicht von einem externen System.
Von daher kannst du doch im IPS auch einfach per 'sende Taste' die lokale Taste am GTxx drücken - damit werden dann auch alle im LCN verknüpften Funktionen mit ausgeführt.

Grüße, Uwe - der diese "Ansätze" von Programmierern immer sehr interessant findet :w00t:
----------------o00o----'(_)'----o00o---------------------


Themenersteller
sokkederheld
Mitglied
Mitglied
Beiträge: 41
Registriert: Fr 20. Jan 2012, 18:13

#4 RE: Programmieren meines ersten GT12

Beitragvon sokkederheld » Di 19. Jun 2012, 00:27

Hallo Uwe,

ja im Prinzip hast du wohl Recht. Weniger ist mehr. Komplexität bringt Probleme, so ist es leider.

Ich bin allerdings manchmal auch ein etwas komplizierter Mensch, oder sagen wir mal stur. Wenn ich mir in den Kopf setze, es so oder so machen zu wollen, dann muss das irgendwie klappen und siehe da, ich habe mein Problem heute lösen können.

Der "Trick" war, die Register wegzulassen, einfach vier Szenen zu nehmen und mit LED-Logik zu arbeiten. Das war dann doch gar nicht so kompliziert wie gedacht. Es sind jetzt 4 virtuelle Relais geworden, die LEDs triggern, die wiederum Summen bilden (je eine für DIM, PUTZ, NORMAL und AUS). Die Relais kann ich per IPS ganz simpel fernsteuern und auf Relaisänderungen zu reagieren sollte auch kein Problem sein.

Ist zwar nicht ganz so radikal reduziert wie in deinem Vorschlag, aber ich will ja auch nicht irgendein Bedienfeld, sondern das perfekte ;)

Nun kommt erstmal der IPS-seitige Teil, mal sehen wann ich das nächste Mal auf dem Schlauch stehe. Spätestens wohl beim GT10D wenn ich versuche, da aus IPS dynamische Texte hineinzuzaubern.

Grüße
Clemens


Themenersteller
sokkederheld
Mitglied
Mitglied
Beiträge: 41
Registriert: Fr 20. Jan 2012, 18:13

#5 RE: Programmieren meines ersten GT12

Beitragvon sokkederheld » Do 21. Jun 2012, 14:14

Kleine Rückmeldung: Ich habe es jetzt hinbekommen, meinen GT12 praktisch exakt so zu programmieren wie ich es wollte, mittels Relais, LED-Summen usw..

Beim Lautstärkeregler habe ich zunächst überlegt, den Ausgang 3 zu verwenden und praktisch die Lautstärke wie einen Dimmer zu regeln (ein/aus mit langer Rampe und auf LOS dann Rampe Stopp). Da das aber in IPS zu träge ankam, habe ich mir anderweitig beholfen: Ich setze Ausgang 3 bei jedem Kommando auf einen bestimmten Wert, z.B. 10 für Vol- KURZ, 20 für Vol- LANG und wieder auf 0 bei Vol- LOS. Außerdem mache ich bei VOL- KURZ noch eine verzögerte Taste, die dann ihrerseits auch nach 1 Sek. wieder auf 0 setzt.

In IPS reagiere ich dann auf Änderungen. Bei KURZ (10) dekrementiere ich die Lautstärke um 2, bei LANG (20) um 5, außerdem starte ich einen Timer der das sekündlich wiederholt bis der Status für Ausgang 3 wieder auf 0 ist.

Für Vol+ entsprechend.

Für die Darstellung der Isttemperatur (kommt aus IPS) nutze ich TargetTemp R1, für Soll TargetTemp R2.

Synchronisierung klappt sauber. Ist bei Ändern der Solltemp. ein wenig träge, aber das ist ja bei einer Heizung nicht weiter wild.

Gruß
Clemens, dem das ganze beinahe Spaß zu machen beginnt.

Benutzeravatar

Uwe
(†)
Beiträge: 14250
Registriert: So 26. Mai 2002, 23:10
Hat sich bedankt: 13 Mal
Danksagung erhalten: 56 Mal

#6 RE: Programmieren meines ersten GT12

Beitragvon Uwe » Sa 23. Jun 2012, 00:53

Moin Clemens,
deine Erfahrungen mit der Lautstärke decken sich übrigens mit unseren ...

Ich bin gespannt, wann hier die ersten Nachfragen von Leuten kommen, die nicht ganz verstehen, was du da genau machst.
Diese Kommunikation mit IPS ist schon tw. etwas 'durch die Brust ins Auge' - aber wie man sieht: ... es geht :)

Ich jedenfalls finde diese "Lösungsansätze" von Programmierern immer wieder herrlich - und möchte hier eigentlich nur meine Begeisterung darüber ausdrücken. Spaß daran habe ich in jedem Fall :lol:

LG, Uwe
----------------o00o----'(_)'----o00o---------------------


Themenersteller
sokkederheld
Mitglied
Mitglied
Beiträge: 41
Registriert: Fr 20. Jan 2012, 18:13

#7 RE: Programmieren meines ersten GT12

Beitragvon sokkederheld » So 24. Jun 2012, 20:21

Das was man zunächst nicht ahnt, wenn man bei ersten Gehversuchen scheitert, was sich aber eigentlich immer herausstellt: Viele Wege führen nach Rom.

Zum Beispiel was die Tasterauswertung betrifft. Die meisten raten ja, über virtualle Relais zu gehen, aber davon gibt es genau 8. Da habe ich anfangs auch gedacht, na toll, das reicht doch nicht. Bei einem GT12 mit seinen 12 Tasten kommt man da nicht mit hin, zumal man die Relais vielleicht auch anderweitig braucht, oder gar Doppelfunktionen von Tastern benutzen will.

Ich habe dann andere Möglichkeiten probiert und auch gefunden. Zum Beispiel den Augang 3. Ich würde mittlerweile dazu raten, die Zustände dieses Ausgangs vorrangig für die Kommunikation mit IPS zu nutzen. Es scheint zwar so zu sein, dass der Ausgang in wahrheit nur die halbe Auflösung hat (es gehen nur gerade Werte, also nicht 100 sondern 50 Zustände), aber damit kommt man immer noch locker hin um jegliche Tastsignale an IPS zu übermitteln.

Ich habe den LCN-Teil meiner zukünftigen Anlage jedenfalls bereits jetzt "trockenprogrammiert" (fliegende Schreibtischverdrahtung...) und freue mich darauf, die Module endlich in der Wand zu verbauen.

Übrigens, den GT10 habe ich auch schon geknackt ;-)

Gruß
Clemens, der hoffentlich schon sehr bald einziehen kann.


Zurück zu „Programmierfragen“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 20 Gäste