Ankündigung

Einklappen
Keine Ankündigung bisher.

Lichtszenenabruf per Misterhouse in der Iphone Visu möglich?

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

    Lichtszenenabruf per Misterhouse in der Iphone Visu möglich?

    Hallo zusammen,
    wenn man(n) einmal mit dem "netten" Herrn House angefangen hat gehts immer weiter...

    Ich habe mir mal eine Szene im TS2+ definiert, und würde diese gerne über Mh aufrufen, geht das?

    Das EIB6 habe ich in meiner groups.pl schon angelegt funzt auch, nur habe ich keinen Taster dabei.

    Kann es sein das man hier analog Rak´s EIBW verfahren müsste, sprich ein eignens Pearl Scipt schreiben?

    Wenn dann vergesse ich es wieder!

    Danke
    Christoph

    #2
    Mit ner eigenen Klasse geht alles . Wenn du das angehen willst, dann gerne. Ich haette auch INteresse daran, aber im Moment keine Zeit die selber anzugehen.

    Anders geht es aber auch. Was mir spontan (ohne neue Klasse) einfallt ware eine Gruppe von EIB1 Items mit je einem Item je Szene (Putzen, Kuscheln, TV, Essen, ...).

    Die EIB1 Items machst du in eine Gruppe und baust sie entsprechend in deine $main ein. Damit kannst du die EIB1 Items in der iPhone Visu setzen.

    Dazu ein EIB6 Item (zB $Szene), welches mit der SzenenGA verbunden ist.

    Dann ein wenig Perl Code:

    tie_event $Putzen 'if ($state eq ON) {set $Putzen OFF; set $Szene 1}';
    tie_event $Kuscheln 'if ($state eq ON) {set $Kuscheln OFF; set $Szene 2}';

    Was passiert hier? Wenn $Putzen verandert wird, dann wird der Code dahinter ausgeführt. Hier wird dann Putzen wieder auf OFF gesetzt und auf das Szenen Objekt der entsprechende Szenenwert gesendet.

    Je Szene eine solche Code Zeile und fertig ist die Laube. Nicht extrem schön, aber aus meiner Sicht durchaus brauchbar.

    Kommentar


      #3
      Danke für die Antwort, eine Frage noch, den Pearl Code, schreibe ich in eine
      beliebig benannte *.pl und speichere diese in meinem "code" Ordner?

      Danke
      Christoph

      Kommentar


        #4
        Exakt!

        Kommentar


          #5
          Wenn meine Frau mich gleich lässt,
          probiere ich das mal aus!

          Christoph

          Kommentar


            #6
            Zitat von RaK Beitrag anzeigen

            tie_event $Putzen 'if ($state eq ON) {set $Putzen OFF; set $Szene 1}';
            Funzt soweit !

            Allerdings "Houston we have a problem!" sendet Misterhouse bei der 1 keine Szene $00 (sprich Byte 1) sondern $03 bei der 0 sendet er allerdings die $00 also Szene 1??

            Zum Abschluss noch: bei 2 sendet er $05 ?

            Ich verstehe nix mehr, wie bekomme ich den die $02 in meinen TS2+ Eingang?

            Danke für Hilfe!

            Christoph

            Kommentar


              #7
              Wie sieht die Definition des Objektes Szene in der *.mht aus?

              Kommentar


                #8
                Du hast sichelich EIB6 genutzt:
                Code:
                # EIB6_Item: "scaling". Relative values 0-100% with 8 bit resolution
                1: 255/100 * 1 = 2,55 = 3
                2: 255/100 * 2 = 5,10 = 5

                Wir brauchen hier ein EIB6_Item mit Werten zwischen 0 und 255. Den hat anscheinend noch keiner gebraucht mit MH.

                Probier mal folgendes:

                Eine neue Datei (zB. eib61_test.pl)
                Code:
                # noloop=start
                use EIB61_Item;
                # noloop=stop
                
                # GA anpassen!
                $Szene                      =  new EIB61_Item('1/4/6', 'R');
                Eine neue Datei (EIB61_Item.pm)
                Code:
                # EIB61_Item: "scaling". Relative values 0-255 with 8 bit resolution
                
                package EIB61_Item;
                
                @EIB61_Item::ISA = ('EIB_Item');
                
                sub eis_type {
                    return '6.1';
                }
                
                sub decode {
                    my ($self, @data) = @_;
                    my $res;
                
                    unless ($#data == 1) {
                        &main::print_log("Not EIS type 6.1 data received for $self->{groupaddr}: \[@data\]") if $main::config_parms{eib_errata} >= 2;
                        return;
                    }
                    $res = sprintf("%.0f", $data[1] );
                    return $res;
                }
                
                sub encode {
                    my ($self, $state) = @_;
                    my $newval;
                    if ($state =~ /^(\d+)$/) {
                        $newval = $1;
                    }
                    elsif ($state =~ /^\+(\d+)$/) {
                        $newval = $self->{state} + $1;
                        $newval = 255 if ($newval > 255 );
                    }
                    elsif ($state =~ /^\-(\d+)$/) {
                        if ($self->{state} < $1) {
                            $newval = 0;
                        }
                        else {
                            $newval = $self->{state} - $1;
                        }
                    }
                    elsif ($state =~ /^(\d+)\%$/) {
                        $newval = $1;
                    }
                    else {
                        print "Invalid state for EIS type 6: \'$state\'\n";
                        return;
                    }
                    my $byte = sprintf ("%.0f", $newval );
                    return([0, int $byte]);
                }
                
                # 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);
                    }
                }
                Alles ungetestet und erst mal ohne Gewahr .

                Bis zum nachsten Problem.

                PS: Frage an die ETS Profies: Wie unterscheidet die ETS zwischen den beiden EIS typen? Gibt es da offizielle Bezeichnungen für die beiden unteerschiedlichen Wertebereite?

                Kommentar


                  #9
                  Zitat von RaK Beitrag anzeigen

                  PS: Frage an die ETS Profies: Wie unterscheidet die ETS zwischen den beiden EIS typen? Gibt es da offizielle Bezeichnungen für die beiden unteerschiedlichen Wertebereite?
                  Ich denke das es nur "Makulatur" mit den Prozentwerten ist, die eigentlichen Werte sind $00...$255 die Prozentangabe wird nur in der ETS angegeben, die Aktoren bekommen die Bytes, zumindest habeich das so Verstanden.

                  Sollte ich falsch liegen korrigiert mich, wollte meinem Mh Lehrer auch mal was sagen!

                  Zurück zum Thema, werde ich heute Abend mal testen, hatte auch nicht damit gerechnet das Du "mal eben" ein Scipt schreibst!

                  Sprich wenn ich das richtig verstanden habe bist du jetzt doch schon hier gelandet, zumindest im in der "draft" Version oder?:
                  Zitat von RaK Beitrag anzeigen
                  Mit ner eigenen Klasse geht alles . Wenn du das angehen willst, dann gerne. Ich haette auch Interesse daran, aber im Moment keine Zeit die selber anzugehen.
                  Danke schon mal.
                  Christoph

                  Kommentar


                    #10
                    Die neue Klasse war nur Copy&Paste aus der alten EIB6 Klasse. Nichts weltbewegendes. War in wenigen Minuten erledigt.

                    Kommentar


                      #11
                      Zitat von RaK Beitrag anzeigen
                      # GA anpassen!
                      $Szene = new EIB61_Item('1/4/6', 'R');

                      Funzt pefect!

                      Danke an Rak!

                      Nur das "read" würde ich bzw. habe ich entfernt geht besser, beim starten von MH wird dann die Szene nicht aufgerufen!

                      Gruß
                      Christoph

                      P.S.: die nächsten Ideen sprudeln schon! PushButton analog "stop".
                      Angehängte Dateien

                      Kommentar


                        #12
                        Da ist er, und das habe ich selbst gemacht, ok Rak hat mir meine Idee aus der EIB.Items verbannt und mir vorgeschlagen das als .pm zu machen, aber ich habe den Code selber hinbekommen!

                        Eigenlob stinkt ich weiß, aber ich habe das ohne Probleme hinbekommen,
                        jetzt bitte Vorschläge für einen Button erbeten!

                        Danke Rak!

                        Christoph
                        Angehängte Dateien

                        Kommentar


                          #13
                          Gratulor!

                          GRATULOR! Wie wäre es damit?
                          Angehängte Dateien

                          Kommentar


                            #14
                            Zitat von RaK Beitrag anzeigen
                            GRATULOR! Wie wäre es damit?
                            Schick!

                            Hätte da auch noch so eine Idee.... du hast da ja schon ein Icon, wie wäre es wenn du evt. ein "on" einsetzt und in die iphoneskin integrierst?

                            eventuell wie das hier unten, oder mein neues?

                            Ich finde das sollte vom Design her zu dem gesamten Layout weiter passen, aber das ist mein persönlicher Geschmack!

                            Gruß
                            Christoph
                            Angehängte Dateien

                            Kommentar


                              #15
                              Christoph, was soll ich integrieren? Es läuft doch bei dir.

                              Ich habe vor den EIB61 Item über Optionen als Szenenbaustein direkt in die iphone Skin zu integrieren. Das wäre dir richtige, große Lösung.

                              LG

                              Kommentar

                              Lädt...
                              X