Ankündigung

Einklappen
Keine Ankündigung bisher.

schon wieder Probleme

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] schon wieder Probleme

    Hallo,

    hab mal auf meinem neuen Wiregate versucht über linknx.xml eine test logik zu schreiben.

    der Eib Busmonitor sagt:

    2010-07-31 21:48:47.855,A_GroupValue_Write,0.0.17,5/4/0,01,1,DPT_Switch,1.001,0,low,4,T_DATA_XXX_REQ,0
    2010-07-31 21:48:47.943,A_GroupValue_Write,0.0.11,5/4/8,01,1,DPT_Switch,1.001,0,low,6,T_DATA_XXX_REQ,0
    2010-07-31 21:48:47.954,A_GroupValue_Write,0.0.11,5/4/8,01,1,DPT_Switch,1.001,0,low,4,T_DATA_XXX_REQ,0
    2010-07-31 21:52:01.394,A_GroupValue_Write,0.0.0,3/7/0,00,0,DPT_Switch,1.001,0,low,7,T_DATA_XXX_REQ,0
    2010-07-31 21:52:01.398,A_GroupValue_Write,0.0.0,3/7/3,00,0,DPT_Switch,1.001,0,low,7,T_DATA_XXX_REQ,0
    2010-07-31 21:52:01.400,A_GroupValue_Write,0.0.11,3/7/3,00,0,DPT_Switch,1.001,0,low,6,T_DATA_XXX_REQ,0
    2010-07-31 21:52:03.229,A_GroupValue_Write,0.0.0,12/0/1,16 8B,67,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ, 0
    2010-07-31 21:52:03.551,A_GroupValue_Write,0.0.0,12/1/0,0D 46,27,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ, 0
    2010-07-31 21:52:03.873,A_GroupValue_Write,0.0.0,12/1/1,0D 84,28.24,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_R EQ,0
    2010-07-31 21:52:04.536,A_GroupValue_Write,0.0.0,12/0/0,17 1A,72.72,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_R EQ,0
    2010-07-31 21:53:41.522,A_GroupValue_Write,0.0.11,5/4/8,00,0,DPT_Switch,1.001,0,low,6,T_DATA_XXX_REQ,0
    2010-07-31 21:53:42.140,A_GroupValue_Write,0.0.17,5/4/0,01,1,DPT_Switch,1.001,0,low,6,T_DATA_XXX_REQ,0
    2010-07-31 21:53:42.206,A_GroupValue_Write,0.0.11,5/4/8,01,1,DPT_Switch,1.001,0,low,6,T_DATA_XXX_REQ,0
    2010-07-31 21:53:43.126,A_GroupValue_Write,0.0.17,5/4/0,00,0,DPT_Switch,1.001,0,low,6,T_DATA_XXX_REQ,0
    2010-07-31 21:53:43.218,A_GroupValue_Write,0.0.11,5/4/8,00,0,DPT_Switch,1.001,0,low,6,T_DATA_XXX_REQ,0
    2010-07-31 21:53:43.962,A_GroupValue_Write,0.0.17,5/4/0,01,1,DPT_Switch,1.001,0,low,6,T_DATA_XXX_REQ,0
    2010-07-31 21:53:44.643,A_GroupValue_Write,0.0.11,5/4/8,01,1,DPT_Switch,1.001,0,low,6,T_DATA_XXX_REQ,0

    hätte aber laut linknx.xml das zweite licht auch noch schalten müssen!?

    wie kann ich testen ob die .xml wirklich abgefragt wird?

    Gruß Volker
    Angehängte Dateien

    #2
    Hoi

    Mein Firefox sagt:

    XML-Verarbeitungsfehler: nicht wohlgeformt
    Adresse: file:///C:/Users/gun/Desktop/linknx.xml
    Zeile Nr. 36, Spalte 115:

    Code:
    <logging output="/tmp/linknx.log" format="%d{%Y-%m-%d %H:%M:%S,%l} %5p > %c %x - %m%n" level="DEBUG" maxfilesize=100 maxfileindex=2/>
    Einfach den xml packen und auf den Browser werfen.
    Code:
    maxfilesize=[COLOR=Red][B]'[/B][/COLOR]100[COLOR=Red][B]'[/B][/COLOR] maxfileindex=[COLOR=Red][B]'[/B][/COLOR]2[COLOR=Red][B]'[/B][/COLOR]
    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


      #3
      Oh,

      das ist ja einfach :-)

      Hier meine "neue" überprüfte linknx.xml.

      Funktioniert das mit den Flags? Da weiß ich leider nicht genau wo was hin gehört.
      Könnte das mit den Rollos funktionieren? Hab leider nirgendwo gefunden ob ich den Befehl delay verwenden darf.

      Wenn ihr mal drüber schauen könntet ob das im großen und ganzen passt wäre ich dankbar.

      Code:
      <?xml version="1.0" ?>
      <config>
      # #logging config="/tmp/logging.conf"/#
      # #action type="dim-up" id="dim_value_kitchen" start="0" stop="240" duration="1800" />
       <services>
              <location lon="8.040" lat="12.005" />
              <knxconnection url="ip:localhost" />
              <xmlserver type="inet" port="1028"/>
              <emailserver type="smtp" host="smtp.myprovider.com:25" from="linknx@mydomain.com"/>
              <persistence type="file" path="/tmp"/>
              <logging format="simple" level="ERROR"/>
              
              <logging output="/tmp/persist/linknx.log" format="%d %5p > %c %x - %m%n" level="WARN"/>
              <exceptiondays>
                  
              </exceptiondays>
          </services>
          
          <objects>
              <object id="cur_time" gad="13/0/0" type="EIS3" >Current Time</object>
              <object id="cur_date" gad="13/0/1" type="EIS4" forcewrite="true">Current Date</object> 
              <object id="zentralsteuerung_rollos" gad="7/0/0" type="1.001" flags="cwtur" init="persist">Alle Rolladen</object> 
              <object id="Rollo_Tuer" gad="7/2/0" type="1.001" flags="cwtus" init="persist"><listener gad="7/2/3"/>Rollo Tuer</object>
              <object id="Rollo_Tuer_lueften" gad="7/2/1" type="3.008" init="persist" flags="cwtur"><listener gad="7/2/3"/>Rollo Tuer Pos</object>
              <object id="rollo_tuer_automatik" gad="7/2/2" flags="cwtur" init="persist"><listener gad="7/2/2"/>Automatik</object>
              <object id="Licht_Gang_Garderobe" gad="5/4/3" type="EIS1" init="persist"><listener gad="5/4/9"/>Licht Gang Garderobe</object>
              <object id="Licht_Gang" gad="5/4/0" type="EIS1" init="persist"><listener gad="5/4/8"/>Licht Gang</object>
              <object id="lueften_alle" gad="7/0/2" type="1.001" flags="cwtur" init="persist">Lueften alle</object>
              <object id="alle_rollos_sued" gad="7/1/0" type="1.001" flags="cwtur" init="persist">Rollos alle</object>
              <object id="aussen_temp" gad="11/1/0" type="9.xxx" log="true" init="persist">Temp Aussen</object>
              <object id="temp_wohnzimmer_ist" gad="11/2/0" type="9.xxx" log="true" init="persist">Temperatur Wohnzimmer</object>
          </objects>
          
          <rules>
          
              <rule id="temp-Wohnzimmer" trigger="true">
                  <condition type="not">
                  
                  <condition type="object" id="aussen_temp" op="gt" src="25" />
                  <condition type="sunset" trigger="true" />
                  </condition>
                  
                  <actionlist>
                  <action type="set-value" id="alle_rollos_sued" value="0" />
                  </actionlist>
          
              </rule>        
              
              
              <rule id="temp-Wohnzimmer-tuer" trigger="true">
                  <read><aussen_temp/><temp_wohnzimmer_ist/></read>
                  <condition type="not">
                  <condition type="object" id="aussen_temp" op="gt" src="11/2/0" />
                  <condition type="sunset" trigger="true" />
                  <condition type="object" id="rollo_tuer_automatik" value="1" />
                  </condition>
                  <actionlist>
                  <action type="set-value" id="Rollo_Tuer" value="0" />
                  </actionlist>
          
              </rule>            
          #Lueften alle
              <rule id="lueften_alle_Rollos">
                  <condition type="object" id="lueften_alle" trigger="true" />
                  <actionlist>
                  <action type="set-value" id="lueften_alle" value="off" delay="7" />
                  </actionlist>
              </rule>
          # Ende lueften alle
          
          # fuer Zeitfahren rollo Terasse
              <rule id="Rollo_Tuer_pos">
                  <condition type="object" id="Rollo_Tuer_lueften" trigger="true" />
                  <actionlist>
                  <action type="set-value"  id="Rollo_Tuer_lueften" value="off" delay="7" />
                  </actionlist>
              </rule>
                  
          # Ende Zeitfahren Rollo Terasse
          
          
          # Test
                 <rule id="test">
                      <condition type="object" id="Licht_Gang_Garderobe" value="1" />
                  <actionlist>
                      <action type="set value" id="Licht_Gang" value="1" />
                  </actionlist>
              </rule>
               <rule id="test2">
                      <condition type="object" id="Licht_Gang_Garderobe" value="0" />
                  <actionlist>
                      <action type="set value" id="Licht_Gang" value="0" />
                  </actionlist>
              </rule>
          #Test ende
              
          #rollos Alle
              <rule id="rollo_hoch">
              <condition type="and">
                  <condition type="timer" trigger="true">
                <at hour="8" min="0" />
                <until hour="12" min="0" />    
                </condition>
                <condition type="timer" trigger="true">
                <at type="sunrise" offset="0"/>
                <until hour="12" min="0" />
                </condition>
                </condition>
                <actionlist>
                <action type="set-value" id="zentralsteuerung_rollos" value="0" />
                </actionlist>
          </rule>
          
          <rule id="rollo_runter">
              <condition type="and">
                  <condition type="timer" trigger="true">
                <at hour="20" min="0" />
                <until hour="23" min="59" />    
                </condition>
                <condition type="timer" trigger="true">
                <at type="sunset" offset="0"/>
                <until hour="23" min="59" />
                </condition>
                </condition>
                <actionlist>
                <action type="set-value" id="zentralsteuerung_rollos" value="1" />
                </actionlist>
          </rule>
      #rollo alle ende
          
      #rollo Terassentuer
          
          <rule id="Rollo Tuer hoch">
              <condition type="and">
                  <condition type="timer" trigger="true">
                  <at hour="8" min="0" />
                  <until hour="12" min="0" />
              </condition>
                  <condition type="timer" trigger="true">
                  <at type="sunrise" offset="0" />
                  <until hour="12" min="0" />
                  </condition>
              </condition>
              <actionlist>
                  <action type="set-value" id="Rollo_Tuer" value="0" />
              </actionlist>
          </rule>
          
          <rule id="Rollo Tuer runter">
              <condition type="not">
              <condition type="and">
                  <condition type="timer" trigger="true">
                  <at hour="20" min="0" />
                  <until hour="23" min="59" />
                  </condition>
                  <condition type="timer" trigger="true">
                  <at type="sunset" offset="0" />
                  <until hour="23" min="59" />
                  </condition>
              </condition>
              <condition type="object" id="rollo_tuer_automatik" value="on" />
              </condition>
              <actionlist>
                  <action type="set-value" id="Rollo_Tuer" value="1" />
              </actionlist>
          </rule>
      #rollo terassentuer ende
          
          </rules>
         
          
      </config>
      gruss Volker

      Kommentar


        #4
        Hoi Volker

        Ich mach das mit offset:
        Code:
        <rule id="abends_rest_storen_runter">
              <condition type="timer" trigger="true">
                <at type="sunset" wdays="1234567" offset="900" />
              </condition>
              <actionlist>
                <action type="set-value" id="storen_zimmer_1" value="on" />
                <action type="set-value" id="storen_zimmer_2" value="on" />
                <action type="set-value" id="storen_schlafzi_no" value="on" />
                <action type="set-value" id="storen_schlafzi_so" value="on" />
                <action type="set-value" id="storen_wohzi_fen" value="on" />
              </actionlist>
            </rule>
        900s = 15min
        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


          #5
          Offset bedeutet das er 15 min nach sonnenuntergang zu macht oder?
          das delay sollte in sekunden meine rolladen zum lüften fahren (also nicht ganz zu) funktioniert das nicht?

          Kannst du mir sagen wie der tempo vergleich mit anschliessender schaltung aussehen würde?

          Mein bsp poste ich sobald ich wieder am pc sitze.

          Gruß Volker

          Kommentar


            #6
            So nun wieder am PC
            mein Code für einen Temp vergleich:

            Code:
            <rule id="temp-Wohnzimmer_fenster" trigger="true">
                        <condition type="not">
                        
                        <condition type="object" id="aussen_temp" op="gt" src="11/2/0" />
                        <condition type="sunset" trigger="true" />
                        </condition>
                        
                        <actionlist>
                        <action type="set-value" id="alle_rollos_sued" value="0" />
                        </actionlist>
                
                    </rule>        
                    
                    
                    <rule id="temp-Wohnzimmer-tuer" trigger="true">
                        <read><temp_wohnzimmer_ist/></read>
                        <condition type="not">
                        <condition type="object" id="aussen_temp" op="gt" />
                        <condition type="sunset" trigger="true" />
                        <condition type="object" id="rollo_tuer_automatik" value="1" />
                        </condition>
                        <actionlist>
                        <action type="set-value" id="Rollo_Tuer" value="0" />
                        </actionlist>
                
                    </rule>
            muss aber dazu sagen das ich nicht viel ahnung vom Programmieren hab.
            Ich weiß nicht ober der Vergleich mit dem src="..." passt.

            Was ich eigentlich machen wollte war:

            Wenn die aussentemp höher ist als die innentemp dann sollen alle fenster süd und die tür sür runter fahren.
            Nur der Vergleich macht mir schwierigkeiten!?
            Aus der Beschreibung zu linknx auf sourceforge kann ich es nicht raus lesen. Ist ein wenig knapp gehalten für einen Anfänger wie mich.

            Gruß Volker

            Kommentar


              #7
              Hoi Volker
              Zitat von vlamers Beitrag anzeigen
              Offset bedeutet das er 15 min nach Sonnenuntergang zu macht oder?
              Ja, dieser Offset funzt genau so.
              Zitat von vlamers Beitrag anzeigen
              das delay sollte in sekunden meine rolladen zum lüften fahren (also nicht ganz zu) funktioniert das nicht?
              Keine Ahnung, hab's noch nicht ausprobiert. Kannte das "delay" bis jetzt nicht mal.
              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


                #8
                Zitat von vlamers Beitrag anzeigen
                Ich weiß nicht ober der Vergleich mit dem src="..." passt.
                Hoi Volker

                Du definiertst unter <objekts> Deine verschiedenen Objekte.
                Mit der dort definierten ID kannst Du dann in den <rules> arbeiten.
                Code:
                src="11/2/0"
                Ist das so definiert? Glaube ich eher nicht.
                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


                  #9
                  Ne unter Objekts ist die GA 11/2/0 als temp_wohnzimmer definiert.
                  Wie gesagt der Vergleich macht mich fertig ;-)

                  also

                  IST:
                  <condition type="object" id="aussen_temp" op="gt" src="11/2/0" />

                  Soll:
                  <condition type="object" id="aussen_temp" op="gt" src="temp_wohnzimmer" />

                  funktioniert diese Zeile? also ich möchte damit aussen_temp op="greater than" ......

                  ab da fehlt mir die Variable in die ich die temp_wohnzimmer schreibe

                  nach der Anleitung hätte ich gedacht src="..."
                  oder wo kann ich das Object "temp_wohnzimmer" hinschreiben dass er weiß mit was er die aussen_temp vergleichen soll.


                  Hab gerade mal im Wörterbuch nachgeschlagen Delay = Verzögerung. Das bring mir auch nichts
                  Gibt es einen Befehl für: Fahre xxx sekunden lang?


                  Gruß Volker

                  Kommentar


                    #10
                    Hoi Volker

                    vielleicht geht sowas:
                    Code:
                    <condition type="object" id="aussen_temp" op="gt" value="temp_wohnzimmer" trigger="true" />
                    Code:
                    <condition type="object" id="aussen_temp" op="gt" value="temp_wohnzimmer" trigger="true" />
                    Code:
                    gt : object value is greater than reference value
                    Oder eines von Deinen Beispielen.

                    Sonst gibt es noch LUA-Scripting für spezielle Berechnungen.
                    Da hab' ich mich allerdings noch nicht reingelesen.
                    Code:
                    Condition 
                    A script condition is a LUA script that is executed when the rule is evaluated. 
                    The return value is interpreted as a boolean. 
                    <condition type="script">
                       return tonumber(obj("setpoint_room1")) > tonumber(obj("temp_room1"));
                    </condition>
                    SourceForge.net: Lua Scripting - linknx
                    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


                      #11
                      Cool

                      Danke
                      denke mit dem Lua Script könnte es gehen.
                      Du hast in deinem Code stehen: id="aussen_temp" op="gt" value="temp_wohnzimmer"

                      aber die value Variable ist ja definiert (object,timer usw) kann ich da die vergleichs Adresse (id) rein schreiben?

                      Zu meiner Theorie:
                      ich schreibe die aktuelle Raumtemp in eine GA somit müsste Linknx wissen was sache ist und den Wert auslesen können. Mit der Aussentemp das selbe.

                      Da ich noch keinen Helligkeitssensor habe wollte ich die Rolladen nach aussen temperatur/innentemp vergleich mittags runter fahren lassen. Evtl einen Aussenfühler so aufs Dach bauen, das die Sonne voll drauf brennt. In nem dunklen gehäuse müsste das schon ersichtlich sein wie "stark" sie scheint.
                      Als Alternative hätte ich noch den Vor- und Rücklauf der Solaranlage verglichen und aus dem Ergebniss rückschlüsse auf die Sonne gezogen.

                      Das das definitiv nicht optimal ist, weiß ich. Aber bis ich ne passende Wetterstation gefunden hab muss es halbwegs funktionieren.

                      Gruß Volker

                      Kommentar


                        #12
                        oder wäre das alles einfacher wenn ich es als Wiregate Plugin versuche?

                        Gruß

                        Kommentar


                          #13
                          Zitat von vlamers Beitrag anzeigen
                          1. denke mit dem Lua Script könnte es gehen.
                          2. Du hast in deinem Code stehen: id="aussen_temp" op="gt" value="temp_wohnzimmer"

                          3. aber die value Variable ist ja definiert (object,timer usw) kann ich da die vergleichs Adresse (id) rein schreiben?

                          4. Zu meiner Theorie:
                          ich schreibe die aktuelle Raumtemp in eine GA somit müsste Linknx wissen was sache ist und den Wert auslesen können. Mit der Aussentemp das selbe.

                          Da ich noch keinen Helligkeitssensor habe wollte ich die Rolladen nach aussen temperatur/innentemp vergleich mittags runter fahren lassen. Evtl einen Aussenfühler so aufs Dach bauen, das die Sonne voll drauf brennt. In nem dunklen gehäuse müsste das schon ersichtlich sein wie "stark" sie scheint.
                          Als Alternative hätte ich noch den Vor- und Rücklauf der Solaranlage verglichen und aus dem Ergebniss rückschlüsse auf die Sonne gezogen.

                          Das das definitiv nicht optimal ist, weiß ich. Aber bis ich ne passende Wetterstation gefunden hab muss es halbwegs funktionieren.

                          Gruß Volker
                          Hoi Volker

                          zu 1. ja könnte sein (bei mit ging es gerade nicht )

                          zu 2. das geht leider so doch nicht, value muss hier ein fester Wert sein!
                          zu 3. ???
                          zu 4. Das ist ja bereits mit der Objektdefinition geschehen. Vorausgesetzt die GA hat den Temp.-Wert
                          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


                            #14
                            Hoi Volker

                            Du kannst auf der Console mal
                            Code:
                            linknx -V
                            eintippen.
                            Dann sollte sowas kommen:
                            Code:
                            linknx 0.0.1.27
                            - Clickatell SMS gateway enabled
                            - E-mail gateway enabled (with pthread support)
                            - MySQL support enabled
                            - LUA scripting support enabled
                            - Log4cpp logging enabled
                            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


                              #15
                              Ok probieren ich mal. Normalerweise müsste lua auf dem wiregate schon laufen?
                              Gibt es zu lua eine erklärung (welcher befehl bewirkt was....)
                              da bin ich als windoof user ganz schön gefordert.

                              Ich tippe das gleich in die console wenn ich zuhause bin. (Muss noch arbeiten) und die consolen freigabe hab ich mir übers internet nicht gegeben. Ist vielleicht auch nicht ratsam. :-)

                              Danke für deine hilfe!!

                              Gruß volker

                              Kommentar

                              Lädt...
                              X