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:
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
im init.d-Ordner habe ich auch noch folgende Datei gefunden:
/etc/init.d/homegear
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???
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]
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
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???


Das erreichst Du mit
Kommentar