Ankündigung

Einklappen
Keine Ankündigung bisher.

KNX Controller (Android)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #46
    Frage zur Implementierung von Statusobjekten.

    Die derzeitige Situation in der App ist, dass ich beim Start ein Read Command auf alle eingegebenen Gruppenadressen mache um den aktuellen Status auszulesen. Funktioniert bei mir auch recht gut, da meine Installation ohne Statusobjekte gemacht wurde. Jetzt gibt's aber natürlich viele User die eben mit Statusobjekten arbeiten.
    Wie bzw. wo soll man diese Statusobjekte einbauen? Soll ich das bei der Gruppenadresse hinzufügen - also jede Gruppenadresse hat dann seine eigene Status-Adresse (wenn nicht eingegeben wird die eigentliche Gruppenadresse für den Read verwendet) oder beim Gerät selber automatisch eine Gruppenadresse mit dem Typ "Status" anlegen die dann richtig befüllt werden muss. Die erste Lösung ist wahrscheinlich relativ einfach umzusetzen. Bei der Zweiten bin ich mir nicht sicher ob es überhaupt funktioniert. Hat man für ein dimmbares Licht ein oder zwei Statusobjekte (eines für ein/aus und das zweite für %-Wert)? Alles klar was ich meine? Oder habt ihr ganz einen anderen Lösungsvorschlag?

    danke + lg
    Markus

    Kommentar


      #47
      Hi,

      Ich arbeite auch ohne Statusobjekte, habe es bei meiner selbstgebauten PHP, Ajax Visu am Sinvollsten empfunden.

      Übrigens habe Calimero jetzt instlliert, ich hoffe ich kriege gleich den ersten Buszugriff :-)

      Gruß
      Kobza

      Kommentar


        #48
        ich bin gerade dabei die erste Version umzusetzen, damit sollte eigentlich alles möglich sein...

        wirst sehen, ist nicht schwierig. Aber mit dem Android Emulator hab ich es nicht geschafft, da hats irgendwas mitn Netzwerk...

        Zur Info:
        Code:
        final KNXMediumSettings medium = TPSettings.TP1;
                        
                        if (lnk == null || !lnk.isOpen()) {
                            lnk = new KNXNetworkLinkIP(KNXNetworkLinkIP.TUNNEL, new InetSocketAddress(getLocalIpAddress(), 3671), new InetSocketAddress(HOST, PORT), false, medium);
                        }
                        pc = new ProcessCommunicatorImpl(lnk);
                        pc.write(dst, value);
                    pc.detach();
        mit dem Code solltest recht einfach ein Licht einschalten können. Teile vom Code fehlen da wie du siehst, aber damit findest dich sicher sehr schnell zurecht...

        lg
        markus

        Kommentar


          #49
          Hi Markus,

          danke Dir. Bsp. habe ich schon auf Calimero gefunden.

          Noch geht es nicht, ich kriege ständig eine KNXException mit "Permission denied"??? Eine Idee? Mit Deiner App geht es.

          Gruß
          kobza

          Kommentar


            #50
            Zitat von kobza Beitrag anzeigen
            Hi Markus,

            danke Dir. Bsp. habe ich schon auf Calimero gefunden.

            Noch geht es nicht, ich kriege ständig eine KNXException mit "Permission denied"??? Eine Idee? Mit Deiner App geht es.

            Gruß
            kobza
            ich tippe mal darauf, dass dir eine Berechtigung fehlt. Gib das mal in die Manifest Datei rein: <uses-permission android:name="android.permission.INTERNET" > </uses-permission>

            lg
            markus

            Kommentar


              #51
              danke Dir, das war es (habe es ganz vergessen einzutragen), jetzt kann ich mich connecten :-) morgen geht es weiter :-)

              Viele Grüße
              kobza

              Kommentar


                #52
                KNX Controller auf Motorola XOOM

                Hallo zusammen

                Habe mir auch die APP auf mein nagelneues Motorola XOOM geladen. Ist geanu das was ich suche. Habe etwas gebraucht um das Projekt anzulegen da die Buttons nicht wie in der Beschreibung sofort sichtbar sind. Musste erst unten am Bildschirm klicken. Die Buttons sehen auch anders aus.

                Die Kommunikation mit dem KNX Bus klappt leider nicht. Verwende einen KNX/IP-Router. Es gibt eine Fehlermeldung. Wenn ich einen konfigurierten Taster betätige stürzt die Applikation ab.
                War leider gestern etwas zu spät. Schicke heute Abend mal einen Statusreport.

                Harware:
                Motorola XOOM, Android 3.2, WIFI connection
                KNX/IP-Router Merten 680329, Baugleich mit Schneider Electric MTN680329, Baugleich mit Weinzierl.

                lg
                Roland

                Kommentar


                  #53
                  Zitat von Saturn61 Beitrag anzeigen
                  Hallo zusammen

                  Habe mir auch die APP auf mein nagelneues Motorola XOOM geladen. Ist geanu das was ich suche. Habe etwas gebraucht um das Projekt anzulegen da die Buttons nicht wie in der Beschreibung sofort sichtbar sind. Musste erst unten am Bildschirm klicken. Die Buttons sehen auch anders aus.

                  Die Kommunikation mit dem KNX Bus klappt leider nicht. Verwende einen KNX/IP-Router. Es gibt eine Fehlermeldung. Wenn ich einen konfigurierten Taster betätige stürzt die Applikation ab.
                  War leider gestern etwas zu spät. Schicke heute Abend mal einen Statusreport.

                  Harware:
                  Motorola XOOM, Android 3.2, WIFI connection
                  KNX/IP-Router Merten 680329, Baugleich mit Schneider Electric MTN680329, Baugleich mit Weinzierl.

                  lg
                  Roland
                  Hallo Roland,

                  Also mit deinem KNX/IP - Router sollte es grundsätzlich funktionieren - zumindest hat mir ein anderer User gesagt dass es funktioniert. Ich kenne den Router leider nicht und weiß nicht ob und was man da einstellen kann. Ansonsten kannst du ja nochmal kontrollieren ob die IP und Port richtig eingestellt sind. Aber ein Statusreport würde sicher schon mal helfen, da ich dort sehe warum die App abstürtzt.

                  lg
                  markus

                  Kommentar


                    #54
                    Hallo Markus

                    Zitat von avajon Beitrag anzeigen
                    Also mit deinem KNX/IP - Router sollte es grundsätzlich funktionieren - zumindest hat mir ein anderer User gesagt dass es funktioniert.
                    Ja, habe ich hier auch schon gelesen. Dachte daher auch das es direkt funktionieren würde.

                    Zitat von avajon Beitrag anzeigen
                    Ansonsten kannst du ja nochmal kontrollieren ob die IP und Port richtig eingestellt sind. Aber ein Statusreport würde sicher schon mal helfen, da ich dort sehe warum die App abstürtzt.
                    Habe die Daten aus der ETS übernommen, kann ich aber nochmal Kontrolieren. Muss mir aber auch nochmal die Gebrauchsanleitung des Routers zu Gemüte führen.

                    lg
                    Roland

                    Kommentar


                      #55
                      Wieso baut ihr eigentlich jeder eure eigene App statt zu versuchen eine App so hinzukriegen, dass all damit glücklich sind?

                      Mein Wunsch wäre z.B. bestimmte Funktionen (z.B. aktueller Status des Hauses, Garage öffnen/schließen, usw.) als Widget definieren zu können. Ist sowas geplant?


                      Gesendet von meinem Galaxy Nexus mit Tapatalk

                      Kommentar


                        #56
                        Zitat von mclb Beitrag anzeigen
                        Wieso baut ihr eigentlich jeder eure eigene App statt zu versuchen eine App so hinzukriegen, dass all damit glücklich sind?

                        Mein Wunsch wäre z.B. bestimmte Funktionen (z.B. aktueller Status des Hauses, Garage öffnen/schließen, usw.) als Widget definieren zu können. Ist sowas geplant?


                        Gesendet von meinem Galaxy Nexus mit Tapatalk
                        Hi,

                        ich bau die App weil ich mir Android beibringen wollte - und mit den Hello World Beispielen war ich schnell durch... Ich denke viele haben eine ähnliche Motivation.
                        Außerdem wollte ich eine App bauen die so ist wie ICH es mir vorstelle (die Grafik stell ich mir nicht so vor, aber das ist jetzt auch nicht prioritär).
                        Widget hab ich geplant und auch schon angefangen (ist leider etwas tricky), mein Ziel ist es, nicht nur den Status anzuzeigen sondern auch Schalter/Szenarien drauf zu geben... Aber wie gesagt, das wird noch einige Zeit dauern. Ist ja auch nur ein Hobbyprojekt von mir.

                        lg
                        markus

                        Kommentar


                          #57
                          Exkurs Gruppenadressen / Statusobjekte

                          Habe gesehen das es hier wohl Unklarheiten gibt bezüglich Gruppenadressen und Statusobjekte.

                          1. Grundsätzlich muss man wissen das der KNX-Bus eine Multicast Adressierung verwendet und Event gesteuert ist, z.B. Taster sendet den Wert 1 an Schaltaktor für Licht ein. Der Schaltaktor kann dann zurücksenden eine 1 für Licht ist eingeschaltet. Diese Rückmeldung wird aktiv von der Schaltaktor-Applikation zurückgesendet. Hier legt der Ersteller der Applikation fest ob und wie eine Rückmeldung erfolgen kann.

                          2. Das Read auf eine Gruppenadresse hingegen wird vom jeweiligen KNX-Stack zurückgesendet. Die Implementierung ist für den Stack-Hersteller Pficht. Der Ersteller der Applikation kann über Flags ggf. nur festlegen ob ein Read auf ein Objekt erlaubt ist. In der Regel dann über die ETS aktivierbar.

                          3. Das Read-Telegramm wird von der Applikation nicht von einem Write-Telegramm unterschieden. Beide setzen in der Objektstruktur des KNX ein Update-Flag und schreiben den Wert in das Objekt. Dies ist wichtig zu wissen, das die Antwort auf ein Objekt-Read kaum von einem Objekt-Write zu unterscheiden ist.

                          4. Visualisierungen haben hier oft ein Problem da der Status permanent angezeigt werden soll. Hierzu sind die Schaltbefehle als auch die Rückmeldungen heranzuziehen. Die Frage ist hier, welche Wahrheit will man anzeigen. Es gibt eigentlich drei Zustände für eine Lampe, EIN, AUS und undefiniert. Beim Start einer Visualiserung ist der Zustand zunächst undefiniert. Erst mit dem ersten eintreffenden Schalttelegramm ist der Zustand definiert EIN oder AUS.

                          5. Status ist nicht Status. Normalerweise zeigt die Statusanzeige eines Tasters an ob die Lampe Ein- oder Ausgeschaltet ist. Dumm nur, das eine Lampe über mehrere Gruppenadressen geschaltet werden kann. Man spricht von überlappenden Schaltgruppen, z.B. zwei einzeln schaltbare Lampen und ein Zentral-EIN/AUS. Die Zentralschaltung erfolgt in der Regel über eine dritte Gruppenadresse. Wenn nun der Status der Lampen an jeweils einer der ersten Lampen hängt wirds kritisch. Eingeschaltet über jeweils die Einzelgruppenadresse zeigt der Status an den Tastern EIN, ausgeschaltet über Zentral, schon ist's passiert, die Taster zeigen Status EIN, obwohl die Lampen beide aus sind.

                          6. Aktive Rückmeldung über Rückmeldegruppenadresse heisst hier die Lösung. Die Applikation meldet aktiv den Schaltvorgang zurück. Es wird hierfür dann eine eigene Rückmeldegruppenadresse verwendet. Wird nun im obigen Beispiel eine 4. und 5. Gruppenadresse als Rückmeldung auf die Einzeltaster verwendet, so können die Taster jeweils den richtigen Zustand der Lampe wiedergeben auch wenn diese nicht von den Einzeltastern eingeschaltet wurden. Oft werden hier wegen der einfacheren Konfiguartion in der ETS separate Rückmeldeobjekte verwendet.

                          7. Problemfall Dimmaktoren. Die Dimmaktoren haben nach KNX-Spezifikation mindestens 3 Objekte, ein Schaltobjekt, ein Dimmobjekt und ein Werteobjekt. Das Schaltobjekt hat zwei Funktionen, EIN-Aus-schalten als auch den Schaltzustand senden. Der Schaltzustand wird auch gesendet, wenn der Dimmaktor aussgeschaltet war und über ein Dimm- oder Wertetelegramm eingeschaltet wurde. Habe ich jetzt mehr als einen Dimmaktor in der Gruppe und ich sende z.B. 50% auf das Werteobjekt, so schaltet der Dimmaktor ein und dimmt auf 50%. Das Einschalten wird jetzt über das Schaltobjekt auf alle Dimmaktoren in der Gruppe gesendet und alle schalten auf 100%. Da das Schalten nach KNX EIS2 Spezifikation auch Rückgemeldet werden muss kommt es zum Lawineneffekt. Daher haben heute fasst alle Dimmaktoren ein separates Rückmeldeobjekt.

                          8. Statuslesen bei Programmstart. Grundsätzlich haben alle Visualisierungen das Problem, das der Status mit dem Programmstart gelesen werden muss. Dies macht nicht immer Sinn und kann ggf. sogar eine Funktion auslösen, siehe Beispiel oben mit dem Dimmaktor. Bei Jalousieaktoren macht es z.B. keinen Sinn da der Status nur Auf oder Zu wiedergeben kann. Der Status einer Jalousie die nur halb gefahren ist kann nicht wiedergegeben werden (es sei denn der Jalousieaktor hat auch ein Werteobjekt). Das unbedarfte Lesen kann so auch eine Funktion auslösen. Der Jalousieaktor auf 50% könnte durch das Lesen des BEWEG-Objektes sogar seine Fahrt fortsetzen. Werden viele Gruppenadressen verwendet, so kann das Lesen aller gleichzeitig ebenfalls Probleme in den Gateways verursachen wenn alle Rückmeldungen auch gleichzeitig empfangen werden müssen.

                          9. Implementierungsvorschlag:
                          Die Rückmeldung sollte parametrierbar sein, z.B. Taster, Anzeige des Schaltbefehls, Anzeige eines Rückmeldeobjektes (separate Gruppenandresse), keine Statusanzeige solange kein gültiger Wert vorliegt.
                          Bei Initialisierung: die Rückmeldung lesen, auf erste Rückmeldung warten, Zeitverzögerung für Lesen Rückmeldung.
                          Beim Dimmem will man oft den Status einer Lampe auf einen Blick sehen. Da empfielt es sich eine Balken- oder Prozentanzeige anzuzeigen. Ggf. noch kombiniert mit einer Leuchte die heller und dunkler wird. Die Dimmanzeige sollte zwei Objekte haben, eine für den Helligkeitswert und eine für den Schaltwert. Grundsätzlich ist der Helligkeitswert in % zu übernehmen, Empfang auf dem Schaltobjekt setzt entsprechen 0% oder 100%.

                          10. Die optimale Implementierung für einen Dimmer hat 3 Elemente und 5 Objekte.
                          Elemente: 1. Taster Aus/AB, 2. Taster Ein/Auf, 3. Schieberegler 0-100%. Die Beiden Taster gehören zusammen und haben gemeinsam ein Schaltobjekt, ein Rückmeldeobjekt und ein Dimmobjekt. Analog zum Verhalten richtiger KNX-Taster kurze Betätigung sendet EIN bzw. AUS, lange Betätigung (und halten) größer 0,6 Sekunden sendet Dimm-Auf bzw. DIM-Ab, mit dem Loslassen wird Dimm-Stop gesendet.
                          Der Schieberegler sendet nach Verstellung und loslassen den entsprechenden Prozentwert. Die Elemente Taster und Schieberegler müssen nicht zwingend kombiniert werden. Vorrausgesetzt entsprechend verbundene Rückmeldeobjekte bei den Dimmaktoren sorgen dafür das der Status der Taster und des Schiebereglers entspreched aktualisiert werden.


                          Ich hoffe ich konnte mit diesem Beitrag etwas Licht in dieses schwierige Thema bringen.

                          lg
                          Roland

                          Kommentar


                            #58
                            Zitat von mclb Beitrag anzeigen
                            Wieso baut ihr eigentlich jeder eure eigene App statt zu versuchen eine App so hinzukriegen, dass all damit glücklich sind?

                            Mein Wunsch wäre z.B. bestimmte Funktionen (z.B. aktueller Status des Hauses, Garage öffnen/schließen, usw.) als Widget definieren zu können. Ist sowas geplant?


                            Gesendet von meinem Galaxy Nexus mit Tapatalk
                            Ich baue meine eigene APP weil es mir Spaß macht zu programmieren :-)
                            Allerding wollte ich die App (vorerst) auf mein Haus/Projekt abstimmen.

                            Bisher (in den ersten 2 Tagen) habe ich den Buszugriff hingerkriegt, danke noch mal an Makrus, jetzt bin ich dabei eigene Buttons für Licht, Rollos usw. einzubauen,
                            und allgemeint das Design zu bestimmen.

                            Üner ein Widget für Status Objekte habe ich auch schon nachgedacht.

                            Gruß
                            Thomas

                            Kommentar


                              #59
                              Na OK ... ich bin froh, dass ihr das macht und ich nicht Java auch noch lernen muss ;-)

                              Folgende Dinge wären für mich auch noch interessant:
                              - Verteilung auf mehrere Endgeräte, z.B. ich erstellt die Visu auf meinem Handy und meine Frau muss sich nur noch mit mir synchronisieren.
                              - Anwender Version, also ich kann die Handy Visu erstellen, meine Frau nur anwenden.

                              Ist was in die Richtung auch angedacht?

                              Kommentar


                                #60
                                Zitat von mclb Beitrag anzeigen
                                Na OK ... ich bin froh, dass ihr das macht und ich nicht Java auch noch lernen muss ;-)

                                Folgende Dinge wären für mich auch noch interessant:
                                - Verteilung auf mehrere Endgeräte, z.B. ich erstellt die Visu auf meinem Handy und meine Frau muss sich nur noch mit mir synchronisieren.
                                - Anwender Version, also ich kann die Handy Visu erstellen, meine Frau nur anwenden.

                                Ist was in die Richtung auch angedacht?
                                also zu 1) das geht bereits. zwar nicht so wie du es beschrieben hast, aber in der aktuellen Version kannst du ein Projekt mit irgendeinem beliebigen Texteditor bauen und dann auf den Android Geräten importieren.
                                ad 2) versteh ich nicht ganz. Sag deiner Frau (nachdem du ihr das Projekt importiert hast) sie braucht nur im ersten Tab ("Räume") die Lichter/Jalousien bedienen.... Hmm. oder ich hab die Frage nicht verstanden

                                lg
                                markus

                                Kommentar

                                Lädt...
                                X