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: 
Yes, it is possible. The rpi loaded with raspbian (or any other GNU/Linux based distro) can be used as a router to connect different networks, only that technically there are a number of different subjects related to *networking* that you have to be able to cope and solve in order to get it working. So... the questions:

* Do you want to set up a *new* network segment for the wired network so that the RPI and the IOT devices can see each other? The answer there is probably "yes", right?
* Will you use a dhcp service on this network segment so that all devices get automagically set up? Will the DHCP service run on the RPI? If that's the case, you will have to use dnsmasq, probably (there are other services available, like udhcpd, for example but dnsmasq also helps with the DNS set up).
* Do you want your IOT devices to be reachable to devices outside of the RPI (like, traffic coming from the wireless). This will probably require some hacking on the routing of your whole network (or at least the boxes that you want to be able to reach the IOT devices) to teach them that in order to reach network segment x.x.x.x/24 they have to throw the traffic through the rpi.
* Do you want your IOT devices to be able to reach devices outside of the IOT network **while** *not* making this network accessible to devices outside of this segment? This means you will need to set up some DNAT or masquerade on the RPI.
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

```