I recently experienced an issue with my Hikvision doorvilla DS-KV8113-WME1(B), which was connected to my network via WiFi. On occasion, especially following a power outage, the device would lose its WiFi settings. This required me to disassemble the unit, connect it via a UTP cable, and reconfigure the settings—a frustrating and time-consuming process. Due to this, I wouldn’t recommend this particular Hikvision model.
To resolve this, I decided to implement a workaround by using the smallest WiFi access point (AP) I could find, placing it in the wall cavity behind the Hikvision unit, and connecting the device to this AP via a UTP cable. Essentially, I created a WiFi-to-Ethernet bridge. The AP I chose for this task was the Mikrotik RBcAPL-2nD.
However, connecting a Mikrotik device to a non-Mikrotik device in a pseudobridge setup has certain limitations, as detailed in their official documentation: Mikrotik Wireless Station Modes.
Despite these limitations, I managed to get it functioning with my PfSense system, but with a few caveats:
Here’s a brief guide on what you need to do:
Below is the complete configuration. Replace “YOUR-WIFI-SSID” and “YOUR-WIFI-PASS” with your network’s details.
# oct/19/2023 17:21:59 by RouterOS 6.48.7 # software id = M2DK-HSWA # # model = RBcAPL-2nD # serial number = HET091AHV58 /interface bridge add comment=defconf name=bridge /interface list add comment=defconf name=WAN add comment=defconf name=LAN /interface wireless security-profiles set [ find default=yes ] supplicant-identity=MikroTik add authentication-types=wpa-psk,wpa2-psk mode=dynamic-keys name=YOUR-WIFI-SSID \ supplicant-identity=MikroTik wpa-pre-shared-key=YOUR-WIFI-PASS \ wpa2-pre-shared-key=YOUR-WIFI-PASS /interface wireless set [ find default-name=wlan1 ] band=2ghz-g/n channel-width=20/40mhz-XX \ country=slovenia disabled=no distance=indoors frequency=auto \ installation=indoor mode=station-pseudobridge security-profile=YOUR-WIFI-SSID \ ssid=YOUR-WIFI-SSID wireless-protocol=802.11 /ip hotspot profile set [ find default=yes ] html-directory=hotspot /ip pool add name=default-dhcp ranges=192.168.88.10-192.168.88.254 /ip dhcp-server add address-pool=default-dhcp interface=bridge name=defconf /interface bridge port add bridge=bridge comment=defconf interface=wlan1 multicast-router=disabled \ trusted=yes add bridge=bridge interface=ether1 multicast-router=disabled trusted=yes add bridge=bridge disabled=yes interface=all /ip neighbor discovery-settings set discover-interface-list=LAN /interface list member add comment=defconf interface=bridge list=LAN add comment=defconf interface=ether1 list=WAN /ip address add address=192.168.88.1/24 comment=defconf disabled=yes interface=bridge \ network=192.168.88.0 /ip dhcp-client # DHCP client can not run on slave interface! add comment=defconf disabled=no interface=ether1 add disabled=no interface=bridge /ip dhcp-server network add address=192.168.88.0/24 comment=defconf gateway=192.168.88.1 /ip dns set allow-remote-requests=yes /ip dns static add address=192.168.88.1 comment=defconf name=router.lan /ip firewall filter add action=accept chain=input comment=\ "defconf: accept established,related,untracked" connection-state=\ established,related,untracked add action=drop chain=input comment="defconf: drop invalid" connection-state=\ invalid add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp add action=accept chain=input comment=\ "defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1 add action=drop chain=input comment="defconf: drop all not coming from LAN" \ in-interface-list=!LAN add action=accept chain=forward comment="defconf: accept in ipsec policy" \ ipsec-policy=in,ipsec add action=accept chain=forward comment="defconf: accept out ipsec policy" \ ipsec-policy=out,ipsec add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ connection-state=established,related add action=accept chain=forward comment=\ "defconf: accept established,related, untracked" connection-state=\ established,related,untracked add action=drop chain=forward comment="defconf: drop invalid" \ connection-state=invalid add action=drop chain=forward comment=\ "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ connection-state=new in-interface-list=WAN /ip firewall nat add action=masquerade chain=srcnat comment="defconf: masquerade" \ ipsec-policy=out,none out-interface-list=WAN /ip service set telnet disabled=yes set ftp disabled=yes set www-ssl disabled=no set api disabled=yes set api-ssl disabled=yes /system clock set time-zone-name=Europe/Ljubljana /system identity set name=RouterOS /tool mac-server set allowed-interface-list=LAN /tool mac-server mac-winbox set allowed-interface-list=LAN