As part of my business, I train dogs for a living. Much of what I've read here is true, especially regarding positive reinforcement. If punishment is necessary, I recommend negative punishment (take something the dog likes away) versus positive punishment (yelling, hitting, etc.).
As an example, my avatar shows one of my dogs sitting in the doorway of my store. I leave the door open all day long. Both my dogs know they aren't allowed to step foot on the sidewalk without a leash on. They can hang out on the doorstep all day and I never have to worry they'll go out. I've had people walk by with dogs that bark and snap at mine, and even had squirrels that used to sit next to the tree in front of the store, not 10 feet away from the door. My dogs won't go out. How did I train them? When I first opened the store, if they stepped outside, I would go get them and leash them behind the counter for 1/2 hr., taking away their ability to see the people who came in, or visit with their dogs. (negative punishment) It only took 5-6 "timeouts" for each dog to understand that the sidewalk was out of bounds.
Regarding the dog door issue, sounds like you have it under control. Most dog doors come with a cover, so if going in and out in the middle of the night becomes an issue, put the cover on for a week.