Ankündigung

Einklappen
Keine Ankündigung bisher.

PI und Linknx (Michixx Image)

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

    KNX/EIB PI und Linknx (Michixx Image)

    Moin

    Mit dem Raspberry Image von Michixx, hab ich die CometVisu ans laufen bekommen.

    Nun wollte ich mit Linknx anfangen (Newbie in Sachen XML). Ich hab versucht den Linknx.Xml File zuerweiteren. Aber irgend wie geht`s nicht.

    Linknx.log zeigt folgendes
    2013-07-03 09:17:26 [ERROR] main: Unable to load config: Couldn't load /var/lib/linknx/linknx.xml <ticpp.cpp@794>
    Unable to load config: Interrupted system call

    Muss ich an diesen Werten was ändern
    <knxconnection url="ip:127.0.0.1" />
    <xmlserver type="inet" port="1028"/>



    Ich möchte einfach mal eine Rule die mir Zyklisch eine Gruppenadresse ein und aus schaltet so eine Art Blinklicht.

    Unten ist meine linknx.xml dran gepappt. Vieleicht hat jemand Zeit einen Blick drauf zuwerfen.
    Gruß Herbert der Newbie in Sachen XML
    Angehängte Dateien

    #2
    Hi,

    so sollte es klappen:
    Code:
    <?xml version="1.0" ?>
    <config>
    	<objects>
    		<object type="1.001" id="Wo_De_licht" gad="1/1/0" flags="cwu" init="persist" log="false">Wohnen Deckenlicht</object>
    		<object type="1.001" id="Wo_Fe_spot" gad="1/1/1" flags="cwu" init="persist" log="false">Wohnen Fensterspot</object>
    		<object type="1.001" id="Bib_De_licht " gad="1/1/2" flags="cwu" init="persist" log="false">Bibliothek Deckenlicht </object>
    		<object type="1.001" id="Bib_Steck" gad="1/1/4" flags="cwu" init="persist" log="false">Bibliothek Steckdose</object>
    		<object type="1.001" id="Kueche_Essbereich" gad="1/1/11" flags="cwu" init="persist" log="false">Küche Essbereich</object>
    		<object type="1.001" id="Kueche_Esstisch " gad="1/1/13" flags="cwu" init="persist" log="false">Küche Esstisch </object>
    		<object type="1.001" id="WC_Spiegel" gad="1/1/18" flags="cwu" init="persist" log="false">WC Spiegel</object>
    		<object type="1.001" id="Flur_De_licht" gad="1/1/21" flags="cwu" init="persist" log="false">Flur Deckenlicht</object>
    		<object type="1.001" id="Flur_unten_licht" gad="1/1/22" flags="cwu" init="persist" log="false">Flur unten Gardarobe</object>
    		<object type="1.001" id="Flur_oben_licht" gad="1/1/23" flags="cwu" init="persist" log="false">Flur Oben 1Etage</object>
    		<object type="1.001" id="Bib_Stereo" gad="1/1/5" flags="cwu" init="persist" log="false">Bibliothek Stereoanlage</object>
    		<object type="1.001" id="Kueche_arbeitsbereich" gad="1/1/12" flags="cwu" init="persist" log="false">Küche Arbeitsbereich</object>
    		<object type="1.001" id="Kueche_deckenlicht" gad="1/1/10" flags="cwu" init="persist" log="false">Küche Deckenlicht</object>
    		<object type="11.001" id="cure_date" gad="1/1/151" flags="cwtuf"  log="false">Aktuelle Datum</object>
    		<object type="10.001" id="cure_date1" gad="1/1/150" flags="cwtuf"  log="false">Aktuelle Zeit</object>
    	</objects>
    
    	<rules>
    		<!--<rule id="Aussen_TEMP_LOG">
    			<condition type="object" id="Weather_Temperature" trigger="true" />
    			<actionlist type="if-true">
    				<action type="shell-cmd" cmd="/home/rrdtool/update_database.sh"/>
    			</actionlist>
    		</rule>-->
    
    
    	</rules>
    	<services>
    		<knxconnection url="ip:127.0.0.1" />
    		<xmlserver type="inet" port="1028"/>
    		<exceptiondays>
    			<date day="1" month="1" />
    			<date day="1" month="5" />
    			<date day="15" month="8" />
    			<date day="25" month="12" />
    			<date day="25" month="4" year="2011" />
    			<date day="2" month="6" year="2011" />
    			<date day="13" month="6" year="2011" />
    			<date day="9" month="4" year="2012" />
    			<date day="17" month="5" year="2012" />
    			<date day="28" month="5" year="2012" />
    			<date day="1" month="4" year="2013" />
    			<date day="9" month="5" year="2013" />
    			<date day="20" month="5" year="2013" />
    			<date day="21" month="4" year="2014" />
    			<date day="29" month="5" year="2014" />
    			<date day="9" month="6" year="2014" />
    		</exceptiondays>
    		<persistence type="file" path="/var/lib/linknx" />
    	</services>
    	<!-- mus da so sein ? -->
    	<logging output="/var/log/linknx.log" format="%d{%Y-%m-%d %H:%M:%S,%l} %5p > %c %x - %m%n" level="INFO" maxfilesize="100" maxfileindex="2" />
    </config>
    In kurz:
    - <services> müssen nach unten, die Reihenfolge ist <objects>, <rules>, <services>, <logging>
    - cure_date hattest Du doppelt
    - Du hattest 2 mal </rules> anstatt <rules>....</rules>

    Tip (gerade für Anfänger): Nimm einen xml-Editor, der xsd versteht, nimm mein linknx.xsd aus dem linknx: Tipps und Tricks Thread und arbeite damit. Dann sagt Dir der Editor die Fehler (so hab ich das auch gemacht, um Deine Fehler zu finden).

    Gruß, Waldemar
    OpenKNX www.openknx.de

    Kommentar


      #3
      Linknx neustarten per Skript

      Moin

      Da ich als Newbie mit linknx spiele mche natürlich Fehler und das nicht zu knapp.

      Zur Zeit starte ich den Pi immer mit Spannung aus. Dies ist nicht der richtige Weg.
      Es muß doch möglich sein Linknx zu stoppen und wieder zustarten. Mit einer Batch bzw Skript Datei..

      Ich krieg ja noch nicht mal einen Schaltvorgang hin.

      </rule>
      <rule id="follow_up_licht">
      <condition type="object" id="Wo_De_licht" trigger="true" value="on" />
      </condition>
      <actionlist>
      <action type="set-value" id="o_Fe_spot" value="on" />
      </actionlist>
      </rule>




      Gruß Herbert der einhändige Tipper
      Angehängte Dateien

      Kommentar


        #4
        Hallo Herbert,
        1. o_Fe_spot gibt es nicht, nur Wo_Fe_spot.
        2. Wo_Fe_Spot hat die Flags cwu - damit fehlt das t, mit dem das Objekt seine Wertänderungen auf den Bus schreiben kann


        Bei jeder Änderung am linknx.xml musst Du linknx neu starten. Das geht bei einer Standardinstallation mit
        Code:
        /etc/init.d/linknx stop
        /etc/init.d/linknx start
        Ich kann Dir nur empfehlen, auch IMMER in das linknx.log zu schauen. Dort steht sehr genau drin, was geklappt hat und was nicht. Da hätte auch gestanden, dass es o_Fe_spot nicht gibt.

        Klar macht man als Anfänger Fehler - deswegen hab ich Dir ja ein Werkzeug empfohlen, dass Dich vor den Fehlern (soweit möglich) bewahrt. Der 1. wäre von einem xml-Editor mit xsd-Unterstützung gefunden worden - und alle aus Deinem ersten Post.

        Gruß, Waldemar
        OpenKNX www.openknx.de

        Kommentar


          #5
          Linknx neustarten per Skript klappt der Rest nicht

          Moin Mumpf

          Ich benutze das Programm Notepad++. Kenne ich von der Fa.

          Das Starten und STop funktioniert.
          Zur Zeit lade ich mir Eclipse runter.

          Die Logdatei schreibt nur das hin.

          2013-07-04 11:17:26 [ERROR] main: Unable to load config: Couldn't load /var/lib/linknx/linknx.xml <ticpp.cpp@794>
          Unable to load config: Interrupted system call

          Datei liegt aber ab.


          Gruß Herbert

          Kommentar


            #6
            Hallo Herbert,

            wenn im Log nur das steht, dann läuft linknx gar nicht. Die Meldung selbst kenne ich nicht - hatte ich noch nie. Deswegen klappt auch der Rest nicht.
            Da wird natürlich eclipse nicht helfen. Zuerst muss linknx das linknx.xml lesen können.

            Ich kann jetzt nur raten...

            Du musst sicherstellen, dass linknx Leseberechtigungen auf das file hat:
            Code:
            chmod a+r /var/lib/linknx/linknx.xml
            Das wäre der erste Versuch...

            Mach mal beim Notepad++ im Menu "Encoding" den Eintrag "Encode in UTF8 without BOM" und speichere nochmal. Das wäre mein nächster Versuch.

            Hmmm - und da verließen sie mich auch schon - keine Ahnung, was noch sein könnte... Versuch erstmal das, dann sehen wir weiter.

            Gruß, Waldemar
            OpenKNX www.openknx.de

            Kommentar


              #7
              Hallo Herbert,

              ich bin auch der Meinung wie Waldemar.
              Du hast beim bearbeiten der Datei bestimmt irgendwelche unbrauchbare Steuerzeichen mit gespeichert.

              Wenn Du noch die original linknx.xml hast, also keine die du bereits bearbeitet hast, dann ersetze deine mal mit der originalen linknx.xml.

              Und schau dann mal was im Log steht.

              Gruß
              Michael

              Kommentar


                #8
                Moin
                Waldemar & Michael

                Also der Fehler muss in der rule liegen. Hab ich auskommentiert und wurde Fehlerfrei geladen.
                Da ich aus der Antriebswelt komme tu ich mich schwer mit strukturierten Texten. Bin halt KOP und FUP gewöhnt. Ich werde jetzt weiter üben.

                Bei linknx gibt es mehrere Möglichkeiten des Neustartes.

                /etc/init.d/linknx stop
                /etc/init.d/linknx start
                /etc/init.d/linknx restart
                /etc/init.d/linknx force-reload

                Gruß Herbert

                Kommentar


                  #9
                  Ich habs entdeckt: nimm das </rule> raus, das hinter <rules> steht!

                  Gruß, Waldemar
                  OpenKNX www.openknx.de

                  Kommentar

                  Lädt...
                  X