{@startuml

package Local {
    package Thing {
        component "Ultrasonic Sensor" as sensor
        component "PyCom" as py
        component "Light" as actuator

        sensor <-d-> py : checking depth
        actuator <-l- py : availability light
    }


    package Gateway {
        component "MQTT Broker" as broker
        component Distributor as distributor
    }

    py -d-> broker : Wi-Fi (MQTT)
    broker -r-> distributor : Wi-Fi (MQTT)
}

package Server {
    database "Firebase Realtime DB" as realtimedb
    database "Firebase Document DB" as documentdb

    component API as api

    component WebUI as web

    api <-l-> web : sockets
    api <-l-> web : http
    api <-d-> realtimedb : availability
    api <-d-> documentdb : historic data

    distributor --> api : sockets
}

@enduml
}
