Ankündigung

Einklappen
Keine Ankündigung bisher.

Aktor von Konsole ansteuern

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

    KNX/EIB Aktor von Konsole ansteuern

    Hallo Zusammen,

    ich habe folgende Geräte:
    ABB SV/S 30.160.5 (Spannungsversorgung für den Bus)
    ABB IPS/S 2.1 (Ethernet - Schnittstelle ABB i-bus)
    ABB SA/S 8.16.6.1 (Schalteinheit mit 8 Schließkontakten)
    + Spannungsversorgung für das IPS/S 2.1

    was ich mit der ETS3.0f bereits eingerichtet habe:
    - feste IP
    - Hardware - Adresse
    - "Test"-Gruppenadresse (Ausgang A-G Schalten)

    was ich auf einer Ubuntu 14.04 Server Installation (in Virtualbox) habe:
    - eibd
    - smartVISU (nur installation ohne fertige Konfiguration / nicht weiter verifiziert)

    was geht bisher:
    - groupswrite ip:localhost 0/0/1 0/1

    Ich kann also von der Konsole aus die Test - Gruppe an uns aus schalten.

    was ich noch nicht gefunden haben:
    - kann ich die einzelnen Ausgänge von der Konsole ohne weitere Einstellungen über die ETS ansprechen / schalten? Wenn ja, wie?
    - kann ich von der Konsole aus die Einstellungen / den Status der einzelnen Schalter abfragen? Wenn ja, wie?
    - muss ich noch etwas über die ETS einstellen? Wenn ja, was?

    Ziel ist es die komplette Steuerung der Aktoren / Schalter über die Linux Konsole zu realisieren. Hintergrund: es gibt bereits ein Frontend, nur die vorher benutzte Relais - Karte taugt nichts / fällt ständig aus uns wurde nun durch oben genannte Komponenten ersetzt.

    Ich habe bereits im Forum und im Internet gesucht, aber nichts gefunden.

    Vielen Dank für Eure hilfe.

    Gruß
    lustigerpinguin

    #2
    Installiere dir den eibd (https://www.auto.tuwien.ac.at/~mkoegler/index.php/eibd) und nutze die diversen darin enthaltenen "Demo"programme wie groupswrite usw.
    Es gibt ansonsten auch diverse Bindings zu Skriptsprachen oder gleich ganze Pakete wie z.B. smarthome.py, linknx, openHAB, ...

    Max

    Kommentar


      #3
      Wenn ich die Frage richtig verstehe, dann ist die Antwort so trivial, dass sich mir die Frage aufdraengt: "Handbuch vom Aktor gelesen?" Insbesondere die KO-Liste sollte eigentlich alle Fragen beantworten.

      Zusammenfassung: Eine GA pro schalt-/status-/sonstwas-Funktion in der ETS anlegen. Also fuer einen Schaltaktor pro Kanal typischerweise min. zwei GAs (schalten & Status, ggf. noch Sperren). Hier scheint nur der zentral-AN/AUS eine GA zu haben?!

      Aber vielleicht hab' ich die Frage(n) auch falsch verstanden?!

      Kommentar


        #4
        Danke für die schnellen Antworten.

        @l0wside
        wie ich geschrieben habe habe ich schon eibd und smartvisu installiert.
        Ich habe auch die Ausgänge geschaltet bekommen; da liegt also nicht ganz das Problem.

        @DiMa
        Das mit dem Handbuch ist wirklich zu "trivial" gewesen
        Ich habe nur den Beipackzettel durchgeschaut, dort steht mehr oder weniger nichts drin.
        Ich habe aber nun das Handbuch gefunden und werde mich mal durchwühlen.
        Wenn ich Deine Antwort weiterhin richtig verstanden habe gibt es nur ein (zwei) Kommando(s) für die Gruppenansteuerung, was soviel heißt: wenn ich die Ausgänge einzeln ansteuern will muss ich entsprechend Gruppen anlegen; so richtig?
        Ich gehe davon aus das Du die Frage im Ganzen richtig verstanden hast.

        So, ich werde mir mal die 180 Seiten durchlesen; sollte ich das benötigte nicht finden melde ich mich wieder.

        Gruß

        lustigerpinguin

        Kommentar


          #5
          Gelöscht.

          Kommentar


            #6
            Hallo,

            ich bin nun etwas weiter.

            Ich bekomme es hin mittels
            groupswrite ip:localhost 0/2/1 1
            der Ausgang B von meinem ABB SA/S 8.16.6.1 geschaltet wird (hier: an).

            Ebenso kann ich alle weiteren Ausgänge einzeln, als auch alle Ausgänge gleichzeitig schalten.

            Über die ETS3 bekomme ich es ebenfalls hin die Ausgänge zu schalten.

            Was mir noch Probleme bereitet ist das Lesen des Status.

            Ich kann über die ETS3 den Status der Ausgänge abfragen, sowohl einzeln als auch die Gruppe mit allen Ausgängen.

            Nur wie bekomme ich das über die Konsole hin?
            Alle Versuche etwas zu schicken haben mir zwar irgendeine Rückmeldung gebracht, aber nie die richtige.

            Ich habe in einem zweiten Fenster
            groupsocketlisten ip:localhost
            laufen um die Infos vom Bus mitzubekommen; klappt auch soweit.

            Welches Kommando mit welchem Parameter benötige ich um den "Status Schalten" auszulesen?
            Ich habe mir eine Gruppenadresse für alle Ausgänge (0/1/0) und eine Gruppenadresse für die einezeln Ausgänge (0/1/1 ... 0/1/12) angelegt.
            Von der ETS aus kann ich sowohl die einzelnen als auch die Gruppenadresse mit richtigem Ergebnis abfragen.

            Beim Schalten muss ich nur hinter 'groupswrite ip:localhost 0/2/3 ' den Wert 0 oder 1 für aus oder an setzten -> wie geht das beim Status? Was muss da wie mitgegeben werden?

            Danke für Eure Hilfe.

            Gruß

            lustigerpinguin

            Kommentar


              #7
              Zitat von lustigerpinguin Beitrag anzeigen
              Welches Kommando mit welchem Parameter benötige ich um den "Status Schalten" auszulesen?
              Ich habe mir eine Gruppenadresse für alle Ausgänge (0/1/0) und eine Gruppenadresse für die einezeln Ausgänge (0/1/1 ... 0/1/12) angelegt.
              Von der ETS aus kann ich sowohl die einzelnen als auch die Gruppenadresse mit richtigem Ergebnis abfragen.
              Flags - KNX/EIB - Lexikon - KNX-User-Forum

              Zitat von lustigerpinguin Beitrag anzeigen
              Beim Schalten muss ich nur hinter 'groupswrite ip:localhost 0/2/3 ' den Wert 0 oder 1 für aus oder an setzten -> wie geht das beim Status? Was muss da wie mitgegeben werden?
              groupreadresponses -> Hier der Link zur Doku: https://www.auto.tuwien.ac.at/~mkoeg...kdoc-0.0.5.pdf
              Umgezogen? Ja! ... Fertig? Nein!
              Baustelle 2.0 !

              Kommentar


                #8
                Hallo JuMi2006,

                zu Deinem ersten Link:
                Das hatte ich soweit, ich das beurteilen kann, alles richtig.

                zu Deinem zweiten Link:
                mit dieser Doku komme ich nicht klar; ich kann daraus nirgends erkennen welchen Wert ich beim lesen mitgeben muss / welches Kommando ich am besten benutzte:
                in der ETS klicke ich mit rechts auf die Gruppenadresse von Status Ausgang 5 (0/1/5) und dort dann auf lesen -> in dem nächsten Fenster klicke ich auf lesen und bekomme dann im GruppenMonitor den Status von dem Ausgang angezeigt.
                Das funktioniert aber nicht mit dem eibd (ich habe in einer anderen Shell groupsocketlisten ip:localhost laufen -> da bekomme ich immer angezeigt was auf dem Bus passiert -> nur keine Status - Meldungen.

                Für eine "einfache/genaue" Antwort wäre ich dankbar.

                Kommentar


                  #9
                  Sorry für meinen ersten Post, ich sollte genauer lesen...

                  JuMi hat das schon richtig benannt: groupreadresponse ist das richtige Kommando.
                  Syntax: groupreadresponse local:/tmp/eib 4/7/11

                  Es hat genau den gleichen Effekt wie Rechtsklick->Lesen in der ETS, liefert allerdings die Rohdaten zurück (d.h. z.B. 0C 0D statt 20,74°C). Bei einem Schaltaktor sollte das allerdings weitgehend egal sein, der kennt ja nur DPT1, d.h. 0 und 1.

                  Gruß,

                  Max

                  Kommentar


                    #10
                    Zitat von l0wside Beitrag anzeigen
                    Bei einem Schaltaktor sollte das allerdings weitgehend egal sein, der kennt ja nur DPT1, d.h. 0 und 1.
                    Das ist aber mal ein harte Aussage. Da würde ich widersprechen.

                    Geniale Menschen sind selten ordentlich, ordentliche selten genial. (Albert Einstein)

                    Kommentar


                      #11
                      @l0wside
                      soweit so gut...

                      Was ich nun hinbekommen habe:
                      wenn ich auf einem Terminal
                      Code:
                      groupsocketlisten ip:localhost
                      laufen habe bekomme ich nach dem senden von
                      Code:
                      groupreadresponse ip:localhost 0/1/0
                      folgende Ausgabe bei groupreadresponse:
                      Send request
                      Read from 0.0.0
                      Response from 1.0.2: 00

                      und folgende Ausgabe bei groupsocketlisten:

                      Read from 0.0.0 to 0/1/0
                      Response from 1.0.2 to 0/1/0: 00
                      Response from 1.0.2 to 0/1/0: 01
                      Response from 1.0.2 to 0/1/0: 00
                      Response from 1.0.2 to 0/1/0: 00
                      Response from 1.0.2 to 0/1/0: 01
                      Response from 1.0.2 to 0/1/0: 00
                      Response from 1.0.2 to 0/1/0: 00
                      Response from 1.0.2 to 0/1/0: 00
                      Beide Antworten erfolgen ohne Verzögerung (der Prompt nach groupreadresponse ist sofort wieder da). Die Adresse 1.0.2 ist mein Aktor und die gelieferten Status entsprechen den Ausgängen (leider ohne genau Spezifikationen).

                      Wenn ich nun folgende Befehle nacheinander absetze
                      Code:
                      groupreadresponse ip:localhost 0/1/1
                      Konsolenoutput:
                      Send request
                      Read from 0.0.0
                      Code:
                      groupreadresponse ip:localhost 0/1/2
                      Konsolenoutput:
                      Send request
                      Read from 0.0.0

                      Habe ich in groupsocketlisten folgende Ausgabe stehen:

                      Read from 0.0.0 to 0/1/1
                      Response from 1.0.2 to 0/1/0: 00
                      Read from 0.0.0 to 0/1/2
                      Response from 1.0.2 to 0/1/0: 01
                      (zwei Zeilen pro Aufruf)

                      Soweit wäre das auch noch "brauchbar" wenn nicht der groupreadresponse erst mal noch ca. 10sec wartet pro Aufruf

                      Hier noch ein Screenshot von meiner Gruppeneinrichtung für die Statusabfrage (Kontakt 2 hatte ich testweise umbenannt) für alle Kontakte
                      knx-statuskonfig-alle.png
                      und die einzelnen Kontakte sind nochmals so eingestellt
                      knx-statuskonfig-single.png

                      Sollte an dieser Einstellung etwas erkennbar falsch sein bin ich auch für Infos dankbar.

                      Nochmals abschließend die Frage: gibt es kein Tool das den Status abfragt und dann das Ergebnis direkt liefert?
                      Jetzt ist es so dass ich immer auf dem Bus die Antwort abgreifen muss.

                      Danke.

                      Kommentar


                        #12
                        @magiczambo: irgendwann baue ich mir einen Disclaimer-Footer

                        @funnypenguin: so recht klar ist mir dein Vorhaben immer noch nicht. Den groupsocketlisten brauchst du eigentlich gar nicht, groupreadresponse sollte reichen. Die 10s Verzögerung sind aber seltsam.

                        Vermutlich bist du besser bedient, wenn du eines der üblichen Automatisierungsframeworks verwendest statt den eibd direkt. Beispiele: linknx, sh.py, OpenHAB, ...

                        Max

                        Kommentar


                          #13
                          @l0wside
                          was ich genau vorhabe:
                          ursprünglich gab es zwei Relais - Karten, und einen RasPi. Gesteuert wurde das ganze über eine selbst erstellte (das hatte ich nicht realisiert) Webseite.
                          Von dort konnte man in den Räumen das Licht an und aus schalten.

                          Nun war das Problem dass die Relais - Karten öfters einen Reset benötigt haben bis sie wieder funktioniert haben und nach kurzer Zeit auch schon der erste Satz an Karten defekt war.

                          Darauf hin wurde entschieden das ganze mit KNX - Geräten zu realisieren: aber nur den "Hardware" Teil -> das Frontend sollte so bleiben.

                          In der vorherigen Steuerung gab es kein Kommando mit dem ich die Relais setzten oder zurücksetzen konnte.

                          Das konnte ich mit KNX soweit realisieren.

                          Die Ausgänge sind hier aber bistabil. Nun müsste ich noch den Status (An/Aus) abfragen.

                          Mit groupreadresponse bekomme ich den Aktor dazu die Informationen auf dem Bus auszugeben -> die kann ich dann mit groupsocketlisten lesen.
                          Problem 1: ich muss mit einem Programm die Aufforderung senden und mit einem weiteren Programm die Infos wieder lesen
                          Problem 2: wenn ich nicht die Gruppenadresse (alle Ausgänge) anspreche sondern nur einen einzelnen Ausgang habe ich immer eine lange Wartezeit bis das Programm grgroupreadresponse wieder an der Eingabeaufforderung verfügbar ist.

                          Wünschenswert: ein Programm dem ich als Parameter z.b. den eibd und die Gruppenadresse für die Statusabfrage mitgebe und das mir als Antwort den Status liefert.

                          Ich hoffe mein Anliegen ist nicht zu ungewöhnlich für den eibd.

                          Danke.

                          Gruß
                          lustigerpinguin

                          Kommentar


                            #14
                            Danke, jetzt wird es klarer.

                            Warum brauchst du groupsocketlisten? Bei mir geht das so:
                            Code:
                            root@hausmeister:~# groupreadresponse local:/tmp/eib 1/1/1
                            Send request
                            Read from 0.0.0
                            Response from 1.1.30: 00
                            Du kannst dir ggf. auch den (nicht sonderlich komplizierten) Sourcecode von groupreadresponse anschauen und auf deine Bedürfnisse anpassen.

                            Ansonsten: eine Gruppenadresse kann sich (trotz des Namens) auch nur auf einen Kanal beziehen. Warum du lange warten musst, ist mir unklar.

                            Max

                            Kommentar


                              #15
                              Danke für die Info.

                              Was macht bei Dir die Angabe -> local:/tmp/eib <- genau?
                              Wenn ich den Bus ansprechen will gehe ich über meine Netzwerkschnittstelle die ich mit -> ip:localhost <- anspreche.

                              Wenn ich dann den Status von allen 8 Ausgängen abfrage ist das Programm auch wieder direkt auf der Konsole; bei den einzelnen Kanälen hängt es immer und wartet vermutlich bis zu einem timeout.

                              Was den Vorschlag mit der Anpassung des Sourcecodes angeht: Ich kann nicht Programmieren.

                              Aber vielleicht haben wir auch unterschiedliche Programme im Einsatz.
                              Hier mal ein paar Infos von meinem Programm:

                              Code:
                              root@vm-srv-01:~# ls -l /usr/bin/groupreadresponse
                              -rwxr-xr-x 1 root root 8640 Mär  5  2011 /usr/bin/groupreadresponse
                              root@vm-srv-01:~# md5sum /usr/bin/groupreadresponse
                              6be32934c7c07dcf9b945e84e8ab9ab8  /usr/bin/groupreadresponse
                              Vielen Dank für weitere Infos.

                              lustigerpinguin

                              Kommentar

                              Lädt...
                              X