How can we know our "from" address in advance?
There is no from address in Bitcoin.
https://en.bitcoin.it/wiki/From_address

Each transaction reference an unspent output (UTXO) that was sent to you in a previous transaction.

About the address, you need to generate a new one for each payment:
https://en.bitcoin.it/wiki/Address