Ankündigung

Einklappen
Keine Ankündigung bisher.

LinKNX: Diskussionen zu Tipps, Tricks und Beispiele

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

    #46
    Danke...
    wenn man Eure Tipps befolgt dann funktioniert es auch :-)

    Es sieht jetzt so aus:

    Code:
              <rule id="follow_up_licht">
                <condition type="object" id="licht1_on_off" trigger="true" value="on" />
                <actionlist>
                    <action type="set-value" id="licht2_on_off" value="on" />
                </actionlist>
            </rule>
    Gruß Stephan

    Kommentar


      #47
      Kann mir jemand verraten was ich tun muss, um die XSD Datei von mumpf in Eclipse zu nutzen?

      VG

      Kommentar


        #48
        Weitere Frage zu Linknx:
        Ich habe eine linknx Objekt das 1 gesetzt wird sobald ich das Haus verlasse.
        Nun möchte ich 16 Fensterkontakte abfragen und falls ein Fenster geöffnet ist, soll eine Prowlnachricht/eMail/SMS/Sonstiges mit dem/den offenen Fenstern versendet werden. Muss ich dafür wirklich 16 einzlene Rules erstellen oder lässt sich das auch in einer rule generisch abfrühstücken?

        Code:
        <rule id ="check_abwesend">
            <condition type="and">
                <condition type="object" id="stat_abwesend_aktiv" value="on" trigger="true"/>
                <condition type="or">
                    <condition type="object" id="fk_sz_l" value="off" trigger="false"/>
                    <condition type="object" id="fk_sz_r" value="off" trigger="false"/>
                    <condition type="object" id="fk_ht" value="off" trigger="false"/>
                    <condition type="object" id="fk_wc" value="off" trigger="false"/>
                    <condition type="object" id="fk_bad_l" value="off" trigger="false"/>
                    <condition type="object" id="fk_bad_r" value="off" trigger="false"/>
                    <condition type="object" id="fk_az_l" value="off" trigger="false"/>
                    <condition type="object" id="fk_az_m" value="off" trigger="false"/>
                    <condition type="object" id="fk_az_r" value="off" trigger="false"/>
                    <condition type="object" id="fk_az_o" value="off" trigger="false"/>
                    <condition type="object" id="fk_kue" value="off" trigger="false"/>
                    <condition type="object" id="fk_ez_l" value="off" trigger="false"/>
                    <condition type="object" id="fk_ez_r" value="off" trigger="false"/>
                    <condition type="object" id="fk_wz_tuer" value="off" trigger="false"/>
                    <condition type="object" id="fk_wz_l" value="off" trigger="false"/>
                    <condition type="object" id="fk_wz_m" value="off" trigger="false"/>
                    <condition type="object" id="fk_wz_r" value="off" trigger="false"/>
                </condition>
            </condition>
            <actionlist>
        <!--                Action mit Ausgabe welche Fenster die condition erfüllt haben -->
            </actionlist>
        </rule>
        Das ganze dient nur dazu beim Gehen zu sehen welche Fenster aktuell offen sind. Nicht als Alarmanlage, dazu müssten die Trigger anders gesetzt werden.

        Kommentar


          #49
          @mode
          Du hast nur zwei Möglichkeiten:
          1. Das was du befürchtet hast, du machst sechzehn einzelne rules und bekommst bei fünf offenen Fenstern auch fünf Nachrichten.
          2. Du nutzt lua im Actionteil mit sechzehn if-Abfragen, wobei du dann eine Meldung mit den geöffneten Fenstern vom Skript zusammen stellen und am Ende zuschicken lässt.

          Das man im Actionteil auf einen bestimmten Trigger (ist es bei dir noch nicht einmal) reagieren kann, ist mir nicht bekannt.

          Kommentar


            #50
            @mode:

            Ich würde hier auch LUA vorschlagen, man kann sich da ein array mir den einzelnen objekten anlegen und dann in einer Schleife drüberrauschen. Dann brauchst Du auch den ganzen or-Ast der Condition nicht zu machen.

            Alternativ machst Du conditional-actions in Deiner rule, das spart Dir die 16 rules, Du hast aber 16 actions und auch 5 Meldungen bei 5 offenen Fenstern.

            @panzaeron:
            Conditional actions erlauben die Abfrage von Objektwerten bei der Ausführung einer action, das geht also schon. Aber LUA wäre in diesem Fall sicherlich besser.

            Gruß, Waldemar
            OpenKNX www.openknx.de

            Kommentar


              #51
              Zitat von mode Beitrag anzeigen
              Kann mir jemand verraten was ich tun muss, um die XSD Datei von mumpf in Eclipse zu nutzen?

              VG
              Ich hatte das mal ausprobiert, ist aber schon länger her. Wenn ich mich recht erinnere, dann muss nur das XSD und XML im gleichen Eclipse-Projektverzeichnis sein, aber ich muss es nochmal ausprobieren - nur heute nicht mehr...

              Ich meld mich, wenn ich was habe. Alternativ findet man bei google sicherlich einiges dazu...

              Gruß, Waldemar
              OpenKNX www.openknx.de

              Kommentar


                #52
                Zitat von mode Beitrag anzeigen
                Muss ich dafür wirklich 16 einzlene Rules erstellen oder lässt sich das auch in einer rule generisch abfrühstücken?
                Hoi mode

                Mein MDT Binäreingang hat ein Objekt, dass meldet, wenn ein Fenster offen ist. Oder hab' ich die Frage nicht verstanden?
                Grüsse Bodo
                Fragen gehören ins Forum, und nicht in mein Postfach;
                EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

                Kommentar


                  #53
                  Hallo Bodo,

                  die Erkennung, OB ein Fenster offen ist, kann ja über modes Rule einfach durchgeführt werden ... es geht aber darum, per SMS oä zu senden, WELCHES Fenster auf steht - und das geht dann nicht mehr ganz so einfach.

                  Viele Grüße,

                  Stefan
                  Mein Sammelsurium: TS2, Zennio Z38, Siemens LOGO!, Medeodata 140 S, Weinzierl KNX ENO 620, Eibmarkt IP Router, MDT KNX IP IF, Wiregate, Node-Red mit KNX Ultimate, MDT Smart II, diverse Aktoren verschiedener Hersteller ...

                  Kommentar


                    #54
                    Hoi

                    Ah ok.
                    Also wenn ein Fenster offen, dann melde welches oder welche...
                    Grüsse Bodo
                    Fragen gehören ins Forum, und nicht in mein Postfach;
                    EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

                    Kommentar


                      #55
                      Hallo,

                      Edit: Habe den Fehler selber gefunden. Das Attribut port="" ist entgegen der Anleitung obligatorisch. Wird in diesem Fall auch nicht benötigt, da nur empfangen werden soll. Scheint ein Bug zu sein.

                      sobald ich ioports nutze, startet mein linknx nicht mehr.
                      Code:
                          <services>
                      ...weitere Anweisungen...
                              <ioports>
                                  <ioport id="io_dreambox" type="udp" rxport="7788" />
                              </ioports>
                          </services>
                      Beim Aufruf bekomme ich folgende Fehlermeldung:
                      Code:
                      mode@tulpe:~$ linknx -c
                      linknx: /usr/local/lib/libcurl.so.4: no version information available (required by linknx)
                      2013-01-20 15:59:17 [ INFO] XmlInetServer: Starting on port 1028
                      2013-01-20 15:59:17 [ERROR] main: Error in config: Attribute does not exist <ticpp.h@1509>
                      Error in config
                      Ich nutze diese Version:
                      Code:
                      mode@tulpe:~$ linknx -V
                      linknx: /usr/local/lib/libcurl.so.4: no version information available (required by linknx)
                      linknx 0.0.1.30
                      - Clickatell SMS gateway enabled
                      - MySQL support enabled
                      Any Idea?

                      Kommentar


                        #56
                        Heute ist Linknx Tag :-)

                        Edit:

                        Habe den Fehler bereits gefunden. Man darf eben if-true nicht mit if_true verwechseln. Denn if_true gibt es nicht und dann wird on-true angenommen was ja auch zu dem Verhalten passt. Ich lass den Post trotzdem mal drin weil
                        a) Habt ihr was zu lachen ;-)
                        b) Vielleicht sensibilisiert das den ein oder anderen für solche Fehler
                        c) Nettes Beispiel wie man 2 Rules in eine packen kann.



                        Habe eine weitere Frage:
                        Ich habe 2 Regeln, die ein besonders smartes Sperren meines Wohnzimmerlichts bewerkstelligen:
                        Code:
                                <rule id="licht_wz_on">
                                    <condition type="and"> 
                                        <condition type="object" id="sperr_pm_wohnbereich" value="off" trigger="false" />
                                        <condition type="object" id="licht_pm_wohnbereich" value="on" trigger="true" />
                                    </condition>
                                    <actionlist type="on-true">
                                        <action type="set-value" id="szene_pm_wohnbereich" value="1" />
                                    </actionlist>
                                </rule>
                        
                                <rule id="licht_wz_off">
                                    <condition type="and"> 
                                        <condition type="object" id="sperr_pm_wohnbereich" value="off" trigger="false" />
                                        <condition type="object" id="licht_pm_wohnbereich" value="off" trigger="true" />
                                    </condition>
                                    <actionlist type="on-true">
                                        <action type="set-value" id="szene_pm_wohnbereich" value="0" />
                                    </actionlist>
                                </rule>
                        Das funktioniert wunderbar.
                        Nun finde ich es kosmetisch unschön, je eine Regel für on und für off zu haben. Daher hier mein Versuch die beiden Regel in einer zu verschmelzen.

                        Code:
                                <rule id="licht_wz">
                                    <condition type="and"> 
                                        <condition type="object" id="sperr_pm_wohnbereich" value="off" trigger="false" />
                                        <condition type="object" id="licht_pm_wohnbereich" trigger="true" />
                                    </condition>
                                    <actionlist type="[B]if_true[/B]">
                                        <action type="conditional">
                                            <condition type="object" id="licht_pm_wohnbereich" value="on" />
                                            <action type="set-value" id="szene_pm_wohnbereich" value="1" />
                                        </action>
                                        <action type="conditional">
                                            <condition type="object" id="licht_pm_wohnbereich" value="off" />
                                            <action type="set-value" id="szene_pm_wohnbereich" value="0" />
                                        </action>
                                    </actionlist>
                                </rule>
                        Leider funktioniert diese Regel nur extakt einmal. Wenn Sie dann einmal wahr war, werden trotz if_true die Conditional Bedingungen nicht verarbeitet. Kann es sein, dass if_true und Conditional nicht zusammen verwendet können?

                        Log dazu (2. Schalten)
                        Code:
                        2013-01-20 17:45:43 [ INFO] Rule: Evaluate rule licht_wz
                        2013-01-20 17:45:43 [ INFO] ObjectValue: SwitchingObjectValue: Compare value_m='0' to value='0'
                        2013-01-20 17:45:43 [ INFO] Condition: ObjectCondition (id='sperr_pm_wohnbereich') evaluated as '1'
                        2013-01-20 17:45:43 [ INFO] Condition: ObjectCondition (id='licht_pm_wohnbereich') evaluated as '1'
                        2013-01-20 17:45:43 [ INFO] Rule: Rule licht_wz evaluated as 1, prev value was 1
                        VG

                        Mode

                        Kommentar


                          #57
                          Noch was wahrscheinlich was Einfaches zum Schluss
                          Code:
                          <object type="1.001" id="lastue_koch_r" gad="1/2/3" init="off"></object>
                          Erwarten würde ich, dass das Obejekt erst triggert, wenn es mit einer 1 beschrieben wird.

                          Ich habe dieses Objekt in einer triggerrelevanten Kondition verwendet.
                          Code:
                          <condition type="object" id="lastue_koch_l" value="off" trigger="true" />
                          Leider wird diese Rule verarbeitet sobald die GA 1/2/3 erstmalig eine 0 sendet. Danach richtigerweise nicht mehr. Warum ist das so? Ich gebe doch mit init="off" den Startwert 0 vor. Und da es sich um ein dynamisches Objekt handelt, dürfte doch die Rule garnicht evaluiert werden, da sich das Objekt nicht geändert hat.

                          Doch im Log sieht das so aus:
                          Code:
                          [ INFO] Object: New value off for object lastue_koch_r (type: 1.001)
                          [ INFO] Rule: Evaluate rule szene_test
                          Gute Nacht


                          Edit:
                          Weitere Erkenntnis:
                          Ein Objekt, dass mit init =on oder =off definiert wurde, erzeugt bei der ersten Benutzung durch eine
                          linknx Rule kein Read auf dem Bus. Es wird der mit init eingestellt Wert angenommen.
                          Wird ein Objekt dass mit init = off definiert wurde nach dem Start von Linknx von KNX mit off
                          beschrieben, so triggern erstmalig trotzdem alle triggerrelevanten Rules. Und das obwohl das Objekt
                          weder statisch ist, noch seinen Wert geändert hat. Warum?

                          Mode

                          Kommentar


                            #58
                            Zitat von mode Beitrag anzeigen
                            Kann mir jemand verraten was ich tun muss, um die XSD Datei von mumpf in Eclipse zu nutzen?

                            VG
                            Hi,

                            sorry dass es so lange gedauert hat, aber ich bin derzeit dienstlich viel unterwegs...

                            Ich hab soeben nochmal versucht, das xsd in eclipse zu nutzen:
                            • Neues Projekt erzeugen (New->Other->General->Project)
                            • Mit Import das XSD und das XML-File hinzufügen (Import->General->File System...)
                            • Dann einfach im XML-File editieren, Vorschläge kommen automatisch bzw. per Ctrl-Space, wie in eclipse üblich


                            Wie gesagt, die Unterstützung hier ist nicht soooo toll, es gibt z.B. keine Tooltips und somit nicht die von mir zugefügten Kommentare, die beschreiben, welches Attribut wann gilt.

                            Aber es hilft, Rechtschreibfehler zu vermeiden...

                            Gruß, Waldemar
                            OpenKNX www.openknx.de

                            Kommentar


                              #59
                              Vergleich mit festem Wert

                              Ist es möglich in einer Regel/Logik einen Vergleich mit einem festen Wert herzustellen?

                              Ich möchte für das Licht über der Dusche gern ein automatisches Einschalten sobald die Zirkulationstemperatur > 24°C und die Decken- oder Spiegelbeleuchtung eingeschaltet sind.

                              Grundsätzlich ist mir das klar, nur ich finde nichts darüber wie ich den Vergleich mit einem festen Wert mache. Immer wird nur vom Vergleich zweier Objekte gesprochen.

                              Grüße
                              Umgezogen? Ja! ... Fertig? Nein!
                              Baustelle 2.0 !

                              Kommentar


                                #60
                                Zitat von JuMi2006 Beitrag anzeigen
                                Ist es möglich in einer Regel/Logik einen Vergleich mit einem festen Wert herzustellen?
                                Ja, sicher. Hier ein Beispiel von mir: Wenn die Aussentemperatur zum ersten Mal über 25 Grad steigt, dann soll die Szene 8 Beschattung ausgelöst werden.

                                Code:
                                        <rule id="temp-heiss" init="false">
                                            <condition type="and">
                                                <condition type="object" id="aussentemp" op="gt" value="25" trigger="true" />
                                                <condition type="object" id="temp-heiss-set" value="off" trigger="true" />
                                            </condition>
                                            <actionlist>
                                                <action type="set-value" id="temp-heiss-set" value="on" />
                                                <action type="set-value" id="szene8" value="on" />
                                            </actionlist>
                                        </rule>
                                Gruss, Othmar
                                EIB/KNX, VISU mit knxd + linknx + knxweb, Steuerbefehle via SMS und Email mit postfix + procmail

                                Kommentar

                                Lädt...
                                X