Ankündigung

Einklappen
Keine Ankündigung bisher.

knxweb und Rollläden

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

    knxweb und Rollläden

    Hallo Zusammen,

    ich bin aktuell leicht am verzweifeln mit knxweb.
    Ich kann einfach keine sinnvolle Schaltervariante finden die meine Rollläden hoch und runter fahren lässt und auch eine Stop unterstützt.

    Hier meine Konfig:
    Code:
    Gruppenadressen:
    Rollladen Fahren : 2/4/0
    Rollladen Stop : 2/4/2
    Code:
    <object id="rol_fahren" gad="2/4/0" type="3.008" init="request">Rollladen</object>
    <object id="rol_stop" gad="2/4/2" type="3.008" init="request">Rollladen Stop</object>
    Wie gesagt, in knxweb kann ich keine Schaltervariante finden die beide Adressen unterstützt. Mach ich hier generell was falsch? Vielleicht schon in der ETS oder ist das ein knxweb problem?

    Viele Grüße

    denghauser

    #2
    Zitat von denghauser Beitrag anzeigen
    Wie gesagt, in knxweb kann ich keine Schaltervariante finden die beide Adressen unterstützt. Mach ich hier generell was falsch? Vielleicht schon in der ETS oder ist das ein knxweb problem?
    Ich nehme für diesen Zweck einen Switch (Blinds) für hochfahren/runterfahren und je einen Multiswitch für Stop/Schritt nach oben (off-on-off) und Stop/Schritt nach unten (on-off-on). Beispiel-URL in meiner Signatur.

    Gruss, Tru
    EIB/KNX, VISU mit knxd + linknx + knxweb, Steuerbefehle via SMS und Email mit postfix + procmail

    Kommentar


      #3
      Hallo Tru,

      und wie hast du das in der linknx.xml definiert?
      Kannst du hier mal ein Ausschnitt posten?
      Ich nehme ja Objekttyp 3.008 und irgendwie habe ich das gefühl die Befehle werden nie ausgelöst.
      Ich habe in deiner Grafik auch die schönen hoch und runter Symbole neben den Rollläden gesehen, sind das selbstgestrickte objekte oder nur geschickt platzierte Multiswitches?

      Eine Frage noch, die normalen switches reagieren doch beim drücken direkt mit der entgegengesetzten Aktion, also aus hoch wird runter, ohne eine echte Pause dazwischen. Ich hätte gern einen Knopf der mir erlaubt runter zu fahren und nicht wieder hoch zu fahren bis ich entweder stop gedrückt habe oder der Rollladen ganz unten ist.
      Hast du hierzu auch eine Idee?

      Viele Grüße

      denghauser

      Kommentar


        #4
        Zitat von denghauser Beitrag anzeigen
        und wie hast du das in der linknx.xml definiert?
        Kannst du hier mal ein Ausschnitt posten? Ich nehme ja Objekttyp 3.008 und irgendwie habe ich das gefühl die Befehle werden nie ausgelöst.
        Gemäss Gruppenadress-Liste meines Elis sind es 1bit-Typen. Ich habe deshalb Objekttyp 1.001 genommen, z.B.
        Code:
            <object type="1.001" id="store1_fahr" gad="1/3/0" flags="cwtf">Store fahren Schlafzimmer</object>
            <object type="1.001" id="store1_stop" gad="1/3/1" flags="cwtf">Store stop Schlafzimmer</object>
        Zitat von denghauser Beitrag anzeigen
        Ich habe in deiner Grafik auch die schönen hoch und runter Symbole neben den Rollläden gesehen, sind das selbstgestrickte objekte oder nur geschickt platzierte Multiswitches?
        Ja, das sind die Multiswitches mit den zugeordneten Graphiken.
        Zitat von denghauser Beitrag anzeigen
        Eine Frage noch, die normalen switches reagieren doch beim drücken direkt mit der entgegengesetzten Aktion, also aus hoch wird runter, ohne eine echte Pause dazwischen. Ich hätte gern einen Knopf der mir erlaubt runter zu fahren und nicht wieder hoch zu fahren bis ich entweder stop gedrückt habe oder der Rollladen ganz unten ist.
        Hast du hierzu auch eine Idee?
        Hab ich das richtig verstanden: du möchtest nach einem Stop den Rollladen weiter in die gleiche Richtung fahren lassen können? Das geht mit meinem Setup tatsächlich nicht. Ich weiss auch nicht, wie sich das realisieren liesse. Allerdings vermisse ich das auch nicht wirklich, ich klicke dann einfach zwei mal auf den Rolladen-Switch.

        Gruss, Tru
        EIB/KNX, VISU mit knxd + linknx + knxweb, Steuerbefehle via SMS und Email mit postfix + procmail

        Kommentar


          #5
          Hallo!

          Ich bin im Moment nicht am heimischen PC aber ich hab daheim eine Konfiguration mit jeweils einem Button AUF / AB / STOP (je ein Multiswitch) welche bei jedem Tastendruck das entsprechende Telegramm auslösen.

          Nebenbei wirft die Konfiguration auch noch einen weiteren Multiswitch als Statusmeldung ab (Rollo fährt hoch / runter / steht / steht bei 0% / steht bei 100%).

          Ich bin mit dem Ganzen zwar im Bereich der Statusmeldung zwar auch noch nicht so 100%ig zufrieden (WIP) aber ich poste das Ganze mal heute Abend.

          Bis dahin kannst Du ja mal hier im Forum nach "Rolladen" "stateless" "Multiswitch" suchen. Da springen so 2 - 3 Threads heraus die mir bis dato noch am meisten geholfen haben.

          Gruß
          richard

          Kommentar


            #6
            Folgendes Beispiel basiert wie man sieht auf 1bit move/stop Objekten. Für Schritt (4bit) müsste man die Rules wohl anpassen.

            Gegeben sei:
            Code:
            Gruppenadressen:
            Auf/Ab:               2/4/0 (1.001)
            Stop:                 2/4/1  (1.001)
            Aktuelle Position:  2/4/2  (5.001)
            Absolute Position :  2/4/3 (5.001)
            linknx.xml:
            Code:
            <object id="rolladen_auf_ab" gad="2/4/0" type="1.001" flags="cwtus" init="persist">Rolladen auf ab</object>
            <object id="rolladen_stop" gad="2/4/1" type="1.001" flags="cwtus" init="persist">Rolladen stop</object>
            <object id="rolladen_abs_pos" gad="2/4/2" type="5.001">Rolladen Absolute Position</object>
            <object id="rolladen_aktuelle_pos" gad="2/4/3" type="5.001" init="persist">Rolladen aktuelle Position</object>
            
            <object id="rollo_ab_intern" type="1.001"  flags="cwtus" init="off">rollo_ab_intern</object>
            <object id="rollo_auf_intern" type="1.001"  flags="cwtus" init="off">rollo_auf_intern</object>
            <object id="rollo_stop_intern" type="1.001" flags="ctwus" init="persist">rollo_stop_intern</object>
            <object id="rollo_bewegung_intern" type="16.000" flags="ctwus" init="50">rollo_bewegung_intern</object>
            
            
            <rule id="rolladen_auf_ab_01">
                        <condition type="object" id="rollo_ab_intern" value="off" trigger="true">
                        </condition>
                        <actionlist type="if-true">
                        <action type="set-value" id="rolladen_auf_ab" value="1" />
                        <action type="set-value" id="rollo_bewegung_intern" value="100" />
                        </actionlist>
                    </rule>
            <rule id="rolladen_auf_ab_00">
                        <condition type="object" id="rollo_auf_intern" value="off" trigger="true">
                        </condition>
                        <actionlist type="if-true">
                        <action type="set-value" id="rolladen_auf_ab" value="0" />
                        <action type="set-value" id="rollo_bewegung_intern" value="0" />
                        </actionlist>
                    </rule>
                    <rule id="rolladen_stop_01">
                        <condition type="object" id="rollo_stop_intern" value="on" trigger="true">
                        </condition>
                        <actionlist type="if-true">
                        <action type="set-value" id="rolladen_stop" value="1" />
                        <action type="set-value" id="rollo_bewegung_intern" value="50" />
                        </actionlist>
                    </rule>
            <rule id="rolladen_stop_00">
                        <condition type="object" id="rollo_stop_intern" value="off" trigger="true">
                        </condition>
                        <actionlist type="if-true">
                        <action type="set-value" id="rolladen_stop" value="0" />
                        <action type="set-value" id="rollo_bewegung_intern" value="50" />
                        </actionlist>
                </rule>
            <rule id="rolladen_oben">
                    <condition type="object" id="rolladen_aktuelle_pos" value="0" trigger="true">
                    </condition>
                    <actionlist type="if-true">
                    <action type="set-value" id="rollo_bewegung_intern" value="10" />
                    </actionlist>
                </rule>
            <rule id="rolladen_unten">
                    <condition type="object" id="rolladen_aktuelle_pos" value="100" trigger="true">
                    </condition>
                    <actionlist type="if-true">
                    <action  type="set-value" id="rollo_bewegung_intern" value="90" />
                    </actionlist>
                </rule>
            design.xml:
            Code:
            <control type="multi" label="Rolladen_Status" object="rollo_bewegung_intern" x="210" y="452" readonly="true">
                <item value="0" img="switches/rollo_up.gif"/><item value="50" img="switches/stop.gif"/>
                <item value="100" img="switches/rollo_down.gif"/><item value="10" img="switches/rollo_is_up.gif"/>
                <item value="90" img="switches/rollo_is_down.gif"/>
            </control>
            
            <control type="multi" label="Rolladen_AUF" object="rollo_auf_intern" x="210" y="499"><item value="off" img="switches/hoch.gif"/>
            </control>
            
            <control type="multi" label="Rolladen_STOP" object="rollo_stop_intern" x="210" y="546"><item value="off" img="switches/stop.gif"/>
            </control>
            
            <control type="multi" label="Rolladen_AB" object="rollo_ab_intern" x="210" y="593"><item value="off" img="switches/runter.gif"/>
            </control>
            
            <control type="text" label="Rolladen_Pos" style="font-size: 11px;" format="$1%" object="rolladen_aktuelle_pos" x="218" y="651"/>
            <control type="value" label="Rolladen_Pos_setzen" object="rolladen_abs_pos" img="einst/aenderung.gif" x="261" y="640"/>
            Ich kann mit dieser Konfiguration bei jedem Tastendruck eine 01 bzw 00 für AUF und AB sowie eine 00 als Stop Telegramm senden.
            Es ist also möglich AUF zu fahren, zu stoppen, weiter auf zu fahren, wieder zu stoppen oder dann weiter AB zu fahren. Oder man verzichtet auf's Stoppen und wechselt direkt die Richtung und stoppt später oder garnnicht und lässt das den Aktor erledigen welcher über die Positionsangabe der o.g. Konfiguration zumindest bei 0 sowie 100% mitteilt das nun Schluss ist.

            Der "Trick" liegt im stateless Mode und darin nicht die Objekte der Gruppenadressen direkt durch die Rules zu drehen sondern linknx-interne Objekte, deren initialen Status ich drehen und wenden kann wie ich mag ohne Rücksicht auf den tatsächlichen Status der Aktoren nehmen zu müssen.

            Sicher nicht die eleganteste Art und Weise und auch noch nicht 100% zufrieden stellend was die Statusanzeige beim Stoppen "mittendrin" betrifft aber zumindest das AUF/AB/STOP Verhalten funktioniert so.

            hth
            richard

            p.s.:
            Aussehen tut das Ganze folgendermassen:
            (von links nach rechts: 0%geschlossen, 100%geschlossen, während der Fahrt -> animiertes Gif)
            Angehängte Dateien

            Kommentar

            Lädt...
            X