Многое зависит от того, сколько устройств / сетей, по вашему мнению, будет использоваться, и от того, как вы управляете их программным обеспечением / конфигурацией.
Поскольку вы говорите об UPNP, это означает, что будет много клиентских сетей - если вы не контролируете конфигурацию / оборудование маршрутизатора, у вас будет много проблем, чтобы обеспечить надежную работу решения UPNP.
Кроме того, вы упоминаете переадресацию портов, которая скорее предполагает, что встроенные устройства не будут иметь реальных IP-адресов.
Вы говорите, что хотите использовать HTTP, чтобы избежать его блокировки, однако большинство брандмауэров / маршрутизаторов и т. Д. Не так уж умны - блокировка выполняется исключительно по номерам портов. Если у вас есть несколько устройств за NAT-маршрутизатором, вам придется использовать нестандартные порты для адресации устройств, если вы не реализуете контроллер для ретрансляции запросов на основе содержимого HTTP.
Единственное практическое решение, которое я вижу, это подключение встроенных устройств к серверу и ожидание события.
С