Ankündigung

Einklappen
Keine Ankündigung bisher.

[Misterhouse] Howto - Installation Misterhouse

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

    #16
    Lesen bildet! Was du brauchst findest du im Lexikon hier auf der Seite.

    Sucht mal hier nach set_icon. Die EIBRB Klasse rundet den Status bei der Suche nach den Icons auf ganze 10er Schritte. Fuer die markies Icons von dir bauchst du nur eine Zeile zusatzlich (set_icon) und die entsprechenden Markisen Icons in 10er Schritten im entsprechenden verzeichnis. Fertig ist die Laube.

    Beim Garagentor war eigentlich auch keine eigene Klasse notwendig wenn die Statii (offen, zu und gekippt) gereicht haetten. Joerg wollte den harten Weg gehen. Up to him .

    Kommentar


      #17
      Zitat von RaK Beitrag anzeigen
      Stichwort ETS Export. Klar können wir uns auf andere Klassennamen einigen (DPT anstatt EIS).
      Das Problem ist ganz einfach dass die EIS-Typen a) leicht halbgar sind und b) die ETS eben nur DPTs einstellen lässt (wenn man es denn so machen will, was ich aber für strategisch sinnvoller halte als diese in HS, mh, linknx, openremote etc. jew. nochmal einzustellen) womit eine Umsetzung aber immer mit Verlusten behaftet ist..

      Gibt es irgendwo mal eine Übersicht welche DPT Typen es gibt und wie das genaue Datenformat lautet (RAW)? Ich erkläre mich gerne bereit MH dahingehend zu erweitern, dass er alle DPTs unterstützt.
      EIS->DPT: hier und das von Mike im OPC-Export-Thread.
      Das ganze zu den DPTs gibts auch netterweise direkt von der Konnex, harter Stoff
      Wieviel die ETS davon wirklich umsetzt schreibt mein Tool (vielleicht deswegen) in ein eigenes Export-File ETS_DPT_EIS.txt, meins mal im Anhang

      Testen kann ich die halt nur, wenn ich entsprechende KNX Hardware habe,
      Da gehts mehr um das mh-Paket weil ich zwar vielleicht ein DEB-Paket zimmern kann und ein gewisses unterschwelliges Interesse daran habe, aber ehrlichgesagt weder die Zeit noch den Antrieb habe das auch durchzutesten. Warum ich aktuell nicht zum mh Fanclub gehöre muss ich dazu glaube ich nicht ausführen, Bastelstunde ist einer der Gründe den man mal wegschaffen könnte

      Die Liste der aktuell von MH unterstützten Datentypen samt Syntax wie sie deklariert werden findest du hier.
      Das hatte mit gefehlt. Das mit den EIB(EIS) ist kein Problem aber nun stellt sich natürlich die Frage, was macht man mit dem Rest (G,R) ? das könnte man evtl. zusammenkramen. Die DB gibt eigentlich alles her..
      GA auf mind. einem KO mit Leseflag=R, und wenn ein KO nur auf einer Verknüpfung sendend ist aber an mehr als einem als hörende GA=Gruppe ? Frage mich ob das wirklich Sinn macht bzw. was bringt (?) Bei einer Stichprobe in meinem Projekt hätte ich da nicht mehr als 80% Trefferquote..

      Makki
      Angehängte Dateien
      EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
      -> Bitte KEINE PNs!

      Kommentar


        #18
        Das Konnex Dokument beschreibt genau das was ich suchte. Damit kann ich die einzelnen DPTs implementieren.

        Implementieren muss man aber nur die verschiedenen Data Types (das Format und Encoding). Die Dimension (Range und Unit) sind dann nur vereinzelt notwenig (denk an das Szenen Objekt Beispiel (0-100% vs 0-255, beides binär auf 1 Byte)

        Im Wesentlichen sind das dann diese
        DPT 1 (1 bit) = EIS 1 oder EIS 7 (move=DPT 1.8, step=DPT 1.7)
        DPT 2 (1 bit controlled) = EIS 8
        DPT 3 (3 bit controlled) = EIS 2
        DPT 4 (Character) = EIS 13
        DPT 5 (8 bit unsigned value) = EIS 6 (DPT 5.1) oder EIS 14.001 (DPT 5.10)
        DPT 6 (8 bit signed value) = EIS 14.000
        DPT 7 (2 byte unsigned value) = EIS 10.000
        DPT 8 (2 byte signed value) = EIS 10.001
        DPT 9 (2 byte float value) = EIS 5
        DPT 10 (Time) = EIS 3
        DPT 11 (Date) = EIS 4
        DPT 12 (4 byte unsigned value) = EIS 11.000
        DPT 13 (4 byte signed value) = EIS 11.001
        DPT 14 (4 byte float value) = EIS 9
        DPT 15 (Entrance access) = EIS 12
        DPT 16 (Character string) = EIS 15

        Wo finde ich den die Info über die genau EIS Nummerierung (EIS14.001) zum Beispiel.

        Kommentar


          #19
          Zitat von RaK Beitrag anzeigen
          ....

          Beim Garagentor war eigentlich auch keine eigene Klasse notwendig wenn die Statii (offen, zu und gekippt) gereicht haetten. Joerg wollte den harten Weg gehen. Up to him .
          Hi Ralf,

          diese "eigene" Klasse, fand ich noch easy going, da dies (wie Du so schön sagtest) nur copy & paste war. Alles andere ist für einen Nicht-Programmierenden-Windowser schon etwas anspruchsvoller und bedarf ein wenig Richtungsweisung Mir ging es ja auch darum neben dem neuen Icon auch die Stati "offen - in Bewegung - zu" zu nutzen.

          Besten Gruß,
          Joerg

          Kommentar


            #20
            Zitat von RaK Beitrag anzeigen
            Wo finde ich denn die Info über die genau EIS Nummerierung (EIS14.001) zum Beispiel.
            Einen Beitrag über deinem :-)
            Gruß Matthias
            EIB übersetzt meine Frau mit "Ehepaar Ist Beschäftigt"
            - PN nur für PERSÖNLICHES!

            Kommentar


              #21
              Du meinst das hier? Ich dachte es gibt noch mehr Infos und mehr Typen.

              Kommentar


                #22
                Nein, den Anhang von makki hier, nur ein klitzekleines Stück weiter oben:

                https://knx-user-forum.de/56870-post17.html
                Gruß Matthias
                EIB übersetzt meine Frau mit "Ehepaar Ist Beschäftigt"
                - PN nur für PERSÖNLICHES!

                Kommentar


                  #23
                  Hier mal eine Übersicht welche Datentypen von MH unterstützt werden. Über die Nomenklatur kann man streiten. Da ist sicher noch Verbesserungspotential bzgl. Vereinheitlichung.

                  Aber in Summe sieht das gar nicht so schlecht aus!

                  Unterstützt werden: (DPT, EIS, MH Klasse):
                  DPT 1.000 - EIS 1 - EIB1
                  DPT 1.007 - EIS 7 step - EIB7(2)
                  DPT 1.008 - EIS 7 move - EIB7(1)
                  DPT 3.000 - EIS 2 - EIB2
                  DPT 5.001 - EIS 6 - EIB6
                  DPT 7.000 - EIS 10.000 - EIB10
                  DPT 9.000 - EIS 5 - EIB5
                  DPT 10.000 - EIS 3 - EIB3
                  DPT 11.000 - EIS 4 - EIB4
                  DPT 12.000 - EIS 11.000 - EIB11
                  DPT 13.000 - EIS 11.001 - EIB11S
                  DPT 14.000 - EIS 9 - EIB9
                  DPT 16.000 - EIS 15 - EIB15

                  Ich werde folgende Typen hinzufügen:

                  DPT 6.000 - EIS 14.000 - todo
                  DPT 5.010 - EIS 14.001 - Bisher als EIS61 für die Szene genutzt
                  DPT 8.000 - EIS 10.001 - todo

                  Die folgenden sind mir im realen Leben noch nie begegnet. Gibt es dafür Einsatzbedarf? Wenn ja, kann mir den jemand mal erklären.

                  DPT 2.000 - EIS 8 - ?
                  DPT 4.000 - EIS 13 - ?
                  DPT 15.000 - EIS 12 - ?

                  Was fehlt dann noch?
                  Wie sollen wir die MH Klassen nennen? Nach den DPTs oder nach den EIS namen? Meine Präferenz wären die EIS Namen.

                  Kommentar


                    #24
                    Zitat von RaK Beitrag anzeigen
                    Meine Präferenz wären die EIS Namen.
                    Sehe ich genauso, bei den anderen Sachen halte ich mich zurück, zu wenig Ahnung davon.

                    Christoph

                    Kommentar


                      #25
                      EIB 8 für Zwangssteuerung

                      Zitat von RaK Beitrag anzeigen
                      Die folgenden sind mir im realen Leben noch nie begegnet. Gibt es dafür Einsatzbedarf? Wenn ja, kann mir den jemand mal erklären.

                      DPT 2.000 - EIS 8 - ?
                      DPT 4.000 - EIS 13 - ?
                      DPT 15.000 - EIS 12 - ?
                      Hi,

                      ich bin kürzlich über den EIS 8 gestolpert, als ich eine Zwangssteuerung
                      senden wollte.

                      Habe nach wie vor das Problem, dass ich keinen 2-Bit Wert senden kann.
                      Habe ein Hoftor, dass mit einem Taster 2 Sachen machen kann.
                      1 kurzer Tastendruck löst den Türöffner nach 10 sec aus. Ein langer Tastendruck löst den Türöffner dauerthaft aus, bis wieder losgelassen wird.

                      Ich habe diese Kombination mit einem Binäreingang und einem Aktor realisiert. Nun wollte ich noch über das Telefon eine Aktivierung des Öffners
                      über Misterhouse mit einbauen. Aber da spuckt mir der fehlende EIS 8 in diee Suppe, da ich kein Zwangsobjekt mit MH schicken kann.

                      Gruss
                      mod

                      Kommentar


                        #26
                        Wieder was gelernt . Welche Werte kann man den über die ETS auf eine EIB8 GA senden? Wenn ich den Konnex Standard lese, dann ist das ein 2 Bit Objekt. Ergo könnte man 0-3 senden.

                        Das erste Bit steht für controlled/not controlled und das zweite bit entspricht ON/OFF oder vergleichbares.

                        Da du der bisher einzige User bist, die offene Frage wie hätten sie es den gern? Welche Statii soll ein solches MH Objekt annehmen können?

                        LG

                        Kommentar


                          #27
                          Zitat von RaK Beitrag anzeigen
                          Wieder was gelernt . Welche Werte kann man den über die ETS auf eine EIB8 GA senden? Wenn ich den Konnex Standard lese, dann ist das ein 2 Bit Objekt. Ergo könnte man 0-3 senden.

                          Das erste Bit steht für controlled/not controlled und das zweite bit entspricht ON/OFF oder vergleichbares.

                          Da du der bisher einzige User bist, die offene Frage wie hätten sie es den gern? Welche Statii soll ein solches MH Objekt annehmen können?

                          LG
                          Hi,

                          ich habe nachgesehen, die Zustände sind

                          Zwang aktivieren + einschalten (11)
                          Zwang aktivieren + ausschalten (10)
                          Zwang deaktivieren + ausschalten (00)
                          Zwang deaktivieren + einschalten (01)

                          genau wie Du es oben beschrieben hast. Was meinst Du mit "welche Zustände das MH Objekt annehmen soll" ?

                          Ich weiss nicht ob 01 überhaupt Sinn macht. Ich benutze nur 00 und 11.

                          Gruss
                          mod

                          Kommentar


                            #28
                            Zitat von mod42 Beitrag anzeigen
                            Was meinst Du mit "welche Zustände das MH Objekt annehmen soll" ?

                            Ich weiss nicht ob 01 überhaupt Sinn macht. Ich benutze nur 00 und 11.
                            Wie willst du die Variable in MH Perl Code mit Inhalt bestücken?

                            Code:
                            set $eib8_item '00'; # zum Beispiel
                            Mein Vorschlag wäre '00', '01', '10', '11' als Text (!) also in den Hochkommas.

                            Das wäre auch der text, der per Default in der iPhone Web Ansicht angezeigt wird.

                            Alternative wäre:
                            /A/ 0-3 als Zahl (0 wäre 00, 1 wäre 01, 2 wäre 10, 3 wäre 11)
                            /B/ 'ForcedON-ON', 'ForcedOFF-OFF' , ...

                            It is up to you to decide.

                            Kommentar


                              #29
                              Binary people

                              Ich denke die Binäre Variante ist OK, damit ist ganz klar was passiert.

                              <Zitat>
                              There are only 10 types of people in the world: Those who understand binary, and those who don't
                              </Zitat>


                              Vielen Dank.

                              Kommentar


                                #30
                                Mit folgendem code bitte mal ausprobieren. Ich kann das mangels HW leider nicht. ETS habe ich zur Zeit nicht am Laufen. Ohne Gewähr .

                                Code:
                                noloop=start
                                use EIB8_Item;
                                $test = new EIB8_Item;
                                noloop=stop
                                set $test '00' if ($New_Second && !($Second % 30));
                                Sicher fällt dir auch noch ein wenig intelligenterer Code ein .

                                Dazu das bitte als EIB8_Items.pm im code verzeichnis ablegen.

                                Code:
                                # EIB8_Item: "forced control". 2 bit
                                # Enforcement  ON  + Turn Device ON  (11)
                                # Enforcement  ON  + Turn Device OFF (10)
                                # Enforcement  OFF + Turn Device OFF (00)
                                # Enforcement  OFF + Turn Device ON  (01)
                                
                                package EIB8_Item;
                                
                                @EIB8_Item::ISA = ('EIB_Item');
                                
                                sub eis_type {
                                    return '8';
                                }
                                
                                sub new {
                                    my ($class, $id, $mode) = @_;
                                
                                    my $self  = $class->SUPER::new($id, $mode);
                                    $self->add($id . '00', '00');
                                    $self->add($id . '01', '01');
                                    $self->add($id . '10', '10');
                                    $self->add($id . '11', '11');
                                    return $self;
                                }
                                
                                sub decode {
                                    my ($self, @data) = @_;
                                    my $res;
                                
                                    unless ($#data == 1) {
                                        &main::print_log("Not EIS type 8 data received for $self->{groupaddr}: \[@data\]") if $main::config_parms{eib_errata} >= 2;
                                        return;
                                    }
                                    if ($data[0]  & 0x03 == 0) {
                                        return '00';
                                    } elsif ($data[0]  & 0x03 == 1) {
                                        return '01';
                                    } elsif ($data[0]  & 0x03 == 2) {
                                        return '10';
                                    } else {
                                        return '11';
                                    }
                                
                                }
                                
                                sub encode {
                                    my ($self, $state) = @_;
                                
                                    if ($state eq '00') {
                                        return ([0]);
                                    } elsif ($state eq '01') {
                                        return ([1]);
                                    } elsif ($state eq '10') {
                                        return ([2]);
                                    } elsif ($state eq '11') {
                                        return ([3]);
                                    }
                                    else {
                                        print "Invalid state for EIS type 8: \'$state\'\n";
                                        return;
                                    }
                                }
                                # set receive -- detected a "read" or "write" message on the bus.  For
                                # readable actuators, don't trust the values in "write" messages, as
                                # they may not have been accepted by the actuator. So if it is a
                                # write, and the actuator is readable, generate a read request to
                                # obtain the actual value from the actuator
                                
                                sub set_receive {
                                    my ($self, $state, $set_by, $target, $read) = @_;
                                
                                    if (!$read && $self->{readable}) {
                                        $self->delayed_read_request();
                                    }
                                    else {
                                        $self->SUPER::set_receive($state, $set_by, $target);
                                    }
                                }

                                Kommentar

                                Lädt...
                                X