Ankündigung

Einklappen
Keine Ankündigung bisher.

Openhab mit Homegear verknüpfen

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

    Openhab mit Homegear verknüpfen

    Hallo Leute,

    ich brauche mal wieder eure Hilfe:

    ich habe Openhab mithilfe dieser Anleitung installiert.

    http://kriwanek.de/homeautomation/op...an-wheezy.html

    Alles gut.

    Autostart nach boot, service openhab start, service openhab stop, service openhab restart, ...

    Alles funktioniert.

    Jetzt habe ich vor, das Openhab auch Homematic-Geräte steuern kann.
    Da habe ich homegear folgendermaßen installiert:


    Code:
     [h=2]Install Using Repository[/h]  [COLOR=#362B36][FONT=sans-serif][SIZE=14px]Packages are provided for Raspbian 7 (Wheezy) and Raspbian 8 (Jessie).[/SIZE][/FONT][/COLOR]
      [COLOR=#362B36][FONT=sans-serif][SIZE=14px]For [B]Raspbian 7 (Wheezy)[/B] run the following as root:[/SIZE][/FONT][/COLOR]
      [COLOR=black][FONT=monospace][SIZE=14px] [FONT=monospace] 
     [COLOR=#C20CB9][B]wget[/B][/COLOR] https:[B]//[/B]homegear.eu[B]/[/B]packages[B]/[/B]Release.key [B]&&[/B] [COLOR=#C20CB9][B]apt-key add[/B][/COLOR] Release.key [B]&&[/B] [COLOR=#C20CB9][B]rm[/B][/COLOR] Release.key [COLOR=#7A0874][B]echo[/B][/COLOR] [COLOR=#FF0000]'deb https://homegear.eu/packages/Raspbian/ wheezy/'[/COLOR] [B]>>[/B] [B]/[/B]etc[B]/[/B]apt[B]/[/B]sources.list.d[B]/[/B]homegear.list  [COLOR=#C20CB9][B]apt-get update[/B][/COLOR] [COLOR=#C20CB9][B]apt-get install[/B][/COLOR] homegear [/FONT]
     [/SIZE][/FONT][/COLOR]
    Nun habe ich aber das Problem, das ich homegear manuell über

    service homegear start

    starten muss.
    Kann ich das Startscript von Openhab so anpassen, das homegear automatisch mit openhab gestartet wird?
    oder macht es Sinn, ein komplett neues Startscript zu nehmen, welches ebenfalls beim boot gestartet wird?

    Kann mir jemand das Script von Openhab so anpassen, dass homematic als Service nach dem boot gestartet wird?
    Ich hab da leider nicht so die Ahnung von.....


    /etc/init.d/openhab

    Code:
    #! /bin/sh
    ### BEGIN INIT INFO
    # Provides:          openhab
    # Required-Start:    $all
    # Required-Stop:     $all
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: openHAB server
    # Description:       Start / Stop openHAB server
    ### END INIT INFO
    
    # Author: Theo Weiss <theo.weiss@gmail.com>
    #
    
    PATH=/sbin:/usr/sbin:/bin:/usr/bin
    
    
    DESC="openHAB server"
    NAME=openhab
    OPENHAB_CONF_DIR="/etc/openhab"
    OPENHAB_DIR="/usr/share/openhab"
    OPENHAB_LOG_DIR="/var/log/openhab"
    OPENHAB_WORKSPACE_DIR="/var/lib/openhab/workspace"
    JAVA="/usr/bin/java"
    PIDFILE=/var/run/$NAME.pid
    SCRIPTNAME=/etc/init.d/$NAME
    
    # Define LSB log_* functions.
    # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
    # and status_of_proc is working.
    . /lib/lsb/init-functions
    
    LAUNCHER=`ls ${OPENHAB_DIR}/server/plugins/org.eclipse.equinox.launcher_*.jar`
    
    # Exit if the package is not installed
    if [ ! -r "$LAUNCHER" ]; then
        log_failure_msg "launcher jar is missing"
        exit 5
    fi
    
    # Read configuration variable file if it is present
    [ -r /etc/default/$NAME ] && . /etc/default/$NAME
    
    if [ x"${OPENHAB_JAVA}" != x ]; then
        JAVA="${OPENHAB_JAVA}"
    fi
    
    if [ x"${USER_AND_GROUP}" != x ]; then
    
        USER=`echo ${USER_AND_GROUP} | cut -d ":" -f 1`
        GROUP=`echo ${USER_AND_GROUP} | cut -d ":" -f 2`
    
        #Check whether the specified user exists
        if ! getent passwd "${USER}" > /dev/null 2>&1; then
            log_failure_msg "runtime user doesn't exists"
            exit 2
        fi
    
        #Check whether the specified group exists
        if ! getent group "${GROUP}" > /dev/null 2>&1; then
            log_failure_msg "runtime group doesn't exists"
            exit 2
        fi
    
        # Check whether the specified user is member of "openhab" group
        USER_ID=`id --user ${USER}`
        if [ "${USER_ID}" != "0" ]; then
            MEMBER_OF=`id --groups --name "${USER}" | tr " " "\n"`
            for MEMBER_OF_GROUP in ${MEMBER_OF}; do
                if [ "${MEMBER_OF_GROUP}" = "openhab" ]; then
                    IS_MEMBER="true"
                fi
            done
            if [ "${IS_MEMBER}" != "true" ]; then
                log_failure_msg "runtime user isn't member of 'openhab' group"
                exit 2
            fi
        fi
    
        EXTRA_ARGS="-c "${USER_AND_GROUP}" --umask 002 --background --make-pidfile --chdir ${OPENHAB_DIR}"
    else
        EXTRA_ARGS="--umask 002 --background --make-pidfile --chdir ${OPENHAB_DIR}"
    fi
    
    
    # Load the VERBOSE setting and other rcS variables
    . /lib/init/vars.sh
    
    DEBUG_ARGS="-Xdebug \
      -Xnoagent \
      -Djava.compiler=NONE \
      -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n \
      -Dlogback.configurationFile=${OPENHAB_CONF_DIR}/logback_debug.xml"
    
    JAVA_ARGS_DEFAULT="-Dosgi.clean=true \
     -Declipse.ignoreApp=true \
     -Dosgi.noShutdown=true \
     -Djetty.port=${HTTP_PORT} \
     -Dopenhab.configfile="${OPENHAB_CONF_DIR}/configurations/openhab.cfg" \
     -Dopenhab.configdir="${OPENHAB_CONF_DIR}/configurations" \
     -Dopenhab.logdir="${OPENHAB_LOG_DIR}" \
     -Djetty.home="${OPENHAB_DIR}" \
     -Djetty.port.ssl=${HTTPS_PORT} \
     -Djetty.config="${OPENHAB_CONF_DIR}/jetty" \
     -Djetty.logs="${OPENHAB_LOG_DIR}" \
     -Djetty.rundir="${OPENHAB_DIR}" \
     -Dfelix.fileinstall.dir="${OPENHAB_DIR}/addons" \
     -Djava.library.path="${OPENHAB_DIR}/lib" \
     -Djava.security.auth.login.config="${OPENHAB_CONF_DIR}/login.conf" \
     -Dorg.quartz.properties="${OPENHAB_CONF_DIR}/quartz.properties" \
     -Dequinox.ds.block_timeout=240000 \
     -Dequinox.scr.waitTimeOnBlock=60000 \
     -Dfelix.fileinstall.active.level=4 \
     -Djava.awt.headless=true \
     -jar ${LAUNCHER} \
     -configuration ${OPENHAB_WORKSPACE_DIR} \
     -data ${OPENHAB_WORKSPACE_DIR} \
     -console ${TELNET_PORT}"
    
    if [ x"${JAVA_ARGS}" != x ]; then
        JAVA_ARGS_DEFAULT="${JAVA_ARGS} ${JAVA_ARGS_DEFAULT}"
    fi
    
    if [ x"${OPENHAB_ARGS}" != x ]; then
        JAVA_ARGS_DEFAULT="${JAVA_ARGS_DEFAULT} ${OPENHAB_ARGS}"
    fi
    
    if (echo ${DEBUG} | grep -qi "^yes$"); then
        JAVA_ARGS_DEFAULT="${DEBUG_ARGS} ${JAVA_ARGS_DEFAULT}"
    else
        JAVA_ARGS_DEFAULT="-Dlogback.configurationFile=${OPENHAB_CONF_DIR}/logback.xml ${JAVA_ARGS_DEFAULT}"
    fi
    
    case "$1" in
      start)
            log_daemon_msg "Starting $DESC" "$NAME"
            if start-stop-daemon --start --quiet --pidfile $PIDFILE $EXTRA_ARGS \
                --oknodo --exec $JAVA -- $JAVA_ARGS_DEFAULT
            then
                log_end_msg 0
            else
                log_end_msg 1
            fi
            ;;
      stop)
            log_daemon_msg "Stopping $DESC" "$NAME"
            if start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 \
                --pidfile $PIDFILE --oknodo
            then
                rm -f $PIDFILE
                log_end_msg 0
            else
                log_end_msg 1
            fi
            ;;
      status)
            status_of_proc "$JAVA" "$NAME" && exit 0 || exit $?
            ;;
      restart|force-reload)
            log_daemon_msg "Restarting $DESC" "$NAME"
            if start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 \
                --pidfile $PIDFILE --oknodo
            then
                rm -f $PIDFILE
                if start-stop-daemon --start --quiet --pidfile $PIDFILE $EXTRA_ARGS \
                    --oknodo --exec $JAVA -- $JAVA_ARGS_DEFAULT
                then
                    log_end_msg 0
                else
                    log_end_msg 1
                fi
            else
                log_end_msg 1
            fi
            ;;
      *)
            echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
            exit 3
            ;;
    esac


    im init.d-Ordner habe ich auch noch folgende Datei gefunden:

    /etc/init.d/homegear

    Code:
    
    #!/bin/bash
    
    ### BEGIN INIT INFO
    # Provides:        homegear
    # Required-Start:    $network $remote_fs $syslog ntp
    # Required-Stop:    $network $remote_fs $syslog ntp
    # Default-Start:    2 3 4 5
    # Default-Stop:        0 1 6
    # Short-Description:    Start Homegear
    ### END INIT INFO
    
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    
    . /lib/lsb/init-functions
    
    CONFIGPATH=/etc/homegear
    DAEMON=/usr/bin/homegear
    PIDPATH=/var/run/homegear
    PIDFILE=$PIDPATH/homegear.pid
    DBPATH=/var/lib/homegear
    LOGPATH=/var/log/homegear
    
    test -x $DAEMON || exit 5
    
    if [ -r /etc/default/homegear ]; then
            . /etc/default/homegear
    fi
    
    HOMEGEAR_OPTS="$HOMEGEAR_OPTS -d"
    
    LOCKFILE=/var/lock/homegear
    
    lock_homegear() {
            if [ -x /usr/bin/lockfile-create ]; then
                    lockfile-create $LOCKFILE
                    lockfile-touch $LOCKFILE &
                    LOCKTOUCHPID="$!"
            fi
    }
    
    unlock_homegear() {
            if [ -x /usr/bin/lockfile-create ] ; then
                    kill $LOCKTOUCHPID
                    lockfile-remove $LOCKFILE
            fi
    }
    
    RUNASUSER=homegear
    RUNASGROUP=homegear
    
    case $1 in
            start)
                    SPIPID=`ps -eo pid,cmd | grep "\[bcm2708_spi\.0\]" | sed 's/^ *//g' | cut -d ' ' -f 1`
                    if [ ! -z "$SPIPID" ]; then
                        chrt -f -p 99 $SPIPID
                    fi
    
                    if test ! -d $PIDPATH; then
                        mkdir -p $PIDPATH
                    fi
                    chown -R $RUNASUSER:$RUNASGROUP $PIDPATH
                    chmod -R 750 $PIDPATH
    
                    if test ! -d $DBPATH; then
                        mkdir -p $DBPATH
                    fi
                    chown -R $RUNASUSER:$RUNASGROUP $DBPATH
                    chmod 750 $DBPATH
                    chmod 640 $DBPATH/db.sql
                    chmod 550 $DBPATH/scripts
                    chmod 550 $DBPATH/firmware
                    chmod 440 $DBPATH/firmware/*
                    chmod 550 $DBPATH/firmware/GetFirmwareUpdates.sh
                    chmod -R 550 $DBPATH/modules
    
                    if test ! -d $LOGPATH; then
                        mkdir -p $LOGPATH
                    fi
                    chown -R $RUNASUSER:$RUNASGROUP $LOGPATH
                    chmod -R 750 $LOGPATH
    
                    $DAEMON -c $CONFIGPATH -s $RUNASUSER $RUNASGROUP
    
                    log_daemon_msg "Starting Homegear" "homegear"
                    lock_homegear
                    #Probably has no effect at all...
                    ulimit -r 100
                    start-stop-daemon --start --quiet --oknodo -c $RUNASUSER -g $RUNASGROUP --pidfile $PIDFILE --startas $DAEMON -- -p $PIDFILE $HOMEGEAR_OPTS
                    status=$?
                    unlock_homegear
                    log_end_msg $status
                    ;;
            stop)
                    log_daemon_msg "Stopping Homegear" "homegear"
                    if test -e $PIDFILE; then
                        PID=`cat $PIDFILE`
                        PROCESSCOUNT=`ps --pid $PID | grep -c homegear`
                        if [ $PROCESSCOUNT -ne 0 ]; then
                            start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
                        fi
                        INDEX=0
                        while [ $PROCESSCOUNT -ne 0 ] && [ $INDEX -lt 5000 ]; do
                            sleep 0.01
                            PROCESSCOUNT=`ps --pid $PID | grep -c homegear`
                            if log_use_fancy_output; then
                                LOGLINE=`tail -n 20 $LOGPATH/homegear.log | grep -o ".[sS]hutdown. => .*$" | tail -n 1`
                                MESSAGE=`printf "%-70s" "${LOGLINE:14}"`
                                if [ ! -z "$LOGLINE" ]; then
                                    $TPUT civis || true
                                    $TPUT sc && \
                                    $TPUT hpa 36 && \
                                    CYAN=$( $TPUT setaf 6)
                                    NORMAL=$( $TPUT op)
                                    echo -ne "(${CYAN} $MESSAGE ${NORMAL})" || true
                                    $TPUT rc || true
                                    $TPUT cnorm || true
                                fi
                            fi
                            INDEX=$((INDEX+1))
                        done
                        if log_use_fancy_output; then
                            $TPUT civis || true
                            $TPUT sc && \
                            $TPUT hpa 36 && \
                            CYAN=$( $TPUT setaf 6)
                            NORMAL=$( $TPUT op)
                            echo -ne "                                                                          " || true
                            $TPUT rc || true
                            $TPUT cnorm || true
                        fi
                        if [ $PROCESSCOUNT -ne 0 ]; then
                               log_end_msg 1
                           else
                               log_end_msg 0
                           fi
                        rm -f $PIDFILE
                    else
                        log_end_msg 1
                        echo "Can't stop homegear. There is no pid file."
                    fi
                    ;;
            restart|force-reload)
                    $0 stop && sleep 2 && $0 start
                    ;;
            try-restart)
                    if $0 status >/dev/null; then
                            $0 restart
                    else
                            exit 0
                    fi
                    ;;
            reload)
                    log_daemon_msg "Reloading Homegear" "homegear"
                    if start-stop-daemon --stop --signal 1 --quiet --oknodo --pidfile $PIDFILE; then
                        log_end_msg 0 || true
                    else
                        log_end_msg 1 || true
                    fi
                    ;;
            status)
                    status_of_proc $DAEMON "homegear"
                    ;;
            *)
                    echo "Usage: $0 {start|stop|restart|reload|force-reload|status}"
                    exit 2
                    ;;
    esac
    Heißt das soviel, das homegear bereits nach dem Boot gestartet wird?
    Es taucht im Boot-Log aber nicht auf.

    Ich kann nur folgendes lesen:

    [ ok ] Starting OpenHab Server

    Homegear finde ich da nicht.....


    Hat das was mit den Usern oder Gruppen zu tun???


    Kann mir jemand helfen???






    #2
    Wenn Du homegear mit service homegear start startest, hast Du bereits ein Startscript, es wird nur nicht automatisch ausgeführt Das erreichst Du mit
    Code:
    sudo update-rc.d homegear defaults

    Kommentar


      #3
      Ja Super Danke...
      Das wars!!!

      Kommentar


        #4
        Du solltest Dir aber überlegen, ob Du auf die 0.6 von Homegear gehst. Bei mir läuft die stabil und steht wohl kurz vor der vollendung.

        Thomas

        Kommentar


          #5
          Gibts da ein Changelog zu?

          Und kann ich die denn updaten?
          über

          "apt-get update"

          und dann

          "apt-get upgrade"

          scheint ja nicht zu gehen, oder?

          Kommentar


            #6
            Du müsstest vermutlich entweder auf Jessie upgraden oder schauen, ob es als Backport angeboten wird. Kann aber auch sein, dass es selbst mit Jessie noch in Testing oder gar Unstable steckt. Oder Du installierst es eben doch von Hand...

            Kommentar


              #7
              Die Installation erfolgt über DPKG, ist aber beschrieben und nicht schwierig. Das Update erfolgt dann per hand und leider noch nicht per apt-get. Ja es ist die Nightly Version, die aber sehr stabil ist. Changelog ist nicht vorhanden, aber im forum findest du ale Infos, die Du benötigst.

              Thomas

              Kommentar


                #8

                Ich habe jetzt erstmal die 0.5 installiert und es erstmal zum Laufen bekommen.
                Ich warte noch ein bisschen, bis die 0.6 released wird.

                Mal schauen, wie es weitergeht.

                Vielen Dank für die Tips....

                Kommentar


                  #9
                  EIn kleines Problem habe ich da noch.

                  Funktioniert alles.... i.O.

                  Nur wenn ich den Raspi neu starte oder nur homegear neu starte, dann muss ich die Geräte neu anlernen.
                  Werden die Settings von homegear nicht gespeichert?

                  Kommentar


                    #10
                    Wenn ich das richtig weiss, dann wird bei der 0.5 Homegear die Datenbank erst bei einem geordneten Shutdown von Homegear geschrieben wird. Also ein sudo service homegear stop sollte die DB schreiben. In der 0.6 erfolgt das schreiben "sofort"

                    Thomas

                    Kommentar


                      #11
                      Ja, das wars..

                      DAnke für die Tips....

                      Kommentar

                      Lädt...
                      X