#!/bin/sh /etc/rc.common # Copyright (C) 2016 OpenWrt.org START=98 STOP=20 PROG=/usr/bin/knxd USE_PROCD=1 append_bool() { local section="$1" local option="$2" local value="$3" local _loctmp local default="$4" config_get_bool _loctmp "$section" "$option" [ -z "$_loctmp" ] && _loctmp="$default" [ "$_loctmp" -gt 0 ] && append params "--$value" } append_parm() { local section="$1" local option="$2" local switch="$3" local _loctmp local default="$4" config_get _loctmp "$section" "$option" [ -z "$_loctmp" ] && _loctmp="$default" [ -z "$_loctmp" ] && return 0 append params "--$switch=$_loctmp" } start_service() { local options url config_load knxd append_parm args eibaddr "eibaddr" "0.0.1" append_parm args client-addrs "client-addrs" "0.0.2:10" append_parm args layer2 "layer2" append_bool args GroupCache "GroupCache" 0 append_parm args daemon "daemon" "/var/log/knxd.log" append_parm args error "error" # "5" append_parm args listen_tcp "listen-tcp" "6720" append_parm args Interface "Interface" # "eth0" append_parm args send-delay "send-delay" # "50" append_parm args Name "Name" "OpenWrt" append_bool args no_monitor "no-monitor" 0 append_bool args Routing "Routing" 0 append_parm args trace "trace" # "7" append_bool args tpuarts_ack_all_group "tpuarts-ack-all-group" 0 append_bool args tpuarts_ack_all_individual "tpuarts-ack-all-individual" 0 append_bool args tpuarts_disch_reset "tpuarts-disch-reset" 0 append_bool args Tunnelling "Tunnelling" 1 append_bool args Discovery "Discovery" 1 append_parm args Server "Server" "224.0.23.12" append_parm args listen_local "listen-local" "/var/run/knxd" config_get url args url if [ "$url" == "usb:" ] ; then url="usb:""$(findknxusb | tail -n1 | sed -e 's/device: \([0-9]:[0-9]:[0-9]\):[0-9].*/\1/')" fi echo "/usr/lib/knxd_args $params $url" /usr/lib/knxd_args $params $url > /tmp/etc/knxd.ini procd_open_instance procd_set_param command $PROG "/tmp/etc/knxd.ini" procd_set_param respawn procd_close_instance } stop_service() { killall knxd } reload_service() { restart } service_triggers() { procd_add_reload_trigger knxd }