Ankündigung

Einklappen
Keine Ankündigung bisher.

linknx macht nicht das was es soll

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

    linknx macht nicht das was es soll

    Hallo.
    Ich bin's schon wieder mit einem Problem mit Linknx.

    Seit dem Wochenende habe ich einen neuen Server im keller stehen auf dem xen läuft. Linknx läuft auch drauf.

    Vorher hatte ich Linknx auf einem anderen PC laufen und die verbindung zum Bus wurde mit einer BCU1 schnittstelle hergestellt.

    Jetzt habe ich mir ein IP Interface von Eibmarkt gekauft.
    Funktioniert eigentlich auch sehr gut. EIBD läuft und ich kann alles über ETS programmieren.

    Nur jetzt habe ich ein Problem mit Linknx. Vorher funtionierte alles einwandfrei, habe die gleiche linknx.xml am laufen.

    Abends z.B geht um 23 Uhr eine lampe im Schlafzimmer aus. und zur gleichen zeit sollte auch die Weihnachtsbeleuchtung aus gehen. Tut sie aber leider nicht.
    Oder morgens sollen in der Küche und im Esszimmer die Rollladen zur gleichen zeit hochfahren. Die Küchenrolllade bleibt aber immer unten und es fährt nur die Esszimmerrrollade.

    Ich hoffe jemand kann mir sagen was ich falsch mache.
    hier mal meine linknx.xml
    Code:
    <?xml version="1.0" ?>
    <config>
        <objects>
            <object id="cur_time"             gad="0/0/1"  type="10.001">Current Time</object>
            <object id="cur_date"             gad="0/0/2"  type="11.001" forcewrite="true">Current Date</object>
    
            <object id="li_kue_decke"         gad="1/1/0"  type="1.001" >Deckenlampe Esszimmer</object>
    
            <object id="li_ez_decke"          gad="1/0/0"  type="1.001" >Deckenlamoe Esszimmer</object>
            <object id="li_ez_traeger"        gad="1/0/1"  type="1.001" >Beleuchtung Stahltraeger</object>
            <object id="li_ez_weihn"          gad="1/0/2"  type="1.001" >Beleuchtung Weihnachten</object>
    
            <object id="li_sz_decke"          gad="1/2/0"  type="1.001" >Deckenlampe Schlafzimmer</object>
    
            <object id="li_sz_bett_sel"       gad="1/2/1"  type="1.001">Nachttischlampe Selina</object>
            <object id="li_sz_bett_sel_d"     gad="1/2/11" type="3.007">Nachttischlampe Selina Dim</object>
            <object id="li_sz_bett_sel_d_w"   gad="1/2/21" type="5.xxx">Nachttischlampe Selina Dim Wert</object>
            <object id="li_sz_bett_sel_r"     gad="1/2/31" type="1.001">Nachttischlampe Selina Status Feedback Schalten</object>
            <object id="li_sz_bett_sel_d_w_r" gad="1/2/41" type="5.xxx">Nachttischlampe Selina Status Feedback Dim Wert</object>
    
            <object id="li_sz_bett_chr"       gad="1/2/2"  type="1.001">Nachttischlampe Christian</object>
            <object id="li_sz_bett_chr_d"     gad="1/2/12" type="3.007">Nachttischlampe Christian Dim</object>
            <object id="li_sz_bett_chr_d_w"   gad="1/2/22" type="5.xxx">Nachttischlampe Christian Dim Wert</object>
            <object id="li_sz_bett_chr_r"     gad="1/2/32" type="1.001">Nachttischlampe Christian Status Feedback Schalten</object>
            <object id="li_sz_bett_chr_d_w_r" gad="1/2/42" type="5.xxx">Nachttischlampe Christian Status Feedback Dim Wert</object>
    
            <object id="li_sz_kom"            gad="1/2/3"  type="1.001">Leuchte Kommode</object>
            <object id="li_sz_kom_d"          gad="1/2/13" type="3.007">Leuchte Kommode Dim</object>
            <object id="li_sz_kom_d_w"        gad="1/2/23" type="5.xxx">Leuchte Kommode Dim Wert</object>
            <object id="li_sz_kom_r"          gad="1/2/33" type="1.001">Leuchte Kommode Status Feedback Schalten</object>
            <object id="li_sz_kom_d_w_r"      gad="1/2/43" type="5.xxx">Leuchte Kommode Status Feedback Dim Wert</object>
    
            <object id="li_taster"            gad="1/3/0"  type="1.001" >Beleuchtung Taster</object>
    
            <object id="scht_tv_sz"           gad="2/0/0"  type="1.001" >Steckdose Fernseher Schlafzimmer</object>
    
            <object id="roll_kue_la"          gad="0/3/0"  type="1.001" flags="cwtus" init="persist"><listener gad="0/7/1" />Rolllade Kueche Langzeit</object>
            <object id="roll_kue_ku"          gad="0/3/1"  type="1.001" >Rolllade Kueche Kurzzeit</object> 
    
            <object id="roll_ez_la"           gad="0/1/0"  type="1.001" flags="cwtus" init="persist"><listener gad="0/7/1" />Rolllade Esszimmer Langzeit</object>
            <object id="roll_ez_ku"           gad="0/1/1"  type="1.001" >Rolllade Esszimmer Kurzzeit</object>
    
            <object id="roll_sz_la"           gad="0/2/0"  type="1.001" flags="cwtus" init="persist"><listener gad="0/7/1" />Rolllade Schlafzimmer Langzeit</object>
            <object id="roll_sz_ku"           gad="0/2/1"  type="1.001" >Rolllade Schlafzimmer Kurzzeit</object>
    
            <object id="roll_all_la"          gad="0/7/1"  type="1.001" init="persist" flags="cwtus" >Alle Rollladen</object>
        </objects>
         <rules>
           <rule id="cur_time_date">
           <condition type="timer" trigger="true">
            <every>3600</every>
           </condition>
           <actionlist>
            <action type="set-value" id="cur_time" value="now" />
            <action type="set-value" id="cur_date" value="now" />
           </actionlist>
         </rule>
           <rule id="abends_alle_rollladen_runter">
            <condition type="timer" trigger="true">
             <at type="sunset" wdays="1234567" offset="30m" />
            </condition>
            <actionlist>
             <action type="set-value" id="roll_kue_la" value="on" />
             <action type="set-value" id="roll_ez_la" value="on" />
             <action type="set-value" id="roll_sz_la" value="on" />
        </actionlist>
         </rule>
          <rule id="morgens_rollladen_kue_ez_herauf">
           <condition type="timer" trigger="true">
            <at type="sunrise" wdays="1234567" offset="30m" />
           </condition>
            <actionlist>
             <action type="set-value" id="roll_ez_la" value="off" />
             <action type="set-value" id="roll_kue_la" value="off" />
            </actionlist>
         </rule>
           <rule id="morgens_rolllade_sz_herauf_werktag">
            <condition type="timer" trigger="true">
             <at hour="7" min="30" wdays="12345" />
            </condition>
            <actionlist>
             <action type="set-value" id="roll_sz_la" value="off" />
            </actionlist>
         </rule>
           <rule id="morgens_rolllade_sz_herauf_wochenende">
            <condition type="timer" trigger="true">
             <at hour="9" min="00" wdays="67" />
            </condition>
            <actionlist>
             <action type="set-value" id="roll_sz_la" value="off" />
             </actionlist>
         </rule>
           <rule id="abends_licht_taster_einschalten">
            <condition type="timer" trigger="true">
             <at type="sunset" wdays="1234567" offset="1820" />
            </condition>
            <actionlist>
             <action type="set-value" id="li_taster" value="on" />
            </actionlist>
         </rule>
           <rule id="morgens_licht_taster_ausschalten">
            <condition type="timer" trigger="true">
             <at hour="9" min="00" wdays="1234567" />
            </condition>
            <actionlist>
             <action type="set-value" id="li_taster" value="off" />
            </actionlist>
         </rule>
           <rule id="leuchte_kommode_abends_ausschalten">
            <condition type="timer" trigger="true">
             <at hour="23" min="00" wdays="1234567" />
            </condition>
            <actionlist>
             <action type="set-value" id="li_sz_kom" value="off" />
            </actionlist>
         </rule>
           <rule id="TV_nachts_ausschalten_mo_di_mi_do_so">
            <condition type="timer" trigger="true">
             <at hour="0" min="45" wdays="12345" />
            </condition>
            <actionlist>
             <action type="set-value" id="scht_tv_sz" value="off" />
            </actionlist>
         </rule>
           <rule id="TV_nachts_ausschalten_fr_sa">
            <condition type="timer" trigger="true">
             <at hour="2" min="30" wdays="67" />
            </condition>
            <actionlist>
             <action type="set-value" id="scht_tv_sz" value="off" />
            </actionlist>
         </rule>
           <rule id="dreambox7025_schlafzimmer_ausschalten">
            <condition type ="object" id="scht_tv_sz" trigger="true" value="off"/>
             <actionlist>
              <action type="shell-cmd" cmd="/var/lib/linknx/script/./standby.sh" />
             </actionlist>
         </rule>
           <rule id="leuchte_christian_morgens_einschalten">
            <condition type="timer" trigger="true">
             <at hour="05" min="50" wdays="12345" />
            </condition>
            <actionlist>
             <action type="dim-up" id="li_sz_bett_chr_d_w" start="10" stop="160" duration="1200"/>
            </actionlist>
         </rule>
           <rule id="Leuchte_christian_morgens_abschalten">
            <condition type="timer" trigger="true">
             <at hour="06" min="50" wdays="12345" />
            </condition>
            <actionlist>
             <action type="set-value" id="li_sz_bett_chr" value="off" />
            </actionlist>
         </rule>
           <rule id="Weihnachtsbeleuchtung_Esszimmer_einschalten">
            <condition type="timer" trigger="true">
             <at hour="17" min="00" wdays="1234567" />
            </condition>
            <actionlist>
             <action type="set-value" id="li_ez_weihn" value="on" />
            </actionlist>
         </rule>
           <rule id="Weihnachtsbeleuchtung_Esszimmer_ausschalten">
            <condition type="timer" trigger="true">
             <at hour="23" min="00" wdays="1234567" />
            </condition>
            <actionlist>
             <action type="set-value" id="li_ez_weihn" value="off" />
            </actionlist>
         </rule>
    </rules>

    #2
    Hoi Christian

    Ich denke die Zustände der Weihnachtsbeleuchtung und der Küchenrollade sind dem linknx nicht bekannt,
    weil es keinen Schaltvorgang am Bus hat "mitlesen" können.

    Lösung:
    Von Hand einmal schalten.
    Für später die Werte mit persist speichern.
    Dann holt sich linknx die Werte bei Neustart aus dem Ordner.

    (Ganz selten stehen in dem Persist Ordner nach einem Neustart Werte die nicht plausibel sind und linknx startet nicht mehr.
    Dann wiederum kann man die Werte (wie Dateien) löschen.)
    Code:
    <!-- Steckdosen schalten -->
        <object id="stckd_zi_1"           gad="4/0/0"  type="1.001" init="persist">Steckdose Zimmer 1</object>
        <object id="stckd_schlazi"        gad="4/0/1"  type="1.001" init="persist">Steckdose Schlafimmer</object>
        <object id="stckd_zi_2"           gad="4/0/2"  type="1.001" init="persist">Steckdose Zimmer 2</object>
        <object id="stckd_wohzi"          gad="4/0/3"  type="1.001" init="persist">Steckdose Wohnzimmer</object>
    Code:
      <services>
    ...
        <persistence type="file" path="/etc/linknx/persist"/>
    ...
      </services>
    Der Ordner braucht natürlich Schreibrechte.
    Code:
     chmod a+rw /etc/linknx/persist
    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
      Die Schaltzustände der Rollladen werden alle mit persist gespeichert.
      Und das was ich sehr komisch finde ist gestern abend habe ich mir die Shel von linknx angesehen. linknx sendet auch ein 0 an die GA von der Weihnachtsbeleuchtung nur sie geht nicht aus.
      Und auf dem alten PC ging es ja genau mit der gleichen Linknx.xml.
      Ich habe sie nur Kopiert nichts geändert oder sonst was.

      Kann ich mir die Shell von linknx auch irgendwie anders ansehen? Jetz läuft es mit linknx -c -d

      Kommentar


        #4
        Bei mir mit:
        Code:
        -c/etc/linknx/linknx.xml -p /var/run/linknx.pid -d -w
        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
          das funzt bei mir leider nicht:-(

          Kommentar


            #6
            Hmm, ist sicher Einrichtungssache. (Startscript ...)
            Was für ein Script hast Du Dir denn gebastelt für die dream?
            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


              #7
              ach das ist nur dazu da das die Dream in den Standby geht wen ich den Fernseher im Schlafzimmer ausschalte oder linknx ihn ausschaltet. Dies Funktioniert auch super.
              Es funktionieren nur die sachen nicht wo mehrere GAs einen neuen Status bekommen.
              Und das verstehe ich leider nicht.
              Habe mir auch mal ein Startskript für Linknx gebastelt aber das funtioniert auch nicht.

              Code:
              #! /bin/sh
               
              PATH=/sbin:/usr/sbin:/bin:/usr/bin
              DESC="Description of the service"
              NAME=linknx
              DAEMON=/usr/local/share/doc/linknx/linknx
              DAEMON_ARGS="-c -d --pid-file=/var/run/linknx.pid"
              PIDFILE=/var/run/$NAME.pid
              SCRIPTNAME=/etc/init.d/$NAME
               
              # Exit if the package is not installed
              [ -x "$DAEMON" ] || exit 0
               
              # Read configuration variable file if it is present
              [ -r /etc/default/$NAME ] && . /etc/default/$NAME
               
              # Load the VERBOSE setting and other rcS variables
              . /lib/init/vars.sh
               
              # Define LSB log_* functions.
              # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
              . /lib/lsb/init-functions
               
              #
              # Function that starts the daemon/service
              #
              do_start()
              {
              # Return
              # 0 if daemon has been started
              # 1 if daemon was already running
              # 2 if daemon could not be started
              start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
              || return 1
              start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
              $DAEMON_ARGS \
              || return 2
              # Add code here, if necessary, that waits for the process to be ready
              # to handle requests from services started subsequently which depend
              # on this one. As a last resort, sleep for some time.
              }
              #
              # Function that stops the daemon/service
              #
              do_stop()
              {
              # Return
              # 0 if daemon has been stopped
              # 1 if daemon was already stopped
              # 2 if daemon could not be stopped
              # other if a failure occurred
              start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
              RETVAL="$?"
              [ "$RETVAL" = 2 ] && return 2
              # Wait for children to finish too if this is a daemon that forks
              # and if the daemon is only ever run from this initscript.
              # If the above conditions are not satisfied then add some other code
              # that waits for the process to drop all resources that could be
              # needed by services started subsequently. A last resort is to
              # sleep for some time.
              start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
              [ "$?" = 2 ] && return 2
              # Many daemons don't delete their pidfiles when they exit.
              rm -f $PIDFILE
              return "$RETVAL"
              }
               
              #
              # Function that sends a SIGHUP to the daemon/service
              #
              do_reload() {
              #
              # If the daemon can reload its configuration without
              # restarting (for example, when it is sent a SIGHUP),
              # then implement that here.
              #
              start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
              return 0
              }
               
              case "$1" in
              start)
              [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
              do_start
              case "$?" in
              0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
              2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
              esac
              ;;
              stop)
              [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
              do_stop
              case "$?" in
              0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
              2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
              esac
              ;;
              #reload|force-reload)
              #
              # If do_reload() is not implemented then leave this commented out
              # and leave 'force-reload' as an alias for 'restart'.
              #
              #log_daemon_msg "Reloading $DESC" "$NAME"
              #do_reload
              #log_end_msg $?
              #;;
              restart|force-reload)
              #
              # If the "reload" option is implemented then remove the
              # 'force-reload' alias
              #
              log_daemon_msg "Restarting $DESC" "$NAME"
              do_stop
              case "$?" in
              0|1)
              do_start
              case "$?" in
              0) log_end_msg 0 ;;
              1) log_end_msg 1 ;; # Old process is still running
              *) log_end_msg 1 ;; # Failed to start
              esac
              ;;
              *)
               
              # Failed to stop
              log_end_msg 1
              ;;
              esac
              ;;
              *)
              #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
              echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
              exit 3
              ;;
              esac
              es kommt dann immer folgendes

              Code:
              linknx:/var/run# /etc/init.d/linknx start
              start-stop-daemon: Unable to start /usr/local/share/doc/linknx/linknx: Permission denied (Permission denied)

              Kommentar


                #8
                Hier mal "mein" Startscript
                Muss natürlich ausführbar sein. Bist Du als root angemeldet?
                Sollte so aussehen: (mit ls -l das init.d Verzeichniss auflisten)
                Code:
                -rwxr-xr-x 1 root root   5126 17. Okt 2009  linknx
                Angehängte Dateien
                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
                  Ist ausführbar.
                  Leider steht immernoch das selbe dort wen ich es ausführen will.
                  wieso habe ich keine rechte. ich kann es doch auch so starten und mit root bin ich auch angebeldet

                  Kommentar


                    #10
                    Der Path ist:
                    Code:
                    PATH=/sbin:/usr/sbin:/bin:/usr/bin
                    und bei mir ist das Prog. unter
                    Code:
                    /usr/bin/linknx
                    und bei Dir unter?
                    Code:
                    /usr/local/share/doc/linknx/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
                      Ja genau dort ist linknx
                      Was genau muss ich denn jetzt ändern?

                      bei mir sieht es so aus. und das ist bestimmt falsch oder?

                      Code:
                      PATH=/sbin:/usr/sbin:/bin:/usr/bin
                      DESC="service"
                      NAME=linknx
                      DAEMON=/var/lib/linknx/$NAME
                      PIDFILE=/var/run/$NAME.pid
                      DAEMON_ARGS="-c/etc/linknx/linknx.xml -p $PIDFILE -d -w"
                      SCRIPTNAME=/etc/init.d/$NAME

                      Kommentar


                        #12
                        Na die Pfade sollten halt so sein wie sie bei dir sind.
                        Ist das bei Dir auch ein Debian Linux?
                        mach mal:
                        Code:
                        whereis linknx
                        da kommt bei mir:
                        Code:
                        linknx: /usr/bin/linknx /etc/linknx /etc/linknx.xml
                        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


                          #13
                          Ja habe ein Debian
                          Bei mir kommt
                          Code:
                          linknx: /usr/local/bin/linknx

                          Kommentar


                            #14
                            dann:
                            Code:
                            PATH=/sbin:/usr/sbin:/bin:/usr/bin
                            DESC="service"
                            NAME=linknx
                            DAEMON=/usr/local/bin/$NAME
                            ...
                            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
                              Hallo Christian,

                              ich würde mal Linknx mit log Funktion starten damit man sieht was Linknx macht.

                              /usr/bin/linknx -c/etc/knx/linknx.xml -dlinknx.log

                              Auch kannst du die Zeit ja mal unterschiedlich einstellen.

                              <at hour="23" min="01" wdays="1234567" />
                              oder folgendes probieren

                              <action type="set-value" id="li_ez_weihn" value="0" delay="60"/>

                              Kommentar

                              Lädt...
                              X