Question: I'm pretty new to Raspberry and I searched the net for a while now trying to find a good and simple answer to this question.

Ok, so I have a network that is connected to the internet.
I want to start a new network for IOT devices around my workplace to do and alert me on various things.
I'm using HomeAssistant for the system, and I have a separate router for the IOT network.

My question is how can I set it all up so the Raspberry will be connected to the internet through the wifi and connected to the IOT network through the ethernet?

I heard they can't work together at the same time and I want it to either switch between them automatically or if it does work if someone can point me in the right direction of where to read or what to look for that will really help me a lot.

I run the Raspberry Pi 3 model B+.

EDIT: I posted the solution as an answer. at least what has worked for me for the last few days now.

Answer: 
After connecting the pi over the wlan to the internet network and through eth0 to the IOT network, the mqtt I run over the IOT network works, but the notifications that worked before stopped working. I tried installing some packages but it wouldn't find them and won't install them, that's when I started thinking it was a problem with the routing table like @goldilocks suggested.

what I got from the ip route command:

```
pi@hassbian:~ $ ip route
default via 192.168.1.1 dev eth0 src 192.168.1.50 metric 202
default via 10.0.0.138 dev wlan0 src 10.0.0.101 metric 303
10.0.0.0/24 dev wlan0 proto kernel scope link src 10.0.0.101 metric 303
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.50 metric 202

```

In order to work through the internet which is run on the 10.0.0.0/24 network I needed to edit the /etc/dhcpcd.conf file and add at the end of the file:

```
interface wlan0
metric 200

interface eth0
metric 300

```

Assigning lower metric give precedence over the other in terms of where the internet connection comes from (at least that is what I understood). This will result in the wlan0 making all the internet connection.

I hope this will help people solve their connection problems.
If the Pi is a regular node on both networks, this is just a matter of adding a route for the non-internet connected IOT subnet; your *default* route will be the WLAN, since that's what you want to use to connect to anything that isn't part of the IOT subnet.

If the CIDR of the IOT subnet is 10.100.0.0/16, the router for it is at 10.100.0.1, and the ethernet interface is eth0 (note this presumes that interface is up, connected, and has a 10.100.0.0/16 IP address):

```
sudo ip route add 10.100.0.0/16 via 10.100.0.1 dev eth0

```

`ip route` with no other commands will show the current *routing table* (you don't need `sudo` for that). It might now look like this:

```
default via 192.168.0.1 dev wlan0 
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.20
10.100.0.0/16 via 10.100.0.1 dev eth0

```

The first line is the default route mentioned earlier; everything that doesn't match the other two is presumed to go through the 192.168.0.1 router connected via `wlan0` (this may not be the same, it's whatever your wifi link is). The second line is a direct broadcast route on the WLAN. The last one is for the IOT subnet.

You can add this to your networking configuration to make it permanent, but alas, I don't use the conventional configuration system so I don't know how to do that (pretty sure it is just adding the last part of that `ip route add` command to a file somewhere).

> 
> so here is what I got from the ip route command:
> 
> 
> 
> ```
> default via 192.168.1.1 dev eth0 src 192.168.1.50 metric 202
> default via 10.0.0.138 dev wlan0 src 10.0.0.101 metric 303
> 
> ```
> 
> 

You should not have two default routes. Try:

```
sudo ip route del default via 10.0.0.138 dev wlan0 src 10.0.0.101

```