# change from VelServ to Velbus-TCP snap
# https://github.com/velbus/velbus-tcp-snap

# to set an open port to everything, use this commands
#
#	snap set velbus-tcp serial.port=/dev/serial/by-id/usb-Velleman_Projects_VMB1USB_Velbus_USB_interface-if00 serial.autodiscover=false ntp.enabled=true tcp.host=0.0.0.0 tcp.port=6000 tcp.relay=true tcp.ssl=false tcp.auth=false

apt update
# echo removing all signs of previous SNAP package

# rm -R /var/cache/snapd
# apt purge snapd -y

echo installing new SNAPD
apt install -y snapd --fix-missing
snap install core
snap install core18

echo checking to enusre VelServ is not running
systemctl disable velserv --now



snap install velbus-tcp



# wget http://www.mdar.co.uk/dl/velbus/velbus-tcp-avahi.service -O /var/snap/avahi/common/etc/avahi/services/velbus-tcp-avahi.service

echo Fetch the uDev rule
wget http://www.mdar.co.uk/dl/velbus/V10-USB-serial-velbus.rules -O /etc/udev/rules.d/V10-USB-serial-velbus.rules

snap connect velbus-tcp:raw-usb :raw-usb


###### Uncomment the one you want to use  ####


# via VMBRSUSB
# snap set velbus-tcp serial.port=/dev/serial/by-id/usb-Velleman_Projects_VMB1USB_Velbus_USB_interface-if00 serial.autodiscover=false ntp.enabled=true tcp.host=0.0.0.0,127.0.0.1 tcp.port=27015,6000 tcp.relay=true,true tcp.ssl=true,false tcp.auth=true,false tcp.authkey=velbus,


# via Signum's USB
# snap set velbus-tcp serial.port=/dev/serial/by-id/usb-Velbus_VMBSIG_Velbus_USB_interface-if00 serial.autodiscover=false ntp.enabled=true tcp.host=0.0.0.0,127.0.0.1 tcp.port=27015,6000 tcp.relay=true,true tcp.ssl=true,false tcp.auth=true,false tcp.authkey=velbus,


# via Velbus USB V2.0 
# snap set velbus-tcp serial.port=/dev/serial/by-id/usb-Velleman_Group_VMBUSB_Velbus_USB_interface_206B395A5542-if00 serial.autodiscover=false ntp.enabled=true tcp.host=0.0.0.0,127.0.0.1 tcp.port=27015,6000 tcp.relay=true,true tcp.ssl=true,false tcp.auth=true,false tcp.authkey=velbus,

# via uDev rule redirect
echo Setting access via the uDev rule to the new VMBUSB-20 module
snap set velbus-tcp serial.port=/dev/ttyVelbus-VMBUSB-20 serial.autodiscover=false ntp.enabled=true tcp.host=0.0.0.0,127.0.0.1 tcp.port=27015,6000 tcp.relay=true,true tcp.ssl=true,false tcp.auth=true,false tcp.authkey=velbus,




echo Velbus-TCP is now running with these settings
snap enable velbus-tcp
snap get velbus-tcp -d
echo Use standard snap commands to start stop and restart velbus-tcp
echo More info on the Velbus repository of www.github.com/velbus
echo ##########
echo ##########

echo    IF the Velbus TCP server does not work, please edit the config to match the Velbus USB device you own. By default this script now connects to VMBUSB-20
echo    or use this command to change the USB device
echo    snap set velbus-tcp serial.port=/dev/serial/by-id/usb-Velbus_VMBSIG_Velbus_USB_interface-if00
echo    snap set velbus-tcp serial.port=/dev/serial/by-id/usb-Velleman_Group_VMBUSB_Velbus_USB_interface_208739555542-if00
echo    snap set velbus-tcp serial.port=/dev/serial/by-id/usb-Velleman_Projects_VMB1USB_Velbus_USB_interface-if00
echo    You can see which USB device is connected by using this command
echo    lsusb
echo    or this
echo    ls /dev/serial/by-id -l

exit 0